| | |
| | | |
| | | TopicNode::~TopicNode() |
| | | { |
| | | printf("~TopicNode()\n"); |
| | | LOG_DEBUG() << "~TopicNode()"; |
| | | Stop(); |
| | | } |
| | | |
| | |
| | | if (ssn_id_ == 0) { |
| | | ssn_id_ = ShmMsgQueue::NewId(); |
| | | } |
| | | printf("Node Init, id %ld \n", ssn_id_); |
| | | LOG_DEBUG() << "Node Init, id " << ssn_id_; |
| | | MsgI msg; |
| | | msg.OffsetRef() = ssn_id_; |
| | | if (ShmMsgQueue::TrySend(shm(), BHInitAddress(), msg)) { |
| | |
| | | } |
| | | void TopicNode::Stop() |
| | | { |
| | | printf("Node Stopping\n"); |
| | | LOG_DEBUG() << "Node Stopping"; |
| | | for (auto &p : sockets_) { p->Stop(); } |
| | | printf("Node Stopped\n"); |
| | | LOG_INFO() << "Node Stopped"; |
| | | } |
| | | |
| | | bool TopicNode::Register(ProcInfo &proc, MsgCommonReply &reply_body, const int timeout_ms) |
| | |
| | | |
| | | BHAddress addr; |
| | | if (ClientQueryRPCTopic(request.topic(), addr, timeout_ms)) { |
| | | // printf("node: %ld, topic dest: %ld\n", SockNode().id(), addr.mq_id()); |
| | | LOG_TRACE() << "node: " << SockNode().id() << ", topic dest: " << addr.mq_id(); |
| | | BHMsgHead head(InitMsgHead(GetType(request), proc_id(), ssn())); |
| | | AddRoute(head, sock.id()); |
| | | head.set_topic(request.topic()); |