mirror of
https://gitee.com/js-yhsec/energy_storage.git
synced 2026-05-27 18:59:26 +08:00
新增http、mqtt运行库,实现mqtt功能, 新增spdlog
This commit is contained in:
188
thirdparty/paho_mqtt/include/MQTTAsyncUtils.h
vendored
Normal file
188
thirdparty/paho_mqtt/include/MQTTAsyncUtils.h
vendored
Normal file
@@ -0,0 +1,188 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2009, 2024 IBM Corp. and others
|
||||
*
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v2.0
|
||||
* and Eclipse Distribution License v1.0 which accompany this distribution.
|
||||
*
|
||||
* The Eclipse Public License is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
* and the Eclipse Distribution License is available at
|
||||
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||
*
|
||||
* Contributors:
|
||||
* Ian Craggs - initial implementation and documentation
|
||||
*******************************************************************************/
|
||||
|
||||
#if !defined(MQTTASYNCUTILS_H_)
|
||||
#define MQTTASYNCUTILS_H_
|
||||
|
||||
#include "MQTTPacket.h"
|
||||
#include "Thread.h"
|
||||
|
||||
#define URI_TCP "tcp://"
|
||||
#define URI_MQTT "mqtt://"
|
||||
#define URI_WS "ws://"
|
||||
#define URI_WSS "wss://"
|
||||
#define URI_UNIX "unix://"
|
||||
|
||||
enum MQTTAsync_threadStates
|
||||
{
|
||||
STOPPED, STARTING, RUNNING, STOPPING
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
MQTTAsync_message* msg;
|
||||
char* topicName;
|
||||
int topicLen;
|
||||
unsigned int seqno; /* only used on restore */
|
||||
} qEntry;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int type;
|
||||
MQTTAsync_onSuccess* onSuccess;
|
||||
MQTTAsync_onFailure* onFailure;
|
||||
MQTTAsync_onSuccess5* onSuccess5;
|
||||
MQTTAsync_onFailure5* onFailure5;
|
||||
MQTTAsync_token token;
|
||||
void* context;
|
||||
START_TIME_TYPE start_time;
|
||||
MQTTProperties properties;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
int count;
|
||||
char** topics;
|
||||
int* qoss;
|
||||
MQTTSubscribe_options opts;
|
||||
MQTTSubscribe_options* optlist;
|
||||
} sub;
|
||||
struct
|
||||
{
|
||||
int count;
|
||||
char** topics;
|
||||
} unsub;
|
||||
struct
|
||||
{
|
||||
char* destinationName;
|
||||
int payloadlen;
|
||||
void* payload;
|
||||
int qos;
|
||||
int retained;
|
||||
} pub;
|
||||
struct
|
||||
{
|
||||
int internal;
|
||||
int timeout;
|
||||
enum MQTTReasonCodes reasonCode;
|
||||
} dis;
|
||||
struct
|
||||
{
|
||||
int currentURI;
|
||||
int MQTTVersion; /**< current MQTT version being used to connect */
|
||||
} conn;
|
||||
} details;
|
||||
} MQTTAsync_command;
|
||||
|
||||
typedef struct MQTTAsync_struct
|
||||
{
|
||||
char* serverURI;
|
||||
int unixsock;
|
||||
int ssl;
|
||||
int websocket;
|
||||
Clients* c;
|
||||
|
||||
/* "Global", to the client, callback definitions */
|
||||
MQTTAsync_connectionLost* cl;
|
||||
MQTTAsync_messageArrived* ma;
|
||||
MQTTAsync_deliveryComplete* dc;
|
||||
void* clContext; /* the context to be associated with the conn lost callback*/
|
||||
void* maContext; /* the context to be associated with the msg arrived callback*/
|
||||
void* dcContext; /* the context to be associated with the deliv complete callback*/
|
||||
|
||||
MQTTAsync_connected* connected;
|
||||
void* connected_context; /* the context to be associated with the connected callback*/
|
||||
|
||||
MQTTAsync_disconnected* disconnected;
|
||||
void* disconnected_context; /* the context to be associated with the disconnected callback*/
|
||||
|
||||
MQTTAsync_updateConnectOptions* updateConnectOptions;
|
||||
void* updateConnectOptions_context;
|
||||
|
||||
/* Each time connect is called, we store the options that were used. These are reused in
|
||||
any call to reconnect, or an automatic reconnect attempt */
|
||||
MQTTAsync_command connect; /* Connect operation properties */
|
||||
MQTTAsync_command disconnect; /* Disconnect operation properties */
|
||||
MQTTAsync_command* pending_write; /* Is there a socket write pending? */
|
||||
|
||||
List* responses;
|
||||
unsigned int command_seqno;
|
||||
|
||||
MQTTPacket* pack;
|
||||
|
||||
/* added for offline buffering */
|
||||
MQTTAsync_createOptions* createOptions;
|
||||
int shouldBeConnected;
|
||||
int noBufferedMessages; /* the current number of buffered (publish) messages for this client */
|
||||
|
||||
/* added for automatic reconnect */
|
||||
int automaticReconnect;
|
||||
int minRetryInterval;
|
||||
int maxRetryInterval;
|
||||
int serverURIcount;
|
||||
char** serverURIs;
|
||||
int connectTimeout;
|
||||
|
||||
int currentInterval;
|
||||
int currentIntervalBase;
|
||||
START_TIME_TYPE lastConnectionFailedTime;
|
||||
int retrying;
|
||||
int reconnectNow;
|
||||
|
||||
/* MQTT V5 properties */
|
||||
MQTTProperties* connectProps;
|
||||
MQTTProperties* willProps;
|
||||
|
||||
} MQTTAsyncs;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
MQTTAsync_command command;
|
||||
MQTTAsyncs* client;
|
||||
unsigned int seqno; /* only used on restore */
|
||||
int not_restored;
|
||||
char* key; /* if not_restored, this holds the key */
|
||||
} MQTTAsync_queuedCommand;
|
||||
|
||||
void MQTTAsync_lock_mutex(mutex_type amutex);
|
||||
void MQTTAsync_unlock_mutex(mutex_type amutex);
|
||||
void MQTTAsync_terminate(void);
|
||||
#if !defined(NO_PERSISTENCE)
|
||||
int MQTTAsync_restoreCommands(MQTTAsyncs* client);
|
||||
#endif
|
||||
int MQTTAsync_addCommand(MQTTAsync_queuedCommand* command, int command_size);
|
||||
void MQTTAsync_emptyMessageQueue(Clients* client);
|
||||
void MQTTAsync_freeResponses(MQTTAsyncs* m);
|
||||
void MQTTAsync_freeCommands(MQTTAsyncs* m);
|
||||
int MQTTAsync_unpersistCommandsAndMessages(Clients* c);
|
||||
void MQTTAsync_closeSession(Clients* client, enum MQTTReasonCodes reasonCode, MQTTProperties* props);
|
||||
int MQTTAsync_disconnect1(MQTTAsync handle, const MQTTAsync_disconnectOptions* options, int internal);
|
||||
int MQTTAsync_assignMsgId(MQTTAsyncs* m);
|
||||
int MQTTAsync_getNoBufferedMessages(MQTTAsyncs* m);
|
||||
void MQTTAsync_writeContinue(SOCKET socket);
|
||||
void MQTTAsync_writeComplete(SOCKET socket, int rc);
|
||||
void setRetryLoopInterval(int keepalive);
|
||||
void MQTTAsync_NULLPublishResponses(MQTTAsyncs* m);
|
||||
|
||||
#if defined(_WIN32)
|
||||
#else
|
||||
#define WINAPI
|
||||
#endif
|
||||
|
||||
thread_return_type WINAPI MQTTAsync_sendThread(void* n);
|
||||
thread_return_type WINAPI MQTTAsync_receiveThread(void* n);
|
||||
|
||||
#endif /* MQTTASYNCUTILS_H_ */
|
||||
Reference in New Issue
Block a user