concurrencpp 换成asio协程
This commit is contained in:
@@ -73,15 +73,15 @@ class Data_Source : public std::enable_shared_from_this<Data_Source>,
|
||||
public Data_Source_Handler, public Data_Source_Data {
|
||||
public:
|
||||
std::shared_ptr<Data_Source> that();
|
||||
virtual concurrencpp::result<std::string> read_coro() {co_return "";}
|
||||
virtual asio::awaitable<std::string> read_coro() {co_return "";}
|
||||
bool registered() const;
|
||||
virtual Psc::JSON get_custom_state_json() = 0;
|
||||
Psc::JSON get_state();
|
||||
std::string last_char; // 用于处理奇数字节
|
||||
Data_Source();
|
||||
concurrencpp::result<void> loop_coro() final;
|
||||
asio::awaitable<void> loop_coro() final;
|
||||
std::shared_ptr<SSR::Mode_Msg> last_prase_msg = nullptr;
|
||||
virtual concurrencpp::result<void> handle_in_loop_coro() { co_return;}
|
||||
virtual asio::awaitable<void> handle_in_loop_coro() { co_return;}
|
||||
Frequency_Limit statistic_fl;
|
||||
std::string thread_key() const;
|
||||
Psc::JSON statistic_json() {
|
||||
@@ -110,7 +110,7 @@ public:
|
||||
};
|
||||
class TCP_Client_Data_Source : public Data_Source, public TCP_Client_Data_Source_Data {
|
||||
public:
|
||||
concurrencpp::result<void> handle_in_loop_coro() override {
|
||||
asio::awaitable<void> handle_in_loop_coro() override {
|
||||
co_await cli.tick_coro();
|
||||
co_return;
|
||||
}
|
||||
@@ -123,7 +123,7 @@ public:
|
||||
TCP_Client_Data_Source() {
|
||||
type = "TCP_Client_Data_Source";
|
||||
}
|
||||
concurrencpp::result<void> _open() override {
|
||||
asio::awaitable<void> _open() override {
|
||||
Psc::asio_socket::Sockaddr_In addr;
|
||||
addr.ip = ip;
|
||||
addr.port = port;
|
||||
@@ -132,7 +132,7 @@ public:
|
||||
co_await cli.connect_coro();
|
||||
co_return;
|
||||
}
|
||||
concurrencpp::result<void> _close() override {
|
||||
asio::awaitable<void> _close() override {
|
||||
co_await cli.close_coro();
|
||||
co_return;
|
||||
}
|
||||
@@ -143,7 +143,7 @@ public:
|
||||
Data_Source::from_json(that_json);
|
||||
TCP_Client_Data_Source_Data::from_base_json(that_json);
|
||||
}
|
||||
concurrencpp::result<std::string> read_coro() override {
|
||||
asio::awaitable<std::string> read_coro() override {
|
||||
co_return co_await cli.read_coro();
|
||||
}
|
||||
};
|
||||
@@ -161,7 +161,7 @@ public:
|
||||
Serial_Data_Source() {
|
||||
this->type = "Serial_Data_Source";
|
||||
}
|
||||
concurrencpp::result<void> _open() override {
|
||||
asio::awaitable<void> _open() override {
|
||||
serial = std::make_unique<Psc::serial::Serial_Coro>();
|
||||
serial->set_serial_name(port_name);
|
||||
serial->set_baud_rate(baud_rate);
|
||||
@@ -181,18 +181,18 @@ public:
|
||||
}
|
||||
co_return;
|
||||
}
|
||||
concurrencpp::result<void> _close() override {
|
||||
asio::awaitable<void> _close() override {
|
||||
if (serial)
|
||||
serial->close();
|
||||
co_return;
|
||||
}
|
||||
concurrencpp::result<void> handle_in_loop_coro() override {
|
||||
asio::awaitable<void> handle_in_loop_coro() override {
|
||||
if (serial) {
|
||||
co_await serial->tick_coro();
|
||||
}
|
||||
co_return;
|
||||
}
|
||||
concurrencpp::result<std::string> read_coro() override {
|
||||
asio::awaitable<std::string> read_coro() override {
|
||||
if (!serial) {
|
||||
co_return "";
|
||||
}
|
||||
@@ -261,8 +261,8 @@ public:
|
||||
std::string get_true_file_path() const {
|
||||
return Psc::get_abs_path(file_path);
|
||||
}
|
||||
concurrencpp::result<void> _close() override;
|
||||
concurrencpp::result<void> _open() override;
|
||||
asio::awaitable<void> _close() override;
|
||||
asio::awaitable<void> _open() override;
|
||||
std::vector<std::string> readBinaryFileAsString(const std::string& filepath,
|
||||
size_t part_size);
|
||||
void from_json(const Psc::JSON* that_json) override {
|
||||
@@ -316,11 +316,11 @@ public:
|
||||
using Call_Back = void (*)(char* buf, std::size_t len);
|
||||
using set_Call_back = void (*)(Call_Back);
|
||||
std::string state;
|
||||
concurrencpp::result<void> _close() override {
|
||||
asio::awaitable<void> _close() override {
|
||||
Psc::free_library(lib);
|
||||
co_return;
|
||||
}
|
||||
concurrencpp::result<void> _open() override {
|
||||
asio::awaitable<void> _open() override {
|
||||
{
|
||||
auto r = Psc::try_load_library(Psc::get_abs_path(library_path));
|
||||
if (!r) {
|
||||
@@ -363,8 +363,8 @@ public:
|
||||
Psc::JSON to_json() override {
|
||||
return Data_Source::to_json() += Shared_Memory_Data_Source_Data::to_base_json();
|
||||
}
|
||||
concurrencpp::result<void> _open() override;
|
||||
concurrencpp::result<void> _close() override;
|
||||
asio::awaitable<void> _open() override;
|
||||
asio::awaitable<void> _close() override;
|
||||
void origin_data_transform_mode_data(std::string& data) override;
|
||||
protected:
|
||||
std::unique_ptr<Psc::SM_RingBuffer> sm;
|
||||
|
||||
Reference in New Issue
Block a user