MQTTClient
an Objective-C Framework for MQTT
MQTTSessionManager.h
1 //
2 // MQTTSessionManager.h
3 // MQTTClient
4 //
5 // Created by Christoph Krey on 09.07.14.
6 // Copyright © 2013-2016 Christoph Krey. All rights reserved.
7 //
8 
9 #import <Foundation/Foundation.h>
10 #if TARGET_OS_IPHONE == 1
11 #import <UIKit/UIKit.h>
12 #endif
13 #import "MQTTSession.h"
14 #import "MQTTSessionLegacy.h"
15 #import "MQTTSSLSecurityPolicy.h"
16 
17 @class MQTTSessionManager;
18 
21 @protocol MQTTSessionManagerDelegate <NSObject>
22 
26 typedef NS_ENUM(int, MQTTSessionManagerState) {
27  MQTTSessionManagerStateStarting,
28  MQTTSessionManagerStateConnecting,
29  MQTTSessionManagerStateError,
30  MQTTSessionManagerStateConnected,
31  MQTTSessionManagerStateClosing,
32  MQTTSessionManagerStateClosed
33 };
34 
40 - (void)handleMessage:(NSData *)data onTopic:(NSString *)topic retained:(BOOL)retained;
41 
42 @optional
43 
48 - (void)messageDelivered:(UInt16)msgID;
49 
54 - (void)sessionManager:(MQTTSessionManager *)sessonManager didChangeState:(MQTTSessionManagerState)newState;
55 
56 @end
57 
60 @interface MQTTSessionManager : NSObject <MQTTSessionDelegate>
61 
64 @property (weak, nonatomic) id<MQTTSessionManagerDelegate> delegate;
65 
73 @property (strong, nonatomic) NSDictionary<NSString *, NSNumber *> *subscriptions;
74 
104 @property (readonly, strong, nonatomic) NSDictionary<NSString *, NSNumber *> *effectiveSubscriptions;
105 
108 @property (nonatomic, readonly) MQTTSessionManagerState state;
109 
112 @property (nonatomic, readonly) NSError *lastErrorCode;
113 
123 - (MQTTSessionManager *)initWithPersistence:(BOOL)persistent
124  maxWindowSize:(NSUInteger)maxWindowSize
125  maxMessages:(NSUInteger)maxMessages
126  maxSize:(NSUInteger)maxSize
127  connectInForeground:(BOOL)connectInForeground;
128 
149 - (void)connectTo:(NSString *)host
150  port:(NSInteger)port
151  tls:(BOOL)tls
152  keepalive:(NSInteger)keepalive
153  clean:(BOOL)clean
154  auth:(BOOL)auth
155  user:(NSString *)user
156  pass:(NSString *)pass
157  will:(BOOL)will
158  willTopic:(NSString *)willTopic
159  willMsg:(NSData *)willMsg
160  willQos:(MQTTQosLevel)willQos
161  willRetainFlag:(BOOL)willRetainFlag
162  withClientId:(NSString *)clientId
163  securityPolicy:(MQTTSSLSecurityPolicy *)securityPolicy
164  certificates:(NSArray *)certificates
165  protocolLevel:(MQTTProtocolVersion)protocolLevel;
166 
167 
187 - (void)connectTo:(NSString *)host
188  port:(NSInteger)port
189  tls:(BOOL)tls
190  keepalive:(NSInteger)keepalive
191  clean:(BOOL)clean
192  auth:(BOOL)auth
193  user:(NSString *)user
194  pass:(NSString *)pass
195  will:(BOOL)will
196  willTopic:(NSString *)willTopic
197  willMsg:(NSData *)willMsg
198  willQos:(MQTTQosLevel)willQos
199  willRetainFlag:(BOOL)willRetainFlag
200  withClientId:(NSString *)clientId
201  securityPolicy:(MQTTSSLSecurityPolicy *)securityPolicy
202  certificates:(NSArray *)certificates;
203 
221 - (void)connectTo:(NSString *)host
222  port:(NSInteger)port
223  tls:(BOOL)tls
224  keepalive:(NSInteger)keepalive
225  clean:(BOOL)clean
226  auth:(BOOL)auth
227  user:(NSString *)user
228  pass:(NSString *)pass
229  will:(BOOL)will
230  willTopic:(NSString *)willTopic
231  willMsg:(NSData *)willMsg
232  willQos:(MQTTQosLevel)willQos
233  willRetainFlag:(BOOL)willRetainFlag
234  withClientId:(NSString *)clientId;
235 
252 - (void)connectTo:(NSString *)host
253  port:(NSInteger)port
254  tls:(BOOL)tls
255  keepalive:(NSInteger)keepalive
256  clean:(BOOL)clean
257  auth:(BOOL)auth
258  user:(NSString *)user
259  pass:(NSString *)pass
260  willTopic:(NSString *)willTopic
261  will:(NSData *)will
262  willQos:(MQTTQosLevel)willQos
263  willRetainFlag:(BOOL)willRetainFlag
264  withClientId:(NSString *)clientId;
265 
268 - (void)connectToLast;
269 
280 - (UInt16)sendData:(NSData *)data topic:(NSString *)topic qos:(MQTTQosLevel)qos retain:(BOOL)retainFlag;
281 
284 - (void)disconnect;
285 
286 @end
Definition: MQTTSSLSecurityPolicy.h:89
NSDictionary< NSString *, NSNumber * > * effectiveSubscriptions
Definition: MQTTSessionManager.h:104
NSDictionary< NSString *, NSNumber * > * subscriptions
Definition: MQTTSessionManager.h:73
NSError * lastErrorCode
Definition: MQTTSessionManager.h:112
Definition: MQTTSessionManager.h:60
id< MQTTSessionManagerDelegate > delegate
Definition: MQTTSessionManager.h:64
MQTTSessionManagerState state
Definition: MQTTSessionManager.h:108