MAK RTIspy API Documentation for HLA Evolved
forwarderObserverForAssistant.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MaK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #ifndef forwarderObserverForAssistant_H_
10 #define forwarderObserverForAssistant_H_
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;
32 
39 {
40 
41 public:
43  {
44  DtForwarderObserverConnInfo(const MAKRti::DtString& connName,
45  const MAKRti::DtString& connType,
46  const MAKRti::DtString& federationName, unsigned int connID,
47  const DtInetAddrAndPort& connAddr, const MAKRti::DtString& connHost,
48  unsigned int fedHandle = 0,
50  int connQueueStatus = 0) :
51  myConnName(connName),
52  myConnType(connType),
53  myConnPID(0),
54  myConnProcessName(),
55  myConnCommandArgs(),
56  myConnHost(connHost),
57  myConnID(connID),
58  myConnAddr(connAddr),
59  myFedHandle( fedHandle ),
60  myFederationName( federationName ),
61  myConnQueueStatus( connQueueStatus ),
62  myHlaVersion( hlaVersion ) {};
63 
64  bool operator<(const DtForwarderObserverConnInfo& other) const
65  {
66  return (myConnID < other.myConnID);
67  }
68  bool operator==(const DtForwarderObserverConnInfo& other) const
69  {
70  return (myConnID == other.myConnID );
71  }
72 
73  MAKRti::DtString myConnName;
74  MAKRti::DtString myConnHost;
75  MAKRti::DtString myConnType;
76  MAKRti::DtString myConnProcessName;
77  MAKRti::DtString myConnCommandArgs;
78  MAKRti::DtString myFederationName;
79  unsigned int myConnID;
80  unsigned int myFedHandle;
81  unsigned int myConnPID;
85  };
86 
88  {
89  DtForwarderObserverDroppedConnInfo( const DtString& connName,
90  const DtString& connType, const DtString& federationName,
91  unsigned int connID, const DtInetAddrAndPort& connAddr,
92  const DtString& connHost, unsigned int federateHandle, DtHlaVersionId hlaVersion, DtTime startTime ) :
93  myInfo( connName, connType, federationName, connID, connAddr, connHost, federateHandle, hlaVersion, 0),
94  myStartTime( startTime ) {}
95 
96  bool operator<(const DtForwarderObserverDroppedConnInfo& other ) const
97  {
98  return ( myInfo.myConnID < other.myInfo.myConnID );
99  }
100 
102  MAKRti::DtTime myStartTime;
103  };
104 
107 
109  virtual void initialize( DtRIDParameters* params );
110 
112 
113 
114  static void tick( void* usr );
116  virtual void tick();
118 
119  virtual void queryForConnectionInfo( int& forwarderPort,
120  MAKRti::DtInetAddr& forwarderToConnectTo );
121 
124  virtual void setForwarderInfo( int forwarderPort,
125  const MAKRti::DtInetAddr& forwarderToConnectTo );
126 
128  virtual void enableNotifications();
129 
131  virtual void disableNotifications();
132 
134 
135 
138  static void processForwarderObserveMsg( const DtAssistantStateObserveMsg& msg,
139  void* usr );
142  virtual void processForwarderObserveMsg( const DtAssistantStateObserveMsg& msg );
143 
145  static void processExitCmndMsg( const DtAssistantExitMsg& msg, void* usr );
147  virtual void processExitCmndMsg( const DtAssistantExitMsg& msg );
148 
150  static void processRidParamRequest( const DtAssistantRidParamsMsg& msg, void* usr );
152  virtual void processRidParamRequest( const DtAssistantRidParamsMsg& msg );
153 
155  static void processEnableLoggingMsg( const DtAssistantLogEnableMsg& msg, void* usr );
157  virtual void processEnableLoggingMsg( const DtAssistantLogEnableMsg& msg );
158 
160  static void processNotifyLevelChangeMsg( const DtAssistantNtfyLvlUpdateMsg& msg,
161  void* usr );
163  virtual void processNotifyLevelChangeMsg( const DtAssistantNtfyLvlUpdateMsg& msg );
164 
166  static void processAssistantDisconnect( void* usr );
168  virtual void processAssistantDisconnect();
170 
172  virtual void processLogFileUpdatedEvent( const MAKRti::DtFilename& logFile );
173 
176  const MAKRti::DtString& connName, const MAKRti::DtString& connType,
177  unsigned int connID, const DtInetAddrAndPort& connAddr );
178 
180  virtual int clientToForwarderConnectionLost(
181  const MAKRti::DtString& connName, unsigned int connID,
182  const DtInetAddrAndPort& connAddr );
183 
185  virtual void clientToForwarderFederateJoined(
186  const DtString& connName, const DtString& connType,
187  const DtString& federationName, unsigned int connID,
188  unsigned int fedHandle, const DtInetAddrAndPort& connAddr,
189  const MAKRti::DtString& connHost, unsigned int processId,
190  const MAKRti::DtString& processName, const MAKRti::DtString& commandArgs,
191  DtHlaVersionId hlaVersion );
192 
194  virtual void clientToForwarderFederateLost(
195  const MAKRti::DtString& connName, const MAKRti::DtString& connType,
196  unsigned int connID, unsigned int fedHandle,
197  const DtInetAddrAndPort& connAddr );
198 
201  const MAKRti::DtString& connName, unsigned int connID,
202  const DtInetAddrAndPort& connAddr, const MAKRti::DtString& hostName,
203  bool fullyCompliant );
204 
206  virtual int forwarderToForwarderExecLost(
207  const MAKRti::DtString& connName, unsigned int connID,
208  const DtInetAddrAndPort& connAddr );
209 
211  virtual int clientToForwarderExecConnected(
212  const MAKRti::DtString& connName, unsigned int connID,
213  const DtInetAddrAndPort& connAddr, const MAKRti::DtString& connHost,
214  bool fullyCompliant );
215 
217  virtual int clientToForwarderExecLost(
218  const MAKRti::DtString& connName, unsigned int connID,
219  const DtInetAddrAndPort& connAddr );
220 
223  const MAKRti::DtString& connName, unsigned int connID,
224  const DtInetAddrAndPort& connAddr );
225 
228  const MAKRti::DtString& connName, unsigned int connID,
229  const DtInetAddrAndPort& connAddr );
230 
233  unsigned int connId, int connQueueStatus );
234 
237  virtual void waitingForFowrarderConnections(
238  const DtForwarderPort::DtConnAndNameMap& allNeededFws,
239  const DtForwarderPort::DtConnAndNameMap& stillNeededFws );
240 
243  virtual void notWaitingForFowrarderConnections();
244 
246  bool gotConnInfoFromAssistant();
247 
248  DtBoost::shared_ptr<DtRtiAssistantForwarderClient> assistantClient(){ return myAssistantClient; }
249 
250 
251 protected:
252 
254  virtual void addCallbacks();
255 
258  virtual void removeCallbacks();
259 
262  virtual void sendForwarderInfoToAssistant() const;
263 
266  virtual void sendWaitingForForwardersToAssistant() const;
267 
268 protected:
269 
270 
271 
272 
274  DtBoost::shared_ptr<DtRtiAssistantForwarderClient> myAssistantClient;
275 
278 
281 
284 
286  MAKRti::DtInetAddr myHostAddr;
287 
290 
291  std::set<DtForwarderObserverConnInfo> myConnectedNotJoinedClientConns;
292  std::set<DtForwarderObserverConnInfo> myClientForwarderConns;
293  std::set<DtForwarderObserverConnInfo> myForwarderForwarderConns;
294  std::set<DtForwarderObserverDroppedConnInfo> myUnexpectedlyDroppedClientConns;
295 
299 
302 
303  MAKRti::DtClock myClock;
305 
308 
310 
312  MAKRti::DtInetAddr myForwarderToConnectTo;
314 
316  DtBoost::shared_ptr<DtFilePrinter> myLogPrinter;
317 };
318 
320 {
322 }
323 
324 #endif
325 
326 

Document ID: Generated on Tue May 7 16:26:47 EDT 2013 from SVN revision 126903
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)