47 lines
1.8 KiB
C
47 lines
1.8 KiB
C
/*******************************************************************************
|
|
* Copyright (c) 2018 IBM Corp.
|
|
*
|
|
* 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 API and implementation and/or initial documentation
|
|
*******************************************************************************/
|
|
|
|
#if !defined(SUBOPTS_H)
|
|
#define SUBOPTS_H
|
|
|
|
/** The MQTT V5 subscribe options, apart from QoS which existed before V5. */
|
|
typedef struct MQTTSubscribe_options
|
|
{
|
|
/** The eyecatcher for this structure. Must be MQSO. */
|
|
char struct_id[4];
|
|
/** The version number of this structure. Must be 0.
|
|
*/
|
|
int struct_version;
|
|
/** To not receive our own publications, set to 1.
|
|
* 0 is the original MQTT behaviour - all messages matching the subscription are received.
|
|
*/
|
|
unsigned char noLocal;
|
|
/** To keep the retain flag as on the original publish message, set to 1.
|
|
* If 0, defaults to the original MQTT behaviour where the retain flag is only set on
|
|
* publications sent by a broker if in response to a subscribe request.
|
|
*/
|
|
unsigned char retainAsPublished;
|
|
/** 0 - send retained messages at the time of the subscribe (original MQTT behaviour)
|
|
* 1 - send retained messages on subscribe only if the subscription is new
|
|
* 2 - do not send retained messages at all
|
|
*/
|
|
unsigned char retainHandling;
|
|
} MQTTSubscribe_options;
|
|
|
|
#define MQTTSubscribe_options_initializer { {'M', 'Q', 'S', 'O'}, 0, 0, 0, 0 }
|
|
|
|
#endif
|