Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- buffered_readers[new_socket_fd].reset([new_socket_fd, client_addr,
- &subscriber_manager, &topic_manager, &buffered_readers]
- (const tcp_message_t& tcp_message)
- {
- switch(tcp_message.mtype)
- {
- case identity:
- {
- std::string client_id = tcp_message.topic;
- subscriber_manager.add_subscriber(new_socket_fd, client_addr, client_id);
- topic_manager.send_missed_messages(client_id);
- udp_message_t umsg = {};
- strcpy(umsg.topic_name, "welcome");
- strcpy(umsg.message, "hello world!");
- umsg.type = type_string;
- message_t welcome_msg(client_addr, umsg);
- tcp_message_t tmp = welcome_msg.to_tcp_message(publish);
- send(new_socket_fd, &tmp, tmp.len, 0);
- buffered_readers[new_socket_fd].reset([client_id, &subscriber_manager, &topic_manager]
- (const tcp_message_t& tcp_message)
- {
- switch(tcp_message.mtype)
- {
- case subscribe:
- {
- topic_manager.subscribe(client_id, tcp_message.topic, tcp_message.sf);
- printf("Client %s has subscribed to topic %s with s&f %d\n",
- client_id.c_str(), tcp_message.topic, tcp_message.sf);
- break;
- }
- case unsubscribe:
- {
- topic_manager.unsubscribe(client_id, tcp_message.topic);
- printf("Client %s has unsubscribed from topic %s\n",
- client_id.c_str(), tcp_message.topic);
- break;
- }
- default:
- {
- break;
- }
- }
- });
- break;
- }
- default:
- {
- break;
- }
- }
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement