MAK RTIspy API Documentation for HLA Evolved
 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  std::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  std::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  std::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 }
DtHlaVersionId myHlaVersion
Definition: forwarderObserverForAssistant.h:87
virtual void addCallbacks()=0
Adds all RTI message and tick callbacks. Called when a manager is set.
virtual int clientToForwarderSocketQueueUpdate(unsigned int connId, int connQueueStatus)=0
Pointer to the observer manager.
MAKRti::DtString myConnType
Definition: forwarderObserverForAssistant.h:77
std::pair< MAKRti::DtInetAddr, int > DtInetAddrAndPort
Definition: rtiUtil.h:148
virtual void sendTrayNotification(const MAKRti::DtString &text, DtNotifyLevelType notifyLevel)
Definition: forwarderObserverForAssistant.h:352
virtual void waitingForFowrarderConnections(const DtForwarderPort::DtConnAndNameMap &allNeededFws, const DtForwarderPort::DtConnAndNameMap &stillNeededFws)=0
Callback to signal that forwarder is waiting for forwarder&lt;-&gt;forwarder connections.
MAKRti::DtInetAddr myForwarderToConnectTo
Forwarder connection information.
Definition: forwarderObserverForAssistant.h:338
std::shared_ptr< DtRtiAssistantForwarderClient > myAssistantClient
The assistant client.
Definition: forwarderObserverForAssistant.h:300
This file contains the declaration of DtRtiAssistantForwarderClient.
Definition: forwarderObserverForAssistant.h:40
DtForwarderObserverDroppedConnInfo(const DtString &connName, const DtString &connType, const DtString &federationName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr, const DtString &connHost, unsigned int federateHandle, DtHlaVersionId hlaVersion, DtTime startTime)
Definition: forwarderObserverForAssistant.h:94
MAKRti::DtString myConnCommandArgs
Definition: forwarderObserverForAssistant.h:79
MAKRti::DtString myFederationName
Definition: forwarderObserverForAssistant.h:80
The DtAssistantLogEnableMsg defines a wrapper for the RTI Assistant logging enable message used by th...
Definition: assistantLogEnableMsg.h:31
Definition: rtiVersion.h:51
This class manages the RTI&#39;s start-up configuration using both MTL variables and functions.
Definition: RIDparams.h:87
float myDefunctRemovalTime
Definition: forwarderObserverForAssistant.h:330
std::set< DtForwarderObserverConnInfo > myForwarderForwarderConns
Definition: forwarderObserverForAssistant.h:319
This file contains the declaration of DtRtiConnectionInfo.
int myConnQueueStatus
Definition: forwarderObserverForAssistant.h:86
virtual void forwarderToForwarderConnectionLost(const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr)=0
Callback for lost forwarder&lt;-&gt;forwarder connections.
int myForwarderPort
Forwarder connection information.
Definition: forwarderObserverForAssistant.h:337
Observes the RTI Forwarder and is responsible sending information on RTI Forwarder to the RTI Assista...
Definition: forwarderObserverForAssistant.h:36
virtual void clientToForwarderFederateJoined(const MAKRti::DtString &connName, const MAKRti::DtString &connType, const MAKRti::DtString &federationName, unsigned int connID, unsigned int fedHandle, const DtInetAddrAndPort &connAddr, const MAKRti::DtString &connHost, unsigned int processId, const MAKRti::DtString &processName, const MAKRti::DtString &commandArgs, DtHlaVersionId hlaVersion)=0
Callback for joined client&lt;-&gt;forwarder federate connections.
virtual int clientToForwarderExecLost(const MAKRti::DtString &connName, unsigned int connID, const DtInetAddrAndPort &connAddr)=0
Callback for lost client-&gt;forwarder exec connections.
DtInetAddrAndPort myConnAddr
Definition: forwarderObserverForAssistant.h:84
MAKRti::DtTime myStartTime
Definition: forwarderObserverForAssistant.h:110
DtHlaVersionId
Definition: rtiVersion.h:50
DtRIDParameters * myParams
The RID parameter settings.
Definition: forwarderObserverForAssistant.h:309
virtual void removeCallbacks()=0
Removes all RTI message and tick callbacks.
MAKRti::DtClock myClock
Definition: forwarderObserverForAssistant.h:329
unsigned int myConnID
Definition: forwarderObserverForAssistant.h:81
MAKRti::DtString myConnName
Definition: forwarderObserverForAssistant.h:75
const DtRIDParameters * ridParams() const
Definition: forwarderObserverForAssistant.h:277
Sends data from an output stream to the RTI Assistant.
Definition: assistantPrinter.h:33
bool myForwarderIsObserved
Whether or not there is currently an assistant observing this RTI Forwarder.
Definition: forwarderObserverForAssistant.h:306
virtual void forwarderToForwarderConnectionEstablished(const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr)=0
Callback for established forwarder&lt;-&gt;forwarder connections.
virtual int forwarderToForwarderExecLost(const MAKRti::DtString &connName, unsigned int connID, const DtInetAddrAndPort &connAddr)=0
Callback for lost forwarder-&gt;forwarder exec connections.
The DtAssistantNtfyLvlUpdateMsg defines a wrapper for the RTI Assistant notify level update message u...
Definition: assistantNtfyLvlUpdateMsg.h:31
std::set< DtForwarderObserverConnInfo > myClientForwarderConns
Definition: forwarderObserverForAssistant.h:318
DtRIDParameters * ridParams()
Definition: forwarderObserverForAssistant.h:278
virtual int clientToForwarderConnectionEstablished(const MAKRti::DtString &connName, const MAKRti::DtString &hostName, const MAKRti::DtString &connType, unsigned int connID, const DtInetAddrAndPort &connAddr)=0
Callback for established client&lt;-&gt;forwarder connections.
std::map< DtInetAddrAndPort, MAKRti::DtString > DtConnAndNameMap
Definition: forwarderPort.h:62
MAKRti::DtString myConnProcessName
Definition: forwarderObserverForAssistant.h:78
virtual void clientToForwarderFederateLost(const MAKRti::DtString &connName, const MAKRti::DtString &connType, unsigned int connID, unsigned int fedHandle, const DtInetAddrAndPort &connAddr)=0
Callback for lost client&lt;-&gt;forwarder connections that were fully joined.
bool myGotConnInfoFromAssistant
Whether or not the assistant supplied connection info.
Definition: forwarderObserverForAssistant.h:315
std::set< DtForwarderObserverConnInfo > myConnectedNotJoinedClientConns
Definition: forwarderObserverForAssistant.h:317
DtRtiMsg is the base class for messages between RTI components.
Definition: rtiMsg.h:34
std::shared_ptr< DtFilePrinter > myLogPrinter
Printer which prints output to a log file.
Definition: forwarderObserverForAssistant.h:342
std::set< DtForwarderObserverDroppedConnInfo > myUnexpectedlyDroppedClientConns
Definition: forwarderObserverForAssistant.h:320
bool gotConnInfoFromAssistant()
/brief Returns true if the assistant supplied the RTI Forwarder connection info.
Definition: forwarderObserverForAssistant.h:347
DtForwarderObserverConnInfo * myExecConnection
Definition: forwarderObserverForAssistant.h:332
unsigned int myConnPID
Definition: forwarderObserverForAssistant.h:83
bool myIsWaitingForFws
Whether we are still waiting for forwarder connections.
Definition: forwarderObserverForAssistant.h:327
The DtRtiForwarderObserver is the base class for all observers of RTI Forwarder events.
Definition: forwarderObserver.h:28
unsigned int myFedHandle
Definition: forwarderObserverForAssistant.h:82
The DtAssistantRidParamsMsg defines a wrapper for the RTI Assistant RID parameter message used by the...
Definition: assistantRidParamsMsg.h:33
The DtAssistantStateObserveMsg defines a wrapper for the RTI Assistant message used by the Assistant ...
Definition: assistantStateObserveMsg.h:40
Definition: forwarderObserverForAssistant.h:92
The DtAssistantExitMsg defines a wrapper for the RTI Assistant exit message used by the Assistant to ...
Definition: assistantExitMsg.h:32
MAKRti::DtInetAddr myHostAddr
The host address used for connection.
Definition: forwarderObserverForAssistant.h:312
std::map< DtInetAddrAndPort, DtNameAndConnStatus > DtNeededFwConnMap
Definition: rtiAssistantForwarderClient.h:23
virtual int clientToForwarderConnectionLost(const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int connID, const DtInetAddrAndPort &connAddr)=0
Callback for lost client&lt;-&gt;forwarder connections.
MAKRti::DtString myConnHost
Definition: forwarderObserverForAssistant.h:76
DtForwarderObserverConnInfo(const MAKRti::DtString &connName, const MAKRti::DtString &connType, const MAKRti::DtString &federationName, unsigned int connID, const std::pair< DtInetAddrAndPort, DtInetAddrAndPort > &connAddr, const MAKRti::DtString &connHost, unsigned int fedHandle=0, DtHlaVersionId hlaVersion=DtHlaVersionUnknown, int connQueueStatus=0)
Definition: forwarderObserverForAssistant.h:42
virtual void forwarderToForwarderConnectionChanged(const MAKRti::DtString &connName, const MAKRti::DtString &hostName, unsigned int oldConnID, unsigned int newConnID, const DtInetAddrAndPort &connAddr)=0
Callback for changed forwarder&lt;-&gt;forwarder connections.
virtual void notWaitingForFowrarderConnections()=0
Callback to signal that forwarder is no longer waiting for forwarder&lt;-&gt;forwarder connections.
bool myExecIsLocal
Definition: forwarderObserverForAssistant.h:333
DtAssistantPrinter * myAssistantPrinter
The printer which sends notifications to the assistant.
Definition: forwarderObserverForAssistant.h:303
virtual int clientToForwarderExecConnected(const MAKRti::DtString &connName, unsigned int connID, const DtInetAddrAndPort &connAddr, const MAKRti::DtString &connHost, bool fullyCompliant)=0
Callback for connected client-&gt;forwarder exec connections.
#define DT_DLL_FORWARDER
Definition: rtiMsConfig.h:153
std::shared_ptr< DtRtiAssistantForwarderClient > assistantClient()
Definition: forwarderObserverForAssistant.h:273
DtForwarderObserverConnInfo myInfo
Definition: forwarderObserverForAssistant.h:109
DtInetAddrAndPort myConnAddrPrivate
Definition: forwarderObserverForAssistant.h:85
DtNeededFwConnMap myNeededFws
List of forwarders which we are trying to connect to and whether or not a connection has been made...
Definition: forwarderObserverForAssistant.h:324
virtual int forwarderToForwarderExecConnected(const MAKRti::DtString &connName, unsigned int connID, const DtInetAddrAndPort &connAddr, const MAKRti::DtString &connHost, bool fullyCompliant)=0
Callback for connected forwarder-&gt;forwarder exec connections.

Document ID: Generated on Sun Jul 20 16:15:30 EDT 2025 from SVN revision 277985
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)