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) {
61@property (strong, nonatomic)
id commToPtr;
62@property (assign, nonatomic) CommType commType;
63@property (assign, nonatomic) BOOL m_ThIsRunning;
64@property (nonatomic, strong) NSMutableArray *msgListeners_Solicited;
65@property (nonatomic, strong) NSMutableArray *msgListeners_Unsolicited;
66@property (nonatomic, strong) NSMutableArray *msgListeners_AllMsgs;
67@property (nonatomic, strong) NSMutableDictionary<NSString *, ImpChannel *> *solicitedListenerTable;
68@property (nonatomic, strong) ImpChannel *msgOut;
69@property (nonatomic, strong) ImpChannel *MonitorMsgOut;
70@property (nonatomic, strong) ImpChannel *MsgsFromPtr;
71@property (nonatomic, assign) BOOL usingDataPort;
72@property (nonatomic, strong) NSString *solicitedUnsolicitedMsg;
73@property (nonatomic, assign) NSInteger iMsgCount;
79typedef NS_ENUM(NSInteger, ChannelType) {
81 UNSOLICITED_MSGS_ONLY,
95- (void)disposeWithFlag:(BOOL)disposing;
102- (void)listenerChannelDisconnect:(ImpChannel *)chnlToRemove;
122- (void)jsonMsgTransceiverTask;
130- (NSString *)solicitedChnlKey:(ImpChannel *)chnlToLookFor;
139- (instancetype)initWithComm:(
id)commToPtr commType:(NSInteger)commType;
149- (ImpChannel *)listenerChannelGetNewWithCapacity:(NSInteger)capacity
150 channelType:(ChannelType)channelType
151 solicitedMsgId:(NSString *)solicitedMsgId;
158- (void)send:(NSString *)mgmtMsgToSend;
165- (ImpChannel *)getImpChannel;
181- (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