MQTT Server 1.0.0
|
#include "mqtt_common.h"
Go to the source code of this file.
Classes | |
struct | mqtt_server_msg_cbs |
struct | mqtt_server_lib_cfg |
Defines | |
#define | MQ_CONN_UTF8_BUF(utf8) ((utf8)? (utf8)->buffer : NULL) |
#define | MQ_CONN_UTF8_LEN(utf8) ((utf8)? (utf8)->length : 0) |
#define | MQC_UTF8_CLIENTID(utf8_vec) (utf8_vec[0]) |
#define | MQC_UTF8_WILL_TOP(utf8_vec) (utf8_vec[1]) |
#define | MQC_UTF8_WILL_MSG(utf8_vec) (utf8_vec[2]) |
#define | MQC_UTF8_USERNAME(utf8_vec) (utf8_vec[3]) |
#define | MQC_UTF8_PASSWORD(utf8_vec) (utf8_vec[4]) |
#define | MQC_CLIENTID_BUF(utf8_vec) MQ_CONN_UTF8_BUF(MQC_UTF8_CLIENTID(utf8_vec)) |
#define | MQC_CLIENTID_LEN(utf8_vec) MQ_CONN_UTF8_LEN(MQC_UTF8_CLIENTID(utf8_vec)) |
#define | MQC_WILL_TOP_BUF(utf8_vec) MQ_CONN_UTF8_BUF(MQC_UTF8_WILL_TOP(utf8_vec)) |
#define | MQC_WILL_TOP_LEN(utf8_vec) MQ_CONN_UTF8_LEN(MQC_UTF8_WILL_TOP(utf8_vec)) |
#define | MQC_WILL_MSG_BUF(utf8_vec) MQ_CONN_UTF8_BUF(MQC_UTF8_WILL_MSG(utf8_vec)) |
#define | MQC_WILL_MSG_LEN(utf8_vec) MQ_CONN_UTF8_LEN(MQC_UTF8_WILL_MSG(utf8_vec)) |
#define | MQC_USERNAME_BUF(utf8_vec) MQ_CONN_UTF8_BUF(MQC_UTF8_USERNAME(utf8_vec)) |
#define | MQC_USERNAME_LEN(utf8_vec) MQ_CONN_UTF8_LEN(MQC_UTF8_USERNAME(utf8_vec)) |
#define | MQC_PASSWORD_BUF(utf8_vec) MQ_CONN_UTF8_BUF(MQC_UTF8_PASSWORD(utf8_vec)) |
#define | MQC_PASSWORD_LEN(utf8_vec) MQ_CONN_UTF8_LEN(MQC_UTF8_PASSWORD(utf8_vec)) |
#define | MQP_SERVER_RX_LEN 1024 |
Functions | |
i32 | mqtt_vh_msg_send (void *ctx_cl, u8 msg_type, enum mqtt_qos qos, bool has_vh, u16 vh_data) |
i32 | mqtt_vh_msg_send_locked (void *ctx_cl, u8 msg_type, enum mqtt_qos qos, bool has_vh, u16 vh_data) |
i32 | mqtt_server_pub_dispatch (void *ctx_cl, struct mqtt_packet *mqp, bool dup) |
i32 | mqtt_server_pub_dispatch_locked (void *ctx_cl, struct mqtt_packet *mqp, bool dup) |
i32 | mqtt_server_run (u32 wait_secs) |
i32 | mqtt_server_register_net_svc (const struct device_net_services *net) |
i32 | mqtt_server_lib_init (const struct mqtt_server_lib_cfg *cfg, const struct mqtt_server_msg_cbs *cbs) |
Detailed Description
The C library provisions the interface / API(s) for the MQTT Server Packet LIB.
This is a light-weight library that enables the services of the MQTT protcol for user's server application(s) to exchange the MQTT packets with one or more remote clients. The Server Packet LIB is a simple and easy-to-use implementation to support both un-packing of the messages received from the remote clients and formation of packets to be sent to the remote clients.
The library is targeted to conform to MQTT 3.1.1 specification.
The Server Packet LIB is a highly portable software and implies a very limited set of dependencies on a platform. Importantly, these limited dependencies are common features used in the embedded and the networking world, and can be easily adapted to the target platforms. The services of the library are multi-task safe. Platform specific atomicity constructs are used, through abstractions, by the library to maintain data coherency and synchronization. In addition, the library can be configured to support several in-flight messages.
The Server Packet LIB can support multiple and simultaneous MQTT connections from clients. However, the responsibility of managing the clients and topics, authentication and approval for connections and supporting any other needs that specific to the deployment remains with the user application.
The number of the network connections that the Server Packet LIB can support is configurable through the compile line option / flag -DCFG_SR_MQTT_CTXS . In addition, the maximum length of the RX buffer used by the server is also configurable through the compile line option / flag -DCFG_SR_MAX_MQP_RX_LEN .
- Note:
- Any future extensions & development must follow the following guidelines. A new API or an extension to the existing API a) must be rudimentary b) must not imply a rule or policy (including a state machine) b) must ensure simple design and implementation
Generated on Mon Nov 17 2014 12:12:08 for MQTT Server by 1.7.4