MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rtiAssistantClient.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2016 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vlutil/vlPrint.h>
13 #include <vlutil/vlMutex.h>
14 #include <vlutil/vlInetAddr.h>
15 #include <rtiMsConfig.h>
16 
18 #include "assistantMsgCbMgr.h"
20 
22 typedef void (*DtAssistantDisconnectCb)( void* usr );
23 
27 class DtAssistantExitMsg;
29 class DtAssistantDisconnectCbInfo;
30 class DtTcpMsgSocket;
31 
33 {
41 
42 };
43 
45 {
51 };
52 
53 
60 {
61 public:
62 
65 
67  virtual ~DtRtiAssistantClient();
68 
69 private:
70 
73 
75  DtRtiAssistantClient& operator = ( const DtRtiAssistantClient& );
76 
77 public:
78 
81  virtual bool tick( unsigned int timeout = 0 );
82 
84  virtual bool isConnected();
85 
87  virtual bool isDisabled();
88 
91  virtual void addMsgCallback( DtAssistantMsgKind msgKind, DtAssistantMsgCbMgr::DtCallbackFcn fcn, void* usr );
92  virtual void removeMsgCallback( DtAssistantMsgKind msgKind, DtAssistantMsgCbMgr::DtCallbackFcn fcn, void* usr );
93  virtual void addWildcardMsgCallback( DtAssistantMsgCbMgr::DtCallbackFcn fcn, void* usr );
94  virtual void removeWildcardMsgCallback( DtAssistantMsgCbMgr::DtCallbackFcn fcn, void* usr );
95 
97  virtual void addDisconnectCallback( DtAssistantDisconnectCb cb, void* usr );
98  virtual void removeDisconnectCallback( DtAssistantDisconnectCb cb, void* usr );
99 
101  virtual bool sendLRCConnQueryMsg( bool error,
102  MAKRti::DtString& connectionName, bool& ridIsPreconfigured, MAKRti::DtString& ridConfig,
103  MAKRti::DtInetAddr& tcpAddr, int& tcpPort, MAKRti::DtInetAddr& tcpIntf,
104  MAKRti::DtInetAddr& udpAddr, int& udpPort, MAKRti::DtInetAddr& udpIntf,
105  int& forwarderPort, bool& useRtiexec, bool& forceFullCompliance);
106 
108  virtual bool sendForwardingComponentConnQueryMsg( bool error,
109  MAKRti::DtString& connectionName, bool& ridIsPreconfigured, MAKRti::DtString& ridConfig,
110  MAKRti::DtInetAddr& tcpAddr, int& tcpPort, MAKRti::DtInetAddr& tcpIntf,
111  MAKRti::DtInetAddr& udpAddr, int& udpPort, MAKRti::DtInetAddr& udpIntf,
112  MAKRti::DtInetAddr& forwarderToConnectTo, int& forwarderPort, bool& forceFullCompliance );
113 
115  virtual void sendLatencyTestMsg( const DtAssistantLatencyReportMsg& msg );
116 
118  virtual void sendLatencyTestStatusMsg( const DtAssistantTestMgrStatusMsg& msg );
119 
122  virtual bool getNewLicenseServerFromAssistant( bool allowUnlicensed,
123  bool& runUnlicensed, MAKRti::DtString& serverName, const MAKRti::DtString& featToCheck );
124 
126  virtual void sendNotifyMsg( const MAKRti::DtString& text, DtNotifyLevelType notifyLevel );
127 
129  virtual void sendSignalTickedMsg();
130 
132  virtual void sendDialogBoxMsg( const MAKRti::DtString& text,
133  const MAKRti::DtString& advancedText );
134 
137  virtual void sendClose();
138 
140  virtual void sendRidParamsMsg( const MAKRti::DtString& params,
141  const MAKRti::DtFilename& filename,
142  const MAKRti::DtString& federation = MAKRti::DtString::nullString(),
143  unsigned federateHdl = 0 );
144 
146  virtual void setMsgFactory(DtAssistantMessageFactory* fact);
147  virtual DtAssistantMessageFactory* msgFactory() const;
148 
151  virtual void shutDownConnection();
152 
154  virtual MAKRti::DtString getProcessName() const;
155 
157  virtual int getPID() const;
158 
160  virtual MAKRti::DtString getCommandArgs() const;
161 
163  bool testConnectionStatus();
164 
166  virtual int componentId() const;
167 
168 protected:
169 
172  virtual bool initialize();
173 
176  virtual DtAssistantConnectionStatus connectToAssistant();
177 
178  virtual DtAssistantConnectionStatus makeSingleConnectionAttempt();
179 
181  virtual bool startAssistant();
182 
184  virtual bool readAndProcess( MAKRti::DtTime maxTime );
185 
188  virtual bool sendMsg( const DtAssistantMsg& msg );
189 
196  virtual DtAssistantMsg* sendMsgAndWait( const DtAssistantMsg& msg,
197  DtAssistantMsgKind respKind, unsigned int waitSecs = 0 );
198 
201  virtual DtAssistantConnectionStatus sendConnectMsg();
202 
204  static void processRespMsg(const DtAssistantMsg& respMsg, void* usr);
205  virtual void processRespMsg(const DtAssistantMsg& respMsg);
206 
208  static void processNtfyLvlUpdateMsg(const DtAssistantNtfyLvlUpdateMsg& updateMsg, void* usr);
209  virtual void processNtfyLvlUpdateMsg(const DtAssistantNtfyLvlUpdateMsg& updateMsg);
210 
212  static void processAssistantExitMsg( const DtAssistantExitMsg& inter, void* usr);
213  virtual void processAssistantExitMsg( const DtAssistantExitMsg& inter);
214 
216  virtual void processDisconnect();
217 
219  virtual std::auto_ptr<DtAssistantMsg> netRead( int *retCode) const;
220 
222  virtual bool sendLicQueryMsg( bool allowUnlicensed, bool& runUnlicensed,
223  MAKRti::DtString& licServer );
224 
227  virtual void sendClientInfo();
228 
229 protected:
230 
233 
235  MAKRti::DtInetAddr myAssistantAddr;
236 
238  unsigned int myAssistantPort;
239 
242 
246 
249 
252 
254  MAKRti::DtU32 mySockOpts;
255 
258 
261 
264 
266  MAKRti::DtClock myClock;
267 
269  MAKRti::DtTime myConnTestInterval;
270 
272  MAKRti::DtTime myTimeToTestConnection;
273 
276 
278  std::auto_ptr<DtAssistantMsg> myRespMsg;
279 
281  std::list<DtAssistantDisconnectCbInfo*> myDisconnectCallbacks;
282 
284  MAKRti::DtMutex* mySocketMutex;
285 
288 
292 
294  // the LRC sleeps.
295  static const MAKRti::DtTime theSleepBetweenAssistantConnectAttempts;
296 
299 
302 
304  static const MAKRti::DtInetAddr theFirstHostInetAddr;
305 
307  int myPID;
308 
310  MAKRti::DtString myProcessName;
311 
313  MAKRti::DtString myCommandArgs;
314 
317 
319  unsigned long mySequence;
320 
321 };

Document ID: Generated on Mon Jul 9 10:30:41 EDT 2018 from SVN revision 190224
Copyright © 2005-2018 VT MÄK Inc. All Rights Reserved (www.mak.com)