| | |
| | | #ifndef TCP_PROXY_E1YJ92U5 |
| | | #define TCP_PROXY_E1YJ92U5 |
| | | |
| | | #include "shm.h" |
| | | #include "bh_util.h" |
| | | #include "io_service.h" |
| | | #include "tcp_common.h" |
| | | #include <atomic> |
| | | #include <thread> |
| | | #include <memory> |
| | | |
| | | class ShmSocket; |
| | | class NodeCenter; |
| | | typedef std::shared_ptr<Synced<NodeCenter>> CenterPtr; |
| | | |
| | | class TcpProxy |
| | | { |
| | | public: |
| | | TcpProxy(); |
| | | ~TcpProxy(); |
| | | bool Start(bhome_shm::SharedMemory &shm); |
| | | void Stop(); |
| | | typedef IoService::io_service_t io_service_t; |
| | | TcpProxy(io_service_t &io) : |
| | | io_(io) {} |
| | | bool Request(const std::string &ip, int port, std::string &&content, ReplyCB const &cb); |
| | | |
| | | private: |
| | | bool Request(const std::string &ip, int port, std::string &&content); |
| | | std::unique_ptr<ShmSocket> local_; |
| | | |
| | | boost::asio::io_context io_context_; |
| | | std::thread worker_; |
| | | std::atomic<bool> run_; |
| | | io_service_t &io_; |
| | | }; |
| | | |
| | | #endif // end of include guard: TCP_PROXY_E1YJ92U5 |