• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*******************************************************************************
2  * Copyright (c) 2018 IBM Corp.
3  *
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License v1.0
6  * and Eclipse Distribution License v1.0 which accompany this distribution.
7  *
8  * The Eclipse Public License is available at
9  *    http://www.eclipse.org/legal/epl-v10.html
10  * and the Eclipse Distribution License is available at
11  *   http://www.eclipse.org/org/documents/edl-v10.php.
12  *
13  * Contributors:
14  *    Ian Craggs - initial API and implementation and/or initial documentation
15  *******************************************************************************/
16 
17 #if !defined(SUBOPTS_H)
18 #define SUBOPTS_H
19 
20 /** The MQTT V5 subscribe options, apart from QoS which existed before V5. */
21 typedef struct MQTTSubscribe_options
22 {
23 	/** The eyecatcher for this structure. Must be MQSO. */
24 	char struct_id[4];
25 	/** The version number of this structure.  Must be 0.
26 	 */
27 	int struct_version;
28 	/** To not receive our own publications, set to 1.
29 	 *  0 is the original MQTT behaviour - all messages matching the subscription are received.
30 	 */
31 	unsigned char noLocal;
32 	/** To keep the retain flag as on the original publish message, set to 1.
33 	 *  If 0, defaults to the original MQTT behaviour where the retain flag is only set on
34 	 *  publications sent by a broker if in response to a subscribe request.
35 	 */
36 	unsigned char retainAsPublished;
37 	/** 0 - send retained messages at the time of the subscribe (original MQTT behaviour)
38 	 *  1 - send retained messages on subscribe only if the subscription is new
39 	 *  2 - do not send retained messages at all
40 	 */
41 	unsigned char retainHandling;
42 } MQTTSubscribe_options;
43 
44 #define MQTTSubscribe_options_initializer { {'M', 'Q', 'S', 'O'}, 0, 0, 0, 0 }
45 
46 #endif
47