| | |
| | | #include "socket.h" |
| | | #include <atomic> |
| | | #include <memory> |
| | | #include <vector> |
| | | |
| | | using namespace bhome_shm; |
| | | using namespace bhome_msg; |
| | |
| | | }; |
| | | |
| | | // some sockets may be the same one, using functions make it easy to change. |
| | | enum { eSockStart, |
| | | eSockNode = eSockStart, |
| | | eSockPub = eSockNode, |
| | | eSockServer, |
| | | eSockClient, |
| | | eSockSub, |
| | | eSockEnd, |
| | | }; |
| | | std::vector<std::unique_ptr<ShmSocket>> sockets_; |
| | | |
| | | ShmSocket &SockNode() { return sock_node_; } |
| | | ShmSocket &SockPub() { return SockNode(); } |
| | | ShmSocket &SockSub() { return sock_sub_; } |
| | | ShmSocket &SockClient() { return sock_client_; } |
| | | ShmSocket &SockServer() { return sock_server_; } |
| | | ShmSocket &SockNode() { return *sockets_[eSockNode]; } |
| | | ShmSocket &SockPub() { return *sockets_[eSockPub]; } |
| | | ShmSocket &SockSub() { return *sockets_[eSockSub]; } |
| | | ShmSocket &SockClient() { return *sockets_[eSockClient]; } |
| | | ShmSocket &SockServer() { return *sockets_[eSockServer]; } |
| | | |
| | | ShmSocket sock_node_; |
| | | ShmSocket sock_client_; |
| | | ShmSocket sock_server_; |
| | | ShmSocket sock_sub_; |
| | | enum State { |
| | | eStateUnregistered, |
| | | eStateOnline, |