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