修复问题
This commit is contained in:
@@ -19,7 +19,7 @@ asio::awaitable<void> Data_Feed_UDP_Server::send_coro(std::string_view data) {
|
||||
co_return;
|
||||
}
|
||||
asio::awaitable<void> Data_Feed_UDP_Server::_open() {
|
||||
const auto value = specific.snapshot();
|
||||
const auto value = specific.read([](const auto& value) { return value; });
|
||||
svr.set_bind_address("0.0.0.0", value.port);
|
||||
svr.create();
|
||||
server_logger->c_debug({}, {}, to_string() + "开启!");
|
||||
@@ -60,7 +60,7 @@ void Data_feed_Config::server(Global* g) {
|
||||
});
|
||||
}
|
||||
void BIN_Msg_Buffer::push(std::string_view msg) {
|
||||
auto output_packet_size = Global::instance()->mode_acs.data_feed_config.settings.member<&Data_feed_Config_Data::packet_byte_size>().snapshot();
|
||||
auto output_packet_size = Global::instance()->mode_acs.data_feed_config.settings.member<&Data_feed_Config_Data::packet_byte_size>().read([](const auto& value) { return value; });
|
||||
std::lock_guard<std::mutex> g(mtx);
|
||||
auto& pool = Global::instance()->mode_acs.data_feed_config.pool_;
|
||||
if (msg_list_cache.empty() || msg_list_cache.back()->size() > output_packet_size) {
|
||||
@@ -85,7 +85,7 @@ BIN_Msg_Buffer::BIN_Msg_Buffer() {
|
||||
msg_list.reserve(8 * 1024);
|
||||
}
|
||||
Psc::JSON BIN_Msg_Buffer::state_json() {
|
||||
auto output_packet_size = Global::instance()->mode_acs.data_feed_config.settings.member<&Data_feed_Config_Data::packet_byte_size>().snapshot();
|
||||
auto output_packet_size = Global::instance()->mode_acs.data_feed_config.settings.member<&Data_feed_Config_Data::packet_byte_size>().read([](const auto& value) { return value; });
|
||||
size_t size, cache_size, pool_capacity, pool_free_count;
|
||||
{
|
||||
std::lock_guard<std::mutex> g(mtx);
|
||||
|
||||
@@ -44,15 +44,13 @@ public:
|
||||
}
|
||||
virtual Psc::JSON to_json() {
|
||||
Psc::JSON ret = With_Loop_Coro::to_base_json();
|
||||
ret.append(Psc::JSON("output_format", output_format.snapshot().to_base_json()));
|
||||
ret.append(Psc::JSON("output_format", output_format.read([](const auto& value) { return value.to_base_json(); })));
|
||||
return ret;
|
||||
}
|
||||
virtual void from_json(const Psc::JSON* that_json, bool not_exist_use_default_value) {
|
||||
With_Loop_Coro::from_base_json(that_json, not_exist_use_default_value);
|
||||
auto value = output_format.snapshot();
|
||||
value.from_base_json(that_json->get("output_format"), not_exist_use_default_value);
|
||||
output_format.write([&](auto& target) {
|
||||
target = value;
|
||||
output_format.write([&](auto& value) {
|
||||
value.from_base_json(that_json->get("output_format"), not_exist_use_default_value);
|
||||
});
|
||||
}
|
||||
virtual Psc::JSON get_custom_state_json() {
|
||||
@@ -96,7 +94,7 @@ public:
|
||||
Psc::asio_socket::TCP_Server_Coro svr;
|
||||
Psc::JSON get_custom_state_json() override {
|
||||
auto& state = svr.state;
|
||||
auto value = specific.snapshot();
|
||||
auto value = specific.read([](const auto& value) { return value; });
|
||||
auto ret = value.to_base_json();
|
||||
ret.key = "fixed";
|
||||
auto result = VAR_JSON_1(state);
|
||||
@@ -115,21 +113,19 @@ public:
|
||||
}
|
||||
void from_json(const Psc::JSON* that_json, bool not_exist_use_default_value) override {
|
||||
Data_Feed::from_json(that_json, not_exist_use_default_value);
|
||||
auto value = specific.snapshot();
|
||||
value.from_base_json(that_json, not_exist_use_default_value);
|
||||
specific.write([&](auto& target) {
|
||||
target = value;
|
||||
specific.write([&](auto& value) {
|
||||
value.from_base_json(that_json, not_exist_use_default_value);
|
||||
});
|
||||
}
|
||||
Psc::JSON to_json() override {
|
||||
return Data_Feed::to_json() += specific.snapshot().to_base_json();
|
||||
return Data_Feed::to_json() += specific.read([](const auto& value) { return value.to_base_json(); });
|
||||
}
|
||||
asio::awaitable<void> _close() override {
|
||||
co_await svr.close_coro();
|
||||
co_return;
|
||||
}
|
||||
asio::awaitable<void> _open() override {
|
||||
const auto value = specific.snapshot();
|
||||
const auto value = specific.read([](const auto& value) { return value; });
|
||||
svr.set_connect_user_buffer_size(value.connect_user_buffer_size);
|
||||
svr.set_connect_system_buffer_size(value.connect_system_buffer_size);
|
||||
svr.set_tcp_no_delay(false);
|
||||
@@ -206,7 +202,7 @@ public:
|
||||
co_return;
|
||||
}
|
||||
asio::awaitable<void> _open() override {
|
||||
const auto value = specific.snapshot();
|
||||
const auto value = specific.read([](const auto& value) { return value; });
|
||||
Psc::asio_socket::Sockaddr_In sockaddr_in;
|
||||
sockaddr_in.ip = value.url;
|
||||
sockaddr_in.port = value.port;
|
||||
@@ -217,14 +213,12 @@ public:
|
||||
}
|
||||
void from_json(const Psc::JSON* that_json, bool not_exist_use_default_value) override {
|
||||
Data_Feed::from_json(that_json, not_exist_use_default_value);
|
||||
auto value = specific.snapshot();
|
||||
value.from_base_json(that_json, not_exist_use_default_value);
|
||||
specific.write([&](auto& target) {
|
||||
target = value;
|
||||
specific.write([&](auto& value) {
|
||||
value.from_base_json(that_json, not_exist_use_default_value);
|
||||
});
|
||||
}
|
||||
Psc::JSON to_json() override {
|
||||
return Data_Feed::to_json() += specific.snapshot().to_base_json();
|
||||
return Data_Feed::to_json() += specific.read([](const auto& value) { return value.to_base_json(); });
|
||||
}
|
||||
};
|
||||
class Data_Feed_UDP_Server_Data {
|
||||
@@ -265,14 +259,12 @@ public:
|
||||
}
|
||||
void from_json(const Psc::JSON* that_json, bool not_exist_use_default_value) override {
|
||||
Data_Feed::from_json(that_json, not_exist_use_default_value);
|
||||
auto value = specific.snapshot();
|
||||
value.from_base_json(that_json, not_exist_use_default_value);
|
||||
specific.write([&](auto& target) {
|
||||
target = value;
|
||||
specific.write([&](auto& value) {
|
||||
value.from_base_json(that_json, not_exist_use_default_value);
|
||||
});
|
||||
}
|
||||
Psc::JSON to_json() override {
|
||||
return Data_Feed::to_json() += specific.snapshot().to_base_json();
|
||||
return Data_Feed::to_json() += specific.read([](const auto& value) { return value.to_base_json(); });
|
||||
}
|
||||
asio::awaitable<void> _close() override {
|
||||
co_await svr.close_coro();
|
||||
@@ -316,14 +308,12 @@ public:
|
||||
Psc::asio_socket::UDP_Client_Coro cli;
|
||||
void from_json(const Psc::JSON* that_json, bool not_exist_use_default_value) override {
|
||||
Data_Feed::from_json(that_json, not_exist_use_default_value);
|
||||
auto value = specific.snapshot();
|
||||
value.from_base_json(that_json, not_exist_use_default_value);
|
||||
specific.write([&](auto& target) {
|
||||
target = value;
|
||||
specific.write([&](auto& value) {
|
||||
value.from_base_json(that_json, not_exist_use_default_value);
|
||||
});
|
||||
}
|
||||
Psc::JSON to_json() override {
|
||||
return Data_Feed::to_json() += specific.snapshot().to_base_json();
|
||||
return Data_Feed::to_json() += specific.read([](const auto& value) { return value.to_base_json(); });
|
||||
}
|
||||
asio::awaitable<void> _close() override {
|
||||
std::cout << "udp client target address:" << cli.dest_address.to_string() << " closed" << std::endl;
|
||||
@@ -331,7 +321,7 @@ public:
|
||||
co_return;
|
||||
}
|
||||
asio::awaitable<void> _open() override {
|
||||
const auto value = specific.snapshot();
|
||||
const auto value = specific.read([](const auto& value) { return value; });
|
||||
cli.create();
|
||||
cli.set_dest_address(value.url, value.port);
|
||||
co_await cli.connect_coro();
|
||||
@@ -392,10 +382,8 @@ public:
|
||||
t->from_json(&it, not_exist_use_default_value);
|
||||
map.push_back(t);
|
||||
}
|
||||
auto value = settings.snapshot();
|
||||
value.from_base_json(that_json, not_exist_use_default_value);
|
||||
settings.write([&](auto& target) {
|
||||
target = value;
|
||||
settings.write([&](auto& value) {
|
||||
value.from_base_json(that_json, not_exist_use_default_value);
|
||||
});
|
||||
}
|
||||
Psc::JSON list() const {
|
||||
@@ -406,7 +394,7 @@ public:
|
||||
return connect_json;
|
||||
}
|
||||
Psc::JSON to_json() const {
|
||||
Psc::JSON ret = settings.snapshot().to_base_json();
|
||||
Psc::JSON ret = settings.read([](const auto& value) { return value.to_base_json(); });
|
||||
ret.append({"list", list()});
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user