mirror of
https://github.com/Relintai/rpi_player.git
synced 2025-04-23 07:01:17 +02:00
43 lines
881 B
C++
43 lines
881 B
C++
#ifndef MQTT_SERVER_H
|
|
#define MQTT_SERVER_H
|
|
|
|
#include <cstdio>
|
|
#include <string>
|
|
#include <vector>
|
|
#include <thread>
|
|
|
|
#include "./mqtt_broker/src/broker_session.h"
|
|
#include "./mqtt_broker/src/session_manager.h"
|
|
|
|
#include <event2/listener.h>
|
|
|
|
#include <getopt.h>
|
|
|
|
#include <csignal>
|
|
#include <cstring>
|
|
|
|
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<uint8_t> &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 |