react-native-gizwits-sdk-v5 1.5.5-thirdbluetooth → 1.5.6-thirdbluetooth
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/libs/sdk-bluetooth-release.aar +0 -0
- package/ios/GizwitsiOSSDK.framework/GizwitsiOSSDK +0 -0
- package/ios/GizwitsiOSSDK.framework/Headers/CocoaAsyncSocket.h +18 -0
- package/ios/GizwitsiOSSDK.framework/Headers/DDASLLogger.h +41 -0
- package/ios/GizwitsiOSSDK.framework/Headers/DDAbstractDatabaseLogger.h +102 -0
- package/ios/GizwitsiOSSDK.framework/Headers/DDContextFilterLogFormatter.h +63 -0
- package/ios/GizwitsiOSSDK.framework/Headers/DDDispatchQueueLogFormatter.h +128 -0
- package/ios/GizwitsiOSSDK.framework/Headers/DDFileLogger.h +340 -0
- package/ios/GizwitsiOSSDK.framework/Headers/DDLog+LOGV.h +99 -0
- package/ios/GizwitsiOSSDK.framework/Headers/DDLog.h +632 -0
- package/ios/GizwitsiOSSDK.framework/Headers/DDMultiFormatter.h +30 -0
- package/ios/GizwitsiOSSDK.framework/Headers/DDTTYLogger.h +171 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPAES.h +19 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPDataCode.h +44 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPDatumCode.h +38 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPGuideCode.h +15 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPTools.h +22 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPTouch.h +36 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPTouchDelegate.h +24 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPTouchGenerator.h +46 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPTouchResult.h +36 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPTouchTask.h +124 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPTouchTaskParameter.h +173 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPUDPSocketClient.h +50 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESPUDPSocketServer.h +49 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESP_ByteUtil.h +128 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESP_CRC8.h +61 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESP_NetUtil.h +82 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ESP_WifiUtil.h +33 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ForegroundReconnection.h +23 -0
- package/ios/GizwitsiOSSDK.framework/Headers/GCDTimer.h +19 -0
- package/ios/GizwitsiOSSDK.framework/Headers/GizwitsiOSSDK-Swift.h +338 -0
- package/ios/GizwitsiOSSDK.framework/Headers/GizwitsiOSSDK.h +24 -0
- package/ios/GizwitsiOSSDK.framework/Headers/MQTTClient.h +39 -0
- package/ios/GizwitsiOSSDK.framework/Headers/MQTTInMemoryPersistence.h +16 -0
- package/ios/GizwitsiOSSDK.framework/Headers/MQTTSSLSecurityPolicyDecoder.h +19 -0
- package/ios/GizwitsiOSSDK.framework/Headers/MQTTSSLSecurityPolicyEncoder.h +18 -0
- package/ios/GizwitsiOSSDK.framework/Headers/MQTTSessionLegacy.h +112 -0
- package/ios/GizwitsiOSSDK.framework/Headers/MQTTSessionSynchron.h +194 -0
- package/ios/GizwitsiOSSDK.framework/Headers/MQTTStrict.h +33 -0
- package/ios/GizwitsiOSSDK.framework/Headers/MQTTUntil.h +14 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ReconnectTimer.h +21 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_GCDAsyncSocket.h +1226 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_GCDAsyncUdpSocket.h +1036 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_GizwitsParser.h +61 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTCFSocketDecoder.h +39 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTCFSocketEncoder.h +38 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTCFSocketTransport.h +79 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTCoreDataPersistence.h +21 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTDecoder.h +66 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTLog.h +123 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTMessage.h +233 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTPersistence.h +124 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTProperties.h +76 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTSSLSecurityPolicy.h +158 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTSSLSecurityPolicyTransport.h +30 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTSession.h +886 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTSessionManager.h +237 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_MQTTTransport.h +114 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_SSZipArchive.h +178 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_SSZipCommon.h +71 -0
- package/ios/GizwitsiOSSDK.framework/Headers/_ZipArchive.h +26 -0
- package/ios/GizwitsiOSSDK.framework/Headers/a_weighting.h +88 -0
- package/ios/GizwitsiOSSDK.framework/Headers/aubio.h +231 -0
- package/ios/GizwitsiOSSDK.framework/Headers/audio_unit.h +61 -0
- package/ios/GizwitsiOSSDK.framework/Headers/awhitening.h +125 -0
- package/ios/GizwitsiOSSDK.framework/Headers/beattracking.h +121 -0
- package/ios/GizwitsiOSSDK.framework/Headers/biquad.h +75 -0
- package/ios/GizwitsiOSSDK.framework/Headers/c_weighting.h +88 -0
- package/ios/GizwitsiOSSDK.framework/Headers/common.h +104 -0
- package/ios/GizwitsiOSSDK.framework/Headers/cvec.h +247 -0
- package/ios/GizwitsiOSSDK.framework/Headers/dct.h +85 -0
- package/ios/GizwitsiOSSDK.framework/Headers/fft.h +144 -0
- package/ios/GizwitsiOSSDK.framework/Headers/filter.h +176 -0
- package/ios/GizwitsiOSSDK.framework/Headers/filterbank.h +90 -0
- package/ios/GizwitsiOSSDK.framework/Headers/filterbank_mel.h +72 -0
- package/ios/GizwitsiOSSDK.framework/Headers/fmat.h +172 -0
- package/ios/GizwitsiOSSDK.framework/Headers/fvec.h +178 -0
- package/ios/GizwitsiOSSDK.framework/Headers/hist.h +63 -0
- package/ios/GizwitsiOSSDK.framework/Headers/ioutils.h +60 -0
- package/ios/GizwitsiOSSDK.framework/Headers/log.h +99 -0
- package/ios/GizwitsiOSSDK.framework/Headers/lvec.h +118 -0
- package/ios/GizwitsiOSSDK.framework/Headers/mathutils.h +330 -0
- package/ios/GizwitsiOSSDK.framework/Headers/mfcc.h +79 -0
- package/ios/GizwitsiOSSDK.framework/Headers/musicutils.h +171 -0
- package/ios/GizwitsiOSSDK.framework/Headers/notes.h +113 -0
- package/ios/GizwitsiOSSDK.framework/Headers/onset.h +347 -0
- package/ios/GizwitsiOSSDK.framework/Headers/parameter.h +159 -0
- package/ios/GizwitsiOSSDK.framework/Headers/peakpicker.h +57 -0
- package/ios/GizwitsiOSSDK.framework/Headers/phasevoc.h +112 -0
- package/ios/GizwitsiOSSDK.framework/Headers/pitch.h +197 -0
- package/ios/GizwitsiOSSDK.framework/Headers/pitchfcomb.h +76 -0
- package/ios/GizwitsiOSSDK.framework/Headers/pitchmcomb.h +77 -0
- package/ios/GizwitsiOSSDK.framework/Headers/pitchschmitt.h +75 -0
- package/ios/GizwitsiOSSDK.framework/Headers/pitchspecacf.h +103 -0
- package/ios/GizwitsiOSSDK.framework/Headers/pitchyin.h +100 -0
- package/ios/GizwitsiOSSDK.framework/Headers/pitchyinfast.h +102 -0
- package/ios/GizwitsiOSSDK.framework/Headers/pitchyinfft.h +99 -0
- package/ios/GizwitsiOSSDK.framework/Headers/resampler.h +65 -0
- package/ios/GizwitsiOSSDK.framework/Headers/sampler.h +140 -0
- package/ios/GizwitsiOSSDK.framework/Headers/scale.h +80 -0
- package/ios/GizwitsiOSSDK.framework/Headers/sink.h +181 -0
- package/ios/GizwitsiOSSDK.framework/Headers/sink_apple_audio.h +163 -0
- package/ios/GizwitsiOSSDK.framework/Headers/sink_sndfile.h +162 -0
- package/ios/GizwitsiOSSDK.framework/Headers/sink_wavwrite.h +162 -0
- package/ios/GizwitsiOSSDK.framework/Headers/source.h +184 -0
- package/ios/GizwitsiOSSDK.framework/Headers/source_apple_audio.h +156 -0
- package/ios/GizwitsiOSSDK.framework/Headers/source_avcodec.h +155 -0
- package/ios/GizwitsiOSSDK.framework/Headers/source_sndfile.h +155 -0
- package/ios/GizwitsiOSSDK.framework/Headers/source_wavread.h +160 -0
- package/ios/GizwitsiOSSDK.framework/Headers/specdesc.h +204 -0
- package/ios/GizwitsiOSSDK.framework/Headers/tempo.h +255 -0
- package/ios/GizwitsiOSSDK.framework/Headers/tss.h +103 -0
- package/ios/GizwitsiOSSDK.framework/Headers/types.h +70 -0
- package/ios/GizwitsiOSSDK.framework/Headers/vecutils.h +116 -0
- package/ios/GizwitsiOSSDK.framework/Headers/wavetable.h +178 -0
- package/ios/GizwitsiOSSDK.framework/Info.plist +0 -0
- package/ios/GizwitsiOSSDK.framework/LICENSE +17 -0
- package/ios/GizwitsiOSSDK.framework/Modules/GizwitsiOSSDK.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
- package/ios/GizwitsiOSSDK.framework/Modules/GizwitsiOSSDK.swiftmodule/arm64-apple-ios.abi.json +57489 -0
- package/ios/GizwitsiOSSDK.framework/Modules/GizwitsiOSSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +1752 -0
- package/ios/GizwitsiOSSDK.framework/Modules/GizwitsiOSSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/ios/GizwitsiOSSDK.framework/Modules/GizwitsiOSSDK.swiftmodule/arm64-apple-ios.swiftinterface +1752 -0
- package/ios/GizwitsiOSSDK.framework/Modules/GizwitsiOSSDK.swiftmodule/arm64-apple-ios.swiftmodule +0 -0
- package/ios/GizwitsiOSSDK.framework/Modules/module.modulemap +11 -0
- package/ios/GizwitsiOSSDK.framework/PrivacyInfo.xcprivacy +23 -0
- package/ios/GizwitsiOSSDK.framework/README.md +31 -0
- package/package.json +1 -1
- package/react-native-gizwits-sdk-v5.podspec +2 -2
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
//
|
|
2
|
+
// GizwitsParser.h
|
|
3
|
+
// GizwitsParser
|
|
4
|
+
//
|
|
5
|
+
// Created by danlypro on 2022/5/7.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <Foundation/Foundation.h>
|
|
9
|
+
#import "common.h"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@interface _GizwitsParser : NSObject
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* 获取SDK的版本号
|
|
16
|
+
*/
|
|
17
|
+
+ (NSString *)getVersion;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @brief 对传入的json字符串数据进行组包
|
|
21
|
+
* @param[in] jsonData 要组包的json字符串
|
|
22
|
+
* @param[out] outData 组完的包数据的地址, 使用完成需要手动释放, outData=NULL 表示组包失败
|
|
23
|
+
* @param[out] outLength 组完包的长度的地址,outLength = 0 表示组包失败
|
|
24
|
+
* @param[in,out] errorCode 返回组包错误码的地址, errorCode = 0 表示组包成功
|
|
25
|
+
*/
|
|
26
|
+
+ (void)packData:(const char *)jsonData outData:(unsigned char **)outData outLength:(int *)outLength errorCode:(int *)errorCode;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @brief 对传入的数据做解包操作
|
|
30
|
+
* @param[in] data 传入从设备和云端获取的数据包
|
|
31
|
+
* @param[in] dataLength 传入data数据包的长度
|
|
32
|
+
* @param[in,out] errorCode 返回解包错误码的地址, errorCode = 0 表示解包成功
|
|
33
|
+
* @return 返回解包完成的JSON字符串, 返回NULL表示解包失败
|
|
34
|
+
* @see 返回的字符串是手动申请的内存空间,使用完成需要手动释放内存
|
|
35
|
+
*/
|
|
36
|
+
+ (char *)unpackData: (const unsigned char *)data dataLength: (int)dataLength errorCode:(int *)errorCode;
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @brief 对传入的数据点数据进行组包
|
|
41
|
+
* @param[in] jsonData 数据点的json字符串集合 格式: { "name": value }
|
|
42
|
+
* @param[in] configurationFileContent 对应设备的配置文件路径
|
|
43
|
+
* @param[out] outData 组完的包数据的地址, 使用完成需要手动释放, outData=NULL 表示组包失败
|
|
44
|
+
* @param[out] outLength 组完包的长度的地址,outLength = 0 表示组包失败
|
|
45
|
+
* @param[in,out] errorCode 返回组包错误码
|
|
46
|
+
*/
|
|
47
|
+
+ (void)dataPointPack: (const char *)jsonData configurationFileContent: (const char *)configurationFileContent outData: (unsigned char **)outData outLength: (int *)outLength errorCode:(int *)errorCode;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @brief 对传入的数据点数据进行解包
|
|
51
|
+
* @param[in] data 传入从设备和云端获取的数据包
|
|
52
|
+
* @param[in] dataLength 传入data数据包的长度
|
|
53
|
+
* @param[in] configurationFileContent 对应设备的配置文件路径
|
|
54
|
+
* @param[in,out] errorCode 返回解包错误码
|
|
55
|
+
* @return 返回解包完成的数据点json集合
|
|
56
|
+
* @see 组包失败,返回值返回NULL; 若返回值不为空使用完成需要手动释放内存
|
|
57
|
+
*/
|
|
58
|
+
+ (char *)dataPointUnPack: (const unsigned char *)data dataLength: (int)dataLength configurationFileContent: (const char *)configurationFileContent errorCode: (int *)errorCode;
|
|
59
|
+
|
|
60
|
+
@end
|
|
61
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MQTTCFSocketDecoder.h
|
|
3
|
+
// MQTTClient.framework
|
|
4
|
+
//
|
|
5
|
+
// Copyright © 2013-2017, Christoph Krey. All rights reserved.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <Foundation/Foundation.h>
|
|
9
|
+
|
|
10
|
+
typedef NS_ENUM(NSInteger, _MQTTCFSocketDecoderState) {
|
|
11
|
+
MQTTCFSocketDecoderStateInitializing,
|
|
12
|
+
MQTTCFSocketDecoderStateReady,
|
|
13
|
+
MQTTCFSocketDecoderStateError
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
@class _MQTTCFSocketDecoder;
|
|
17
|
+
|
|
18
|
+
@protocol _MQTTCFSocketDecoderDelegate <NSObject>
|
|
19
|
+
|
|
20
|
+
- (void)decoder:(_MQTTCFSocketDecoder *)sender didReceiveMessage:(NSData *)data;
|
|
21
|
+
- (void)decoderDidOpen:(_MQTTCFSocketDecoder *)sender;
|
|
22
|
+
- (void)decoder:(_MQTTCFSocketDecoder *)sender didFailWithError:(NSError *)error;
|
|
23
|
+
- (void)decoderdidClose:(_MQTTCFSocketDecoder *)sender;
|
|
24
|
+
|
|
25
|
+
@end
|
|
26
|
+
/// @nodoc
|
|
27
|
+
@interface _MQTTCFSocketDecoder : NSObject <NSStreamDelegate>
|
|
28
|
+
|
|
29
|
+
@property (nonatomic) _MQTTCFSocketDecoderState state;
|
|
30
|
+
@property (strong, nonatomic) NSError *error;
|
|
31
|
+
@property (strong, nonatomic) NSInputStream *stream;
|
|
32
|
+
@property (weak, nonatomic ) id<_MQTTCFSocketDecoderDelegate> delegate;
|
|
33
|
+
|
|
34
|
+
- (void)open;
|
|
35
|
+
- (void)close;
|
|
36
|
+
|
|
37
|
+
@end
|
|
38
|
+
|
|
39
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MQTTCFSocketEncoder.h
|
|
3
|
+
// MQTTClient.framework
|
|
4
|
+
//
|
|
5
|
+
// Copyright © 2013-2017, Christoph Krey. All rights reserved.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <Foundation/Foundation.h>
|
|
9
|
+
|
|
10
|
+
typedef NS_ENUM(NSInteger, _MQTTCFSocketEncoderState) {
|
|
11
|
+
MQTTCFSocketEncoderStateInitializing,
|
|
12
|
+
MQTTCFSocketEncoderStateReady,
|
|
13
|
+
MQTTCFSocketEncoderStateError
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
@class _MQTTCFSocketEncoder;
|
|
17
|
+
|
|
18
|
+
@protocol _MQTTCFSocketEncoderDelegate <NSObject>
|
|
19
|
+
|
|
20
|
+
- (void)encoderDidOpen:(_MQTTCFSocketEncoder *)sender;
|
|
21
|
+
- (void)encoder:(_MQTTCFSocketEncoder *)sender didFailWithError:(NSError *)error;
|
|
22
|
+
- (void)encoderdidClose:(_MQTTCFSocketEncoder *)sender;
|
|
23
|
+
|
|
24
|
+
@end
|
|
25
|
+
|
|
26
|
+
@interface _MQTTCFSocketEncoder : NSObject <NSStreamDelegate>
|
|
27
|
+
|
|
28
|
+
@property (nonatomic) _MQTTCFSocketEncoderState state;
|
|
29
|
+
@property (strong, nonatomic) NSError *error;
|
|
30
|
+
@property (strong, nonatomic) NSOutputStream *stream;
|
|
31
|
+
@property (weak, nonatomic ) id<_MQTTCFSocketEncoderDelegate> delegate;
|
|
32
|
+
|
|
33
|
+
- (void)open;
|
|
34
|
+
- (void)close;
|
|
35
|
+
- (BOOL)send:(NSData *)data;
|
|
36
|
+
|
|
37
|
+
@end
|
|
38
|
+
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MQTTCFSocketTransport.h
|
|
3
|
+
// MQTTClient
|
|
4
|
+
//
|
|
5
|
+
// Created by Christoph Krey on 06.12.15.
|
|
6
|
+
// Copyright © 2015-2017 Christoph Krey. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#import "_MQTTTransport.h"
|
|
10
|
+
#import "_MQTTCFSocketDecoder.h"
|
|
11
|
+
#import "_MQTTCFSocketEncoder.h"
|
|
12
|
+
|
|
13
|
+
/** MQTTCFSocketTransport
|
|
14
|
+
* implements an MQTTTransport on top of CFNetwork
|
|
15
|
+
*/
|
|
16
|
+
@interface _MQTTCFSocketTransport : _MQTTTransport <_MQTTTransport, _MQTTCFSocketDecoderDelegate, _MQTTCFSocketEncoderDelegate>
|
|
17
|
+
|
|
18
|
+
/** streamSSLLevel an NSString containing the security level for read and write streams
|
|
19
|
+
* For list of possible values see:
|
|
20
|
+
* https://developer.apple.com/documentation/corefoundation/cfstream/cfstream_socket_security_level_constants
|
|
21
|
+
* Please also note that kCFStreamSocketSecurityLevelTLSv1_2 is not in a list
|
|
22
|
+
* and cannot be used as constant, but you can use it as a string value
|
|
23
|
+
* defaults to kCFStreamSocketSecurityLevelNegotiatedSSL
|
|
24
|
+
*/
|
|
25
|
+
@property (strong, nonatomic) NSString *streamSSLLevel;
|
|
26
|
+
|
|
27
|
+
/** host an NSString containing the hostName or IP address of the host to connect to
|
|
28
|
+
* defaults to @"localhost"
|
|
29
|
+
*/
|
|
30
|
+
@property (strong, nonatomic) NSString *host;
|
|
31
|
+
|
|
32
|
+
/** port an unsigned 32 bit integer containing the IP port number to connect to
|
|
33
|
+
* defaults to 1883
|
|
34
|
+
*/
|
|
35
|
+
@property (nonatomic) UInt32 port;
|
|
36
|
+
|
|
37
|
+
/** tls a boolean indicating whether the transport should be using security
|
|
38
|
+
* defaults to NO
|
|
39
|
+
*/
|
|
40
|
+
@property (nonatomic) BOOL tls;
|
|
41
|
+
|
|
42
|
+
/** Require for VoIP background service
|
|
43
|
+
* defaults to NO
|
|
44
|
+
*/
|
|
45
|
+
@property (nonatomic) BOOL voip;
|
|
46
|
+
|
|
47
|
+
/** certificates An identity certificate used to reply to a server requiring client certificates according
|
|
48
|
+
* to the description given for SSLSetCertificate(). You may build the certificates array yourself or use the
|
|
49
|
+
* sundry method clientCertFromP12.
|
|
50
|
+
*/
|
|
51
|
+
@property (strong, nonatomic) NSArray *certificates;
|
|
52
|
+
|
|
53
|
+
/** reads the content of a PKCS12 file and converts it to an certificates array for initWith...
|
|
54
|
+
@param path the path to a PKCS12 file
|
|
55
|
+
@param passphrase the passphrase to unlock the PKCS12 file
|
|
56
|
+
@returns a certificates array or nil if an error occured
|
|
57
|
+
|
|
58
|
+
@code
|
|
59
|
+
NSString *path = [[NSBundle bundleForClass:[MQTTClientTests class]] pathForResource:@"filename"
|
|
60
|
+
ofType:@"p12"];
|
|
61
|
+
|
|
62
|
+
NSArray *myCerts = [MQTTCFSocketTransport clientCertsFromP12:path passphrase:@"passphrase"];
|
|
63
|
+
if (myCerts) {
|
|
64
|
+
|
|
65
|
+
self.session = [[MQTTSession alloc] init];
|
|
66
|
+
...
|
|
67
|
+
self.session.certificates = myCerts;
|
|
68
|
+
|
|
69
|
+
[self.session connect];
|
|
70
|
+
...
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@endcode
|
|
74
|
+
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
+ (NSArray *)clientCertsFromP12:(NSString *)path passphrase:(NSString *)passphrase;
|
|
78
|
+
|
|
79
|
+
@end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MQTTCoreDataPersistence.h
|
|
3
|
+
// MQTTClient
|
|
4
|
+
//
|
|
5
|
+
// Created by Christoph Krey on 22.03.15.
|
|
6
|
+
// Copyright © 2015-2017 Christoph Krey. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#import <Foundation/Foundation.h>
|
|
10
|
+
#import <CoreData/CoreData.h>
|
|
11
|
+
#import "_MQTTPersistence.h"
|
|
12
|
+
|
|
13
|
+
@interface _MQTTCoreDataPersistence : NSObject <_MQTTPersistence>
|
|
14
|
+
|
|
15
|
+
@end
|
|
16
|
+
|
|
17
|
+
@interface _MQTTFlow : NSManagedObject <_MQTTFlow>
|
|
18
|
+
@end
|
|
19
|
+
|
|
20
|
+
@interface _MQTTCoreDataFlow : NSObject <_MQTTFlow>
|
|
21
|
+
@end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MQTTDecoder.h
|
|
3
|
+
// MQTTClient.framework
|
|
4
|
+
//
|
|
5
|
+
// Copyright © 2013-2017, Christoph Krey. All rights reserved.
|
|
6
|
+
//
|
|
7
|
+
// based on
|
|
8
|
+
//
|
|
9
|
+
// Copyright (c) 2011, 2013, 2lemetry LLC
|
|
10
|
+
//
|
|
11
|
+
// All rights reserved. This program and the accompanying materials
|
|
12
|
+
// are made available under the terms of the Eclipse Public License v1.0
|
|
13
|
+
// which accompanies this distribution, and is available at
|
|
14
|
+
// http://www.eclipse.org/legal/epl-v10.html
|
|
15
|
+
//
|
|
16
|
+
// Contributors:
|
|
17
|
+
// Kyle Roche - initial API and implementation and/or initial documentation
|
|
18
|
+
//
|
|
19
|
+
|
|
20
|
+
#import <Foundation/Foundation.h>
|
|
21
|
+
#import "_MQTTMessage.h"
|
|
22
|
+
|
|
23
|
+
typedef NS_ENUM(unsigned int, _MQTTDecoderEvent) {
|
|
24
|
+
MQTTDecoderEventProtocolError,
|
|
25
|
+
MQTTDecoderEventConnectionClosed,
|
|
26
|
+
MQTTDecoderEventConnectionError
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
typedef NS_ENUM(unsigned int, _MQTTDecoderState) {
|
|
30
|
+
MQTTDecoderStateInitializing,
|
|
31
|
+
MQTTDecoderStateDecodingHeader,
|
|
32
|
+
MQTTDecoderStateDecodingLength,
|
|
33
|
+
MQTTDecoderStateDecodingData,
|
|
34
|
+
MQTTDecoderStateConnectionClosed,
|
|
35
|
+
MQTTDecoderStateConnectionError,
|
|
36
|
+
MQTTDecoderStateProtocolError
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
@class _MQTTDecoder;
|
|
40
|
+
|
|
41
|
+
@protocol _MQTTDecoderDelegate <NSObject>
|
|
42
|
+
|
|
43
|
+
- (void)decoder:(_MQTTDecoder *)sender didReceiveMessage:(NSData *)data;
|
|
44
|
+
- (void)decoder:(_MQTTDecoder *)sender handleEvent:(_MQTTDecoderEvent)eventCode error:(NSError *)error;
|
|
45
|
+
|
|
46
|
+
@end
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
@interface _MQTTDecoder: NSObject <NSStreamDelegate>
|
|
50
|
+
|
|
51
|
+
@property (nonatomic) _MQTTDecoderState state;
|
|
52
|
+
@property (strong, nonatomic) dispatch_queue_t queue;
|
|
53
|
+
@property (nonatomic) UInt32 length;
|
|
54
|
+
@property (nonatomic) UInt32 lengthMultiplier;
|
|
55
|
+
@property (nonatomic) int offset;
|
|
56
|
+
@property (strong, nonatomic) NSMutableData *dataBuffer;
|
|
57
|
+
|
|
58
|
+
@property (weak, nonatomic) id<_MQTTDecoderDelegate> delegate;
|
|
59
|
+
|
|
60
|
+
- (void)open;
|
|
61
|
+
- (void)close;
|
|
62
|
+
- (void)decodeMessage:(NSData *)data;
|
|
63
|
+
|
|
64
|
+
@end
|
|
65
|
+
|
|
66
|
+
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MQTTLog.h
|
|
3
|
+
// MQTTClient
|
|
4
|
+
//
|
|
5
|
+
// Created by Christoph Krey on 10.02.16.
|
|
6
|
+
// Copyright © 2016-2017 Christoph Krey. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
@import Foundation;
|
|
10
|
+
|
|
11
|
+
#ifdef LUMBERJACK
|
|
12
|
+
|
|
13
|
+
#define LOG_LEVEL_DEF _ddLogLevel
|
|
14
|
+
#import <CocoaLumberjack/CocoaLumberjack.h>
|
|
15
|
+
|
|
16
|
+
#else /* LUMBERJACK */
|
|
17
|
+
|
|
18
|
+
typedef NS_OPTIONS(NSUInteger, _DDLogFlag){
|
|
19
|
+
/**
|
|
20
|
+
* 0...00001 DDLogFlagError
|
|
21
|
+
*/
|
|
22
|
+
DDLogFlagError = (1 << 0),
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* 0...00010 DDLogFlagWarning
|
|
26
|
+
*/
|
|
27
|
+
DDLogFlagWarning = (1 << 1),
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* 0...00100 DDLogFlagInfo
|
|
31
|
+
*/
|
|
32
|
+
DDLogFlagInfo = (1 << 2),
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* 0...01000 DDLogFlagDebug
|
|
36
|
+
*/
|
|
37
|
+
DDLogFlagDebug = (1 << 3),
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 0...10000 DDLogFlagVerbose
|
|
41
|
+
*/
|
|
42
|
+
DDLogFlagVerbose = (1 << 4)
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
typedef NS_ENUM(NSUInteger, DDLogLevel){
|
|
47
|
+
DDLogLevelOff = 0,
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Error logs only
|
|
51
|
+
*/
|
|
52
|
+
DDLogLevelError = (DDLogFlagError),
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Error and warning logs
|
|
56
|
+
*/
|
|
57
|
+
DDLogLevelWarning = (DDLogLevelError | DDLogFlagWarning),
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Error, warning and info logs
|
|
61
|
+
*/
|
|
62
|
+
DDLogLevelInfo = (DDLogLevelWarning | DDLogFlagInfo),
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Error, warning, info and debug logs
|
|
66
|
+
*/
|
|
67
|
+
DDLogLevelDebug = (DDLogLevelInfo | DDLogFlagDebug),
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Error, warning, info, debug and verbose logs
|
|
71
|
+
*/
|
|
72
|
+
DDLogLevelVerbose = (DDLogLevelDebug | DDLogFlagVerbose),
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* All logs (1...11111)
|
|
76
|
+
*/
|
|
77
|
+
DDLogLevelAll = NSUIntegerMax
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
#ifdef DEBUG
|
|
81
|
+
|
|
82
|
+
#define DDLogVerbose if (_ddLogLevel & DDLogFlagVerbose) NSLog
|
|
83
|
+
#define DDLogDebug if (_ddLogLevel & DDLogFlagDebug) NSLog
|
|
84
|
+
#define DDLogWarn if (_ddLogLevel & DDLogFlagWarning) NSLog
|
|
85
|
+
#define DDLogInfo if (_ddLogLevel & DDLogFlagInfo) NSLog
|
|
86
|
+
#define DDLogError if (_ddLogLevel & DDLogFlagError) NSLog
|
|
87
|
+
|
|
88
|
+
#else
|
|
89
|
+
|
|
90
|
+
#define DDLogVerbose(...)
|
|
91
|
+
#define DDLogDebug(...)
|
|
92
|
+
#define DDLogWarn(...)
|
|
93
|
+
#define DDLogInfo(...)
|
|
94
|
+
#define DDLogError(...)
|
|
95
|
+
|
|
96
|
+
#endif /* DEBUG */
|
|
97
|
+
#endif /* LUMBERJACK */
|
|
98
|
+
|
|
99
|
+
extern DDLogLevel _ddLogLevel;
|
|
100
|
+
|
|
101
|
+
/** MQTTLog lets you define the log level for MQTTClient
|
|
102
|
+
* independently of using CocoaLumberjack
|
|
103
|
+
*/
|
|
104
|
+
@interface _MQTTLog: NSObject
|
|
105
|
+
|
|
106
|
+
/** setLogLevel controls the log level for MQTTClient
|
|
107
|
+
* @param logLevel as follows:
|
|
108
|
+
*
|
|
109
|
+
* default for DEBUG builds is DDLogLevelVerbose
|
|
110
|
+
* default for RELEASE builds is DDLogLevelWarning
|
|
111
|
+
*
|
|
112
|
+
* Available log levels:
|
|
113
|
+
* DDLogLevelAll
|
|
114
|
+
* DDLogLevelVerbose
|
|
115
|
+
* DDLogLevelDebug
|
|
116
|
+
* DDLogLevelInfo
|
|
117
|
+
* DDLogLevelWarning
|
|
118
|
+
* DDLogLevelError
|
|
119
|
+
* DDLogLevelOff
|
|
120
|
+
*/
|
|
121
|
+
+ (void)setLogLevel:(DDLogLevel)logLevel;
|
|
122
|
+
|
|
123
|
+
@end
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MQTTMessage.h
|
|
3
|
+
// MQTTClient.framework
|
|
4
|
+
//
|
|
5
|
+
// Copyright © 2013-2017, Christoph Krey. All rights reserved.
|
|
6
|
+
//
|
|
7
|
+
// based on
|
|
8
|
+
//
|
|
9
|
+
// Copyright (c) 2011, 2013, 2lemetry LLC
|
|
10
|
+
//
|
|
11
|
+
// All rights reserved. This program and the accompanying materials
|
|
12
|
+
// are made available under the terms of the Eclipse Public License v1.0
|
|
13
|
+
// which accompanies this distribution, and is available at
|
|
14
|
+
// http://www.eclipse.org/legal/epl-v10.html
|
|
15
|
+
//
|
|
16
|
+
// Contributors:
|
|
17
|
+
// Kyle Roche - initial API and implementation and/or initial documentation
|
|
18
|
+
//
|
|
19
|
+
|
|
20
|
+
#import <Foundation/Foundation.h>
|
|
21
|
+
@class _MQTTProperties;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
Enumeration of MQTT Quality of Service levels
|
|
25
|
+
*/
|
|
26
|
+
typedef NS_ENUM(UInt8, _MQTTQosLevel) {
|
|
27
|
+
MQTTQosLevelAtMostOnce = 0,
|
|
28
|
+
MQTTQosLevelAtLeastOnce = 1,
|
|
29
|
+
MQTTQosLevelExactlyOnce = 2
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
Enumeration of MQTT protocol version
|
|
34
|
+
*/
|
|
35
|
+
typedef NS_ENUM(UInt8, _MQTTProtocolVersion) {
|
|
36
|
+
MQTTProtocolVersion0 = 0,
|
|
37
|
+
MQTTProtocolVersion31 = 3,
|
|
38
|
+
MQTTProtocolVersion311 = 4,
|
|
39
|
+
MQTTProtocolVersion50 = 5
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
typedef NS_ENUM(UInt8, _MQTTCommandType) {
|
|
43
|
+
MQTT_None = 0,
|
|
44
|
+
MQTTConnect = 1,
|
|
45
|
+
MQTTConnack = 2,
|
|
46
|
+
MQTTPublish = 3,
|
|
47
|
+
MQTTPuback = 4,
|
|
48
|
+
MQTTPubrec = 5,
|
|
49
|
+
MQTTPubrel = 6,
|
|
50
|
+
MQTTPubcomp = 7,
|
|
51
|
+
MQTTSubscribe = 8,
|
|
52
|
+
MQTTSuback = 9,
|
|
53
|
+
MQTTUnsubscribe = 10,
|
|
54
|
+
MQTTUnsuback = 11,
|
|
55
|
+
MQTTPingreq = 12,
|
|
56
|
+
MQTTPingresp = 13,
|
|
57
|
+
MQTTDisconnect = 14,
|
|
58
|
+
MQTTAuth = 15
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
@interface _MQTTMessage : NSObject
|
|
62
|
+
|
|
63
|
+
@property (nonatomic) _MQTTCommandType type;
|
|
64
|
+
@property (nonatomic) _MQTTQosLevel qos;
|
|
65
|
+
@property (nonatomic) BOOL retainFlag;
|
|
66
|
+
@property (nonatomic) BOOL dupFlag;
|
|
67
|
+
@property (nonatomic) UInt16 mid;
|
|
68
|
+
@property (strong, nonatomic) NSData *data;
|
|
69
|
+
@property (strong, nonatomic) NSNumber *returnCode;
|
|
70
|
+
@property (strong, nonatomic) NSNumber *connectAcknowledgeFlags;
|
|
71
|
+
@property (strong, nonatomic) _MQTTProperties *properties;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
Enumeration of MQTT return codes
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
typedef NS_ENUM(NSUInteger, _MQTTReturnCode) {
|
|
78
|
+
MQTTAccepted = 0,
|
|
79
|
+
MQTTRefusedUnacceptableProtocolVersion = 1,
|
|
80
|
+
MQTTRefusedIdentiferRejected = 2,
|
|
81
|
+
MQTTRefusedServerUnavailable = 3,
|
|
82
|
+
MQTTRefusedBadUserNameOrPassword = 4,
|
|
83
|
+
MQTTRefusedNotAuthorized = 5,
|
|
84
|
+
|
|
85
|
+
MQTTSuccess = 0,
|
|
86
|
+
MQTTDisconnectWithWillMessage = 4,
|
|
87
|
+
MQTTNoSubscriptionExisted = 17,
|
|
88
|
+
MQTTContinueAuthentication = 24,
|
|
89
|
+
MQTTReAuthenticate = 25,
|
|
90
|
+
MQTTUnspecifiedError = 128,
|
|
91
|
+
MQTTMalformedPacket = 129,
|
|
92
|
+
MQTTProtocolError = 130,
|
|
93
|
+
MQTTImplementationSpecificError = 131,
|
|
94
|
+
MQTTUnsupportedProtocolVersion = 132,
|
|
95
|
+
MQTTClientIdentifierNotValid = 133,
|
|
96
|
+
MQTTBadUserNameOrPassword = 134,
|
|
97
|
+
MQTTNotAuthorized = 135,
|
|
98
|
+
MQTTServerUnavailable = 136,
|
|
99
|
+
MQTTServerBusy = 137,
|
|
100
|
+
MQTTBanned = 138,
|
|
101
|
+
MQTTServerShuttingDown = 139,
|
|
102
|
+
MQTTBadAuthenticationMethod = 140,
|
|
103
|
+
MQTTKeepAliveTimeout = 141,
|
|
104
|
+
MQTTSessionTakenOver = 142,
|
|
105
|
+
MQTTTopicFilterInvalid = 143,
|
|
106
|
+
MQTTTopicNameInvalid = 144,
|
|
107
|
+
MQTTPacketIdentifierInUse = 145,
|
|
108
|
+
MQTTPacketIdentifierNotFound = 146,
|
|
109
|
+
MQTTReceiveMaximumExceeded = 147,
|
|
110
|
+
MQTTPacketTooLarge = 149,
|
|
111
|
+
MQTTMessageRateTooHigh = 150,
|
|
112
|
+
MQTTQuotaExceeded = 151,
|
|
113
|
+
MQTTAdministrativeAction = 152,
|
|
114
|
+
MQTTPayloadFormatInvalid = 153,
|
|
115
|
+
MQTTRetainNotSupported = 154,
|
|
116
|
+
MQTTQoSNotSupported = 155,
|
|
117
|
+
MQTTUseAnotherServer = 156,
|
|
118
|
+
MQTTServerMoved = 157,
|
|
119
|
+
MQTTSharedSubscriptionNotSupported = 158,
|
|
120
|
+
MQTTConnectionRateExceeded = 159,
|
|
121
|
+
MQTTSubscriptionIdentifiersNotSupported = 161,
|
|
122
|
+
MQTTWildcardSubscriptionNotSupported = 162
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
// factory methods
|
|
126
|
+
+ (_MQTTMessage *)connectMessageWithClientId:(NSString*)clientId
|
|
127
|
+
userName:(NSString*)userName
|
|
128
|
+
password:(NSString*)password
|
|
129
|
+
keepAlive:(NSInteger)keeplive
|
|
130
|
+
cleanSession:(BOOL)cleanSessionFlag
|
|
131
|
+
will:(BOOL)will
|
|
132
|
+
willTopic:(NSString*)willTopic
|
|
133
|
+
willMsg:(NSData*)willData
|
|
134
|
+
willQoS:(_MQTTQosLevel)willQoS
|
|
135
|
+
willRetain:(BOOL)willRetainFlag
|
|
136
|
+
protocolLevel:(_MQTTProtocolVersion)protocolLevel
|
|
137
|
+
sessionExpiryInterval:(NSNumber *)sessionExpiryInterval
|
|
138
|
+
authMethod:(NSString *)authMethod
|
|
139
|
+
authData:(NSData *)authData
|
|
140
|
+
requestProblemInformation:(NSNumber *)requestProblemInformation
|
|
141
|
+
willDelayInterval:(NSNumber *)willDelayInterval
|
|
142
|
+
requestResponseInformation:(NSNumber *)requestResponseInformation
|
|
143
|
+
receiveMaximum:(NSNumber *)receiveMaximum
|
|
144
|
+
topicAliasMaximum:(NSNumber *)topicAliasMaximum
|
|
145
|
+
userProperty:(NSDictionary <NSString *, NSString *> *)userProperty
|
|
146
|
+
maximumPacketSize:(NSNumber *)maximumPacketSize
|
|
147
|
+
;
|
|
148
|
+
|
|
149
|
+
+ (_MQTTMessage *)pingreqMessage;
|
|
150
|
+
|
|
151
|
+
+ (_MQTTMessage *)disconnectMessage:(_MQTTProtocolVersion)protocolLevel
|
|
152
|
+
returnCode:(_MQTTReturnCode)returnCode
|
|
153
|
+
sessionExpiryInterval:(NSNumber *)sessionExpiryInterval
|
|
154
|
+
reasonString:(NSString *)reasonString
|
|
155
|
+
userProperty:(NSDictionary <NSString *, NSString *> *)userProperty;
|
|
156
|
+
|
|
157
|
+
+ (_MQTTMessage *)subscribeMessageWithMessageId:(UInt16)msgId
|
|
158
|
+
topics:(NSDictionary *)topics
|
|
159
|
+
protocolLevel:(_MQTTProtocolVersion)protocolLevel
|
|
160
|
+
subscriptionIdentifier:(NSNumber *)subscriptionIdentifier;
|
|
161
|
+
|
|
162
|
+
+ (_MQTTMessage *)unsubscribeMessageWithMessageId:(UInt16)msgId
|
|
163
|
+
topics:(NSArray *)topics
|
|
164
|
+
protocolLevel:(_MQTTProtocolVersion)protocolLevel;
|
|
165
|
+
|
|
166
|
+
+ (_MQTTMessage *)publishMessageWithData:(NSData*)payload
|
|
167
|
+
onTopic:(NSString*)topic
|
|
168
|
+
qos:(_MQTTQosLevel)qosLevel
|
|
169
|
+
msgId:(UInt16)msgId
|
|
170
|
+
retainFlag:(BOOL)retain
|
|
171
|
+
dupFlag:(BOOL)dup
|
|
172
|
+
protocolLevel:(_MQTTProtocolVersion)protocolLevel
|
|
173
|
+
payloadFormatIndicator:(NSNumber *)payloadFormatIndicator
|
|
174
|
+
publicationExpiryInterval:(NSNumber *)publicationExpiryInterval
|
|
175
|
+
topicAlias:(NSNumber *)topicAlias
|
|
176
|
+
responseTopic:(NSString *)responseTopic
|
|
177
|
+
correlationData:(NSData *)correlationData
|
|
178
|
+
userProperty:(NSDictionary <NSString *, NSString *> *)userProperty
|
|
179
|
+
contentType:(NSString *)contentType;
|
|
180
|
+
|
|
181
|
+
+ (_MQTTMessage *)pubackMessageWithMessageId:(UInt16)msgId
|
|
182
|
+
protocolLevel:(_MQTTProtocolVersion)protocolLevel
|
|
183
|
+
returnCode:(_MQTTReturnCode)returnCode
|
|
184
|
+
reasonString:(NSString *)reasonString
|
|
185
|
+
userProperty:(NSDictionary <NSString *, NSString *> *)userProperty;
|
|
186
|
+
|
|
187
|
+
+ (_MQTTMessage *)pubrecMessageWithMessageId:(UInt16)msgId
|
|
188
|
+
protocolLevel:(_MQTTProtocolVersion)protocolLevel
|
|
189
|
+
returnCode:(_MQTTReturnCode)returnCode
|
|
190
|
+
reasonString:(NSString *)reasonString
|
|
191
|
+
userProperty:(NSDictionary <NSString *, NSString *> *)userProperty;
|
|
192
|
+
|
|
193
|
+
+ (_MQTTMessage *)pubrelMessageWithMessageId:(UInt16)msgId
|
|
194
|
+
protocolLevel:(_MQTTProtocolVersion)protocolLevel
|
|
195
|
+
returnCode:(_MQTTReturnCode)returnCode
|
|
196
|
+
reasonString:(NSString *)reasonString
|
|
197
|
+
userProperty:(NSDictionary <NSString *, NSString *> *)userProperty;
|
|
198
|
+
|
|
199
|
+
+ (_MQTTMessage *)pubcompMessageWithMessageId:(UInt16)msgId
|
|
200
|
+
protocolLevel:(_MQTTProtocolVersion)protocolLevel
|
|
201
|
+
returnCode:(_MQTTReturnCode)returnCode
|
|
202
|
+
reasonString:(NSString *)reasonString
|
|
203
|
+
userProperty:(NSDictionary <NSString *, NSString *> *)userProperty;
|
|
204
|
+
|
|
205
|
+
+ (_MQTTMessage *)messageFromData:(NSData *)data protocolLevel:(_MQTTProtocolVersion)protocolLevel;
|
|
206
|
+
|
|
207
|
+
// instance methods
|
|
208
|
+
- (instancetype)initWithType:(_MQTTCommandType)type;
|
|
209
|
+
- (instancetype)initWithType:(_MQTTCommandType)type
|
|
210
|
+
data:(NSData *)data;
|
|
211
|
+
- (instancetype)initWithType:(_MQTTCommandType)type
|
|
212
|
+
qos:(_MQTTQosLevel)qos
|
|
213
|
+
data:(NSData *)data;
|
|
214
|
+
- (instancetype)initWithType:(_MQTTCommandType)type
|
|
215
|
+
qos:(_MQTTQosLevel)qos
|
|
216
|
+
retainFlag:(BOOL)retainFlag
|
|
217
|
+
dupFlag:(BOOL)dupFlag
|
|
218
|
+
data:(NSData *)data;
|
|
219
|
+
|
|
220
|
+
@property (NS_NONATOMIC_IOSONLY, readonly, copy) NSData *wireFormat;
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
@end
|
|
224
|
+
|
|
225
|
+
@interface NSMutableData (MQTT)
|
|
226
|
+
- (void)appendByte:(UInt8)byte;
|
|
227
|
+
- (void)appendUInt16BigEndian:(UInt16)val;
|
|
228
|
+
- (void)appendUInt32BigEndian:(UInt32)val;
|
|
229
|
+
- (void)appendVariableLength:(unsigned long)length;
|
|
230
|
+
- (void)appendMQTTString:(NSString *)string;
|
|
231
|
+
- (void)appendBinaryData:(NSData *)data;
|
|
232
|
+
|
|
233
|
+
@end
|