MAK RTIspy API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
forwarderObserverForAssistant.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 "forwarderObserver.h"
13 #include <rtiMsConfig.h>
14 #include <vlutil/vlUtil.h>
15 #include <vlutil/vlTime.h>
16 #include <vlutil/vlInetAddr.h>
19 #include <RIDparams.h>
20 #include <map>
21 #include <vector>
22 #include <list>
23 
24 class DtRtiMsg;
25 class DtAssistantPrinter;
27 class DtAssistantExitMsg;
31 
37 {
38 public:
39 
41  {
42  DtForwarderObserverConnInfo( const MAKRti::DtString& connName,
43  const MAKRti::DtString& connType,
44  const MAKRti::DtString& federationName, unsigned int connID,
45  const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& connAddr, const MAKRti::DtString& connHost,
46  unsigned int fedHandle = 0,
48  int connQueueStatus = 0 )
49  : myConnName( connName )
50  , myConnType( connType )
51  , myConnPID( 0 )
52  , myConnProcessName()
53  , myConnCommandArgs()
54  , myConnHost( connHost )
55  , myConnID( connID )
56  , myConnAddr( connAddr.first )
57  , myConnAddrPrivate(connAddr.second)
58  , myFedHandle( fedHandle )
59  , myFederationName( federationName )
60  , myConnQueueStatus( connQueueStatus )
61  , myHlaVersion( hlaVersion )
62  {
63  }
64 
65  bool operator < ( const DtForwarderObserverConnInfo& other ) const
66  {
67  return ( myConnID < other.myConnID
68  || ( myConnID == other.myConnID && myConnAddr < other.myConnAddr ) );
69  }
70  bool operator == ( const DtForwarderObserverConnInfo& other ) const
71  {
72  return ( myConnID == other.myConnID && myConnAddr == other.myConnAddr );
73  }
74 
75  MAKRti::DtString myConnName;
76  MAKRti::DtString myConnHost;
77  MAKRti::DtString myConnType;
78  MAKRti::DtString myConnProcessName;
79  MAKRti::DtString myConnCommandArgs;
80  MAKRti::DtString myFederationName;
81  unsigned int myConnID;
82  unsigned int myFedHandle;
83  unsigned int myConnPID;
88 
89  };
90 
91 
93  {
94  DtForwarderObserverDroppedConnInfo( const DtString& connName, const DtString& connType,
95  const DtString& federationName, unsigned int connID, const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& connAddr,
96  const DtString& connHost, unsigned int federateHandle, DtHlaVersionId hlaVersion,
97  DtTime startTime )
98  : myInfo( connName, connType, federationName, connID, connAddr,
99  connHost, federateHandle, hlaVersion, 0 )
100  , myStartTime( startTime )
101  {
102  }
103 
104  bool operator < ( const DtForwarderObserverDroppedConnInfo& other ) const
105  {
106  return ( myInfo.myConnID < other.myInfo.myConnID );
107  }
108 
110  MAKRti::DtTime myStartTime;
111 
112  };
113 
114 public:
115 
118 
121 
125  virtual void initialize( DtRIDParameters* params );
126 
129 
131  static void tick( void* usr );
132 
134  virtual void tick();
135 
137 
140  virtual void queryForConnectionInfo( int& forwarderPort,
141  MAKRti::DtInetAddr& forwarderToConnectTo );
142 
144  virtual void performParameterOverrides( DtRIDParameters& ridParams ) const;
145 
148  virtual void setForwarderInfo( int forwarderPort,
149  const MAKRti::DtInetAddr& forwarderToConnectTo );
150 
152  virtual void enableNotifications();
153 
155  virtual void disableNotifications();
156 
159 
161  static void processForwarderObserveMsg( const DtAssistantStateObserveMsg& msg, void* usr );
163  virtual void processForwarderObserveMsg( const DtAssistantStateObserveMsg& msg );
164 
166  static void processExitCmndMsg( const DtAssistantExitMsg& msg, void* usr );
168  virtual void processExitCmndMsg( const DtAssistantExitMsg& msg );
169 
171  static void processRidParamRequest( const DtAssistantRidParamsMsg& msg, void* usr );
173  virtual void processRidParamRequest( const DtAssistantRidParamsMsg& msg );
174 
176  static void processEnableLoggingMsg( const DtAssistantLogEnableMsg& msg, void* usr );
178  virtual void processEnableLoggingMsg( const DtAssistantLogEnableMsg& msg );
179 
181  static void processNotifyLevelChangeMsg( const DtAssistantNtfyLvlUpdateMsg& msg, void* usr );
183  virtual void processNotifyLevelChangeMsg( const DtAssistantNtfyLvlUpdateMsg& msg );
184 
186  static void processAssistantDisconnect( void* usr );
188  virtual void processAssistantDisconnect();
189 
191 
193  virtual void processLogFileUpdatedEvent( const MAKRti::DtFilename& logFile );
194 
197  const MAKRti::DtString& connName, const MAKRti::DtString& hostName,
198  const MAKRti::DtString& connType, unsigned int connID, const DtInetAddrAndPort& connAddr);
199 
202  const MAKRti::DtString& connName, const MAKRti::DtString& hostName,
203  unsigned int connID, const DtInetAddrAndPort& connAddr);
204 
206  virtual void clientToForwarderFederateJoined(
207  const DtString& connName, const DtString& connType,
208  const DtString& federationName, unsigned int connID,
209  unsigned int fedHandle, const DtInetAddrAndPort& connAddr,
210  const MAKRti::DtString& connHost, unsigned int processId,
211  const MAKRti::DtString& processName, const MAKRti::DtString& commandArgs,
212  DtHlaVersionId hlaVersion );
213 
215  virtual void clientToForwarderFederateLost(
216  const MAKRti::DtString& connName, const MAKRti::DtString& connType,
217  unsigned int connID, unsigned int fedHandle,
218  const DtInetAddrAndPort& connAddr );
219 
222  const MAKRti::DtString& connName, unsigned int connID,
223  const DtInetAddrAndPort& connAddr, const MAKRti::DtString& hostName,
224  bool fullyCompliant );
225 
227  virtual int forwarderToForwarderExecLost(
228  const MAKRti::DtString& connName, unsigned int connID,
229  const DtInetAddrAndPort& connAddr );
230 
232  virtual int clientToForwarderExecConnected(
233  const MAKRti::DtString& connName, unsigned int connID,
234  const DtInetAddrAndPort& connAddr, const MAKRti::DtString& connHost,
235  bool fullyCompliant );
236 
238  virtual int clientToForwarderExecLost(
239  const MAKRti::DtString& connName, unsigned int connID,
240  const DtInetAddrAndPort& connAddr );
241 
244  const MAKRti::DtString& connName, const MAKRti::DtString& hostName,
245  unsigned int connID, const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& connAddr);
246 
249  const MAKRti::DtString& connName, const MAKRti::DtString& hostName,
250  unsigned int connID, const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& connAddr);
251 
254  const MAKRti::DtString& connName, const MAKRti::DtString& hostName,
255  unsigned int oldConnID, unsigned int newConnID, const DtInetAddrAndPort& connAddr );
256 
259  unsigned int connId, int connQueueStatus );
260 
263  virtual void waitingForFowrarderConnections(
264  const DtForwarderPort::DtConnAndNameMap& allNeededFws,
265  const DtForwarderPort::DtConnAndNameMap& stillNeededFws );
266 
268  virtual void notWaitingForFowrarderConnections();
269 
271  bool gotConnInfoFromAssistant();
272 
273  DtBoost::shared_ptr<DtRtiAssistantForwarderClient> assistantClient() { return myAssistantClient; }
274 
275  virtual void sendTrayNotification( const MAKRti::DtString& text, DtNotifyLevelType notifyLevel );
276 
277  inline const DtRIDParameters* ridParams() const { return myParams; }
278  inline DtRIDParameters* ridParams() { return myParams; }
279 
280 protected:
281 
283  virtual void addCallbacks();
284 
287  virtual void removeCallbacks();
288 
291  virtual void sendForwarderInfoToAssistant() const;
292 
295  virtual void sendWaitingForForwardersToAssistant() const;
296 
297 protected:
298 
300  DtBoost::shared_ptr<DtRtiAssistantForwarderClient> myAssistantClient;
301 
304 
307 
310 
312  MAKRti::DtInetAddr myHostAddr;
313 
316 
317  std::set<DtForwarderObserverConnInfo> myConnectedNotJoinedClientConns;
318  std::set<DtForwarderObserverConnInfo> myClientForwarderConns;
319  std::set<DtForwarderObserverConnInfo> myForwarderForwarderConns;
320  std::set<DtForwarderObserverDroppedConnInfo> myUnexpectedlyDroppedClientConns;
321 
325 
328 
329  MAKRti::DtClock myClock;
331 
334 
336 
338  MAKRti::DtInetAddr myForwarderToConnectTo;
340 
342  DtBoost::shared_ptr<DtFilePrinter> myLogPrinter;
343 
344 };
345 
346 
348 {
350 }
351 
352 void DtForwarderObserverForAssistant::sendTrayNotification( const MAKRti::DtString& text, DtNotifyLevelType notifyLevel )
353 {
354  myAssistantClient->sendNotifyMsg( text, notifyLevel );
355 }

Document ID: Generated on Fri Sep 27 00:57:56 EDT 2019 from SVN revision 201708
Copyright © 2005-2018 VT MÄK Inc. All Rights Reserved (www.mak.com)