coreMQTT Agent v2.0.0
Thread safe MQTT 3.1.1 Client
Loading...
Searching...
No Matches
MQTTAgent_Unsubscribe
MQTTStatus_t MQTTAgent_Unsubscribe( const MQTTAgentContext_t * pMqttAgentContext,
MQTTAgentSubscribeArgs_t * pSubscriptionArgs,
const MQTTAgentCommandInfo_t * pCommandInfo );

Add a command to call MQTT_Unsubscribe() for an MQTT connection.

Parameters
[in]pMqttAgentContextThe MQTT agent to use.
[in]pSubscriptionArgsList of topics to unsubscribe from.
[in]pCommandInfoThe information pertaining to the command, including:
  • cmdCompleteCallback Optional callback to invoke when the command completes.
  • pCmdCompleteCallbackContext Optional completion callback context.
  • blockTimeMs The maximum amount of time in milliseconds to wait for the command to be posted to the MQTT agent, should the agent's event queue be full. Tasks wait in the Blocked state so don't use any CPU time.
Note
The context passed to the callback through pCmdContext member of pCommandInfo parameter MUST remain in scope at least until the callback has been executed by the agent task.
Returns
#MQTTSuccess if the command was posted to the MQTT agent's event queue. Otherwise an enumerated error code.

Example

// Variables used in this example.
MQTTAgentContext_t agentContext;
MQTTStatus_t status;
MQTTAgentCommandInfo_t commandInfo = { 0 };
MQTTSubscribeInfo_t unsubscribeInfo = { 0 };
MQTTAgentSubscribeArgs_t unsubscribeArgs = { 0 };
// Function for command complete callback.
void unsubscribeCmdCompleteCb( MQTTAgentCommandContext_t * pCmdCallbackContext,
MQTTAgentReturnInfo_t * pReturnInfo );
// Fill the command information.
commandInfo.cmdCompleteCallback = unsubscribeCmdCompleteCb;
commandInfo.blockTimeMs = 500;
// Fill the information for topics to unsubscribe from.
unsubscribeInfo.pTopicFilter = "/foo/bar";
unsubscribeInfo.topicFilterLength = strlen("/foo/bar");
unsubscribeArgs.pSubscribeInfo = &unsubscribeInfo;
unsubscribeArgs.numSubscriptions = 1U;
status = MQTTAgent_Unsubscribe( &agentContext, &unsubscribeArgs, &commandInfo );
if( status == MQTTSuccess )
{
// Command to send Unsubscribe request to the server has been queued. Notification
// about completion of the Unsubscribe operation will be notified to application
// through invocation of unsubscribeCompleteCb().
}
MQTTStatus_t MQTTAgent_Unsubscribe(const MQTTAgentContext_t *pMqttAgentContext, MQTTAgentSubscribeArgs_t *pSubscriptionArgs, const MQTTAgentCommandInfo_t *pCommandInfo)
Add a command to call MQTT_Unsubscribe() for an MQTT connection.
Definition core_mqtt_agent.c:1193
struct MQTTAgentCommandContext MQTTAgentCommandContext_t
Struct containing context for a specific command.
Definition core_mqtt_agent.h:83
Struct holding arguments that are common to every command.
Definition core_mqtt_agent.h:214
MQTTAgentCommandCallback_t cmdCompleteCallback
Callback to invoke upon completion.
Definition core_mqtt_agent.h:215
uint32_t blockTimeMs
Maximum block time for enqueueing the command.
Definition core_mqtt_agent.h:217
Information used by each MQTT agent. A context will be initialized by MQTTAgent_Init(),...
Definition core_mqtt_agent.h:153
Struct holding return codes and outputs from a command.
Definition core_mqtt_agent.h:71
Struct holding arguments for a SUBSCRIBE or UNSUBSCRIBE call.
Definition core_mqtt_agent.h:169
MQTTSubscribeInfo_t * pSubscribeInfo
List of MQTT subscriptions.
Definition core_mqtt_agent.h:170
size_t numSubscriptions
Number of elements in pSubscribeInfo.
Definition core_mqtt_agent.h:171