15#import <Foundation/Foundation.h>
16#import <UniPRT/JsonStringTokenizer.h>
17#import <UniPRT/JsonStringBuilder.h>
18#import <UniPRT/ImpChannel.h>
19#import <UniPRT/CancellationToken.h>
20#import <UniPRT/TcpComm.h>
31@interface JsonComm : NSObject {
33 NSLock *_listenerMutex;
34 NSMutableDictionary *_SolicitedListenerTable;
35 NSMutableArray *_msgListeners_Solicited;
36 CancellationToken *_cancellationTokenSource;
37 JsonStringTokenizer *_jsonStringTokenizer;
38 NSThread *_asyncJsonMsgTransceiverThread;
41 NSMutableArray *_msgListeners_AllMsgs;
42 NSMutableArray *_msgListeners_Unsolicited;
43 NSMutableString *_jsonReceived;
44 NSLock *_semaphoreListeners;
54typedef NS_ENUM(NSInteger, CommType) {
60@property (strong, nonatomic)
id commToPtr;
61@property (assign, nonatomic) CommType commType;
62@property (assign, nonatomic) BOOL m_ThIsRunning;
63@property (nonatomic, strong) NSMutableArray *msgListeners_Solicited;
64@property (nonatomic, strong) NSMutableArray *msgListeners_Unsolicited;
65@property (nonatomic, strong) NSMutableArray *msgListeners_AllMsgs;
66@property (nonatomic, strong) NSMutableDictionary<NSString *, ImpChannel *> *solicitedListenerTable;
67@property (nonatomic, strong) ImpChannel *msgOut;
68@property (nonatomic, strong) ImpChannel *MonitorMsgOut;
69@property (nonatomic, strong) ImpChannel *MsgsFromPtr;
70@property (nonatomic, assign) BOOL usingDataPort;
71@property (nonatomic, strong) NSString *solicitedUnsolicitedMsg;
72@property (nonatomic, assign) NSInteger iMsgCount;
78typedef NS_ENUM(NSInteger, ChannelType) {
80 UNSOLICITED_MSGS_ONLY,
94- (void)disposeWithFlag:(BOOL)disposing;
101- (void)listenerChannelDisconnect:(ImpChannel *)chnlToRemove;
121- (void)jsonMsgTransceiverTask;
129- (NSString *)solicitedChnlKey:(ImpChannel *)chnlToLookFor;
138- (instancetype)initWithComm:(
id)commToPtr commType:(NSInteger)commType;
148- (ImpChannel *)listenerChannelGetNewWithCapacity:(NSInteger)capacity
149 channelType:(ChannelType)channelType
150 solicitedMsgId:(NSString *)solicitedMsgId;
157- (void)send:(NSString *)mgmtMsgToSend;
164- (ImpChannel *)getImpChannel;
180- (NSString *)sendAndWaitForResponse:(NSString *)mgmtMsg timeout:(
int)respTimeoutMs;
A class for TCP communication, inheriting from AComm and conforming to the NSStreamDelegate protocol.
Definition TcpComm.h:101