#ifndef __MGOS_MQTT_H
#define __MGOS_MQTT_H

#include "mgos.h"
#include "mongoose/mongoose.h"

struct mg_connection;

typedef void (*sub_handler_t)(struct mg_connection *nc, const char *topic,
                              int topic_len, const char *msg, int msg_len,
                              void *ud);

typedef void (*mqtt_event_handler_t)(struct mg_connection *nc, int ev,
                                     void *ev_data, void *user_data);

void mgos_mqtt_pub(char *t, char *m, int m_len, int flags, bool persist);
void mgos_mqtt_sub(char *t, sub_handler_t cb, void *ud);

void mgos_mqtt_inject(char *topic, char *msg);
void mgos_mqtt_add_global_handler(mqtt_event_handler_t handler, void *ud);


#endif // __MGOS_MQTT_H