#ifndef MQTT_SERVER_H #define MQTT_SERVER_H #include #include #include #include #include "./mqtt_broker/src/broker_session.h" #include "./mqtt_broker/src/session_manager.h" #include #include #include #include class MQTTServer { public: static void listener_cb(struct evconnlistener *listener, evutil_socket_t fd, struct sockaddr *addr, int socklen, void *arg); void add_local_session(const std::string &filter, void (*func)(const std::string &client_id, const std::vector &data, void *obj), void* obj); void initialize(); void run_async(); MQTTServer(); ~MQTTServer(); std::thread *_thread; SessionManager *session_manager; std::string bind_address; uint16_t port; struct event_base *evloop; struct evconnlistener *listener; struct sockaddr_in sin; }; #endif