MAK RTIspy API Documentation for HLA Evolved
forwarderObserverMgr.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2008 MaK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: forwarderObserverMgr.h,v $ $Revision: 1.13 $ $State: Exp $
7 *******************************************************************************/
8 
11 
12 #ifndef DtRtiForwarderObserverMgr_H_
13 #define DtRtiForwarderObserverMgr_H_
14 
15 #include "rtiMsConfig.h"
16 #include "rtiMsg.h"
17 #include "rtiMsgCbMgr.h"
18 #include "forwarderNode.h"
19 #include "forwarderPort.h"
20 #include <vlutil/vlSmartPointers.h>
21 #include <vlutil/vlTime.h>
22 #include <vlutil/vlInetAddr.h>
23 #include <map>
24 #include <list>
25 
28 class DtRtiMsgForwarder;
29 class DtFedForwarder;
31 class DtTickWithForwarderCallbackInfo;
32 
33 
35 typedef void (*DtForwarderPortCbFn)(const MAKRti::DtString&, unsigned int, MAKRti::DtInetAddr);
36 
37 
39 {
40 public:
42  DtRtiForwarderObserver* observer,
43  const MAKRti::DtString& connName,
44  unsigned int connID,
45  MAKRti::DtInetAddr connAddr ) :
46  myFcn(fcn),
47  myObserver(observer),
48  myConnName(connName),
49  myConnID(connID),
50  myConnAddr(connAddr){}
52 
53  bool operator<(const DtForwarderPortCbInfo& other) const
54  {
55  return ( (myObserver == other.myObserver && myFcn < other.myFcn) ||
56  myObserver < other.myObserver );
57  }
60  const MAKRti::DtString& myConnName;
61  unsigned int myConnID;
62  MAKRti::DtInetAddr myConnAddr;
63 };
64 
65 class DtMsgCbInfo {
66 public:
68  DtRtiForwarderObserver* observer, bool isMomCallback ) :
69  myMsgKind( msgKind ), myFcn( fcn ), myObserver( observer ),
70  myIsMomCallback( isMomCallback ) {}
72 
73  bool operator<(const DtMsgCbInfo& other) const
74  {
75  return ( myMsgKind < other.myMsgKind ||
76  ( myMsgKind == other.myMsgKind && myFcn < other.myFcn ) ||
77  ( myMsgKind == other.myMsgKind && myFcn == other.myFcn && myObserver < other.myObserver ) );
78  }
79 
83  bool myIsMomCallback;
84 };
85 
89 {
90 
91 public:
92 
95 
97  virtual ~DtRtiForwarderObserverMgr();
98 
100  virtual void setForwarderNode( DtBoost::shared_ptr<DtForwarderNode> forwarder);
101 
103  virtual void addObserver( DtBoost::shared_ptr<DtRtiForwarderObserver> observer );
104 
106  virtual void removeObserver( DtBoost::shared_ptr<DtRtiForwarderObserver> observer );
107 
109  virtual void removeAllObservers();
110 
112  virtual void addRtiMsgCallback( DtRtiMsgKind msgKind,
114  bool isMomCallback );
115 
117  virtual void removeRtiMsgCallback( DtRtiMsgKind msgKind,
119  bool isMomCallback );
120 
122  static int clientToForwarderConnectionEstablished(
123  const MAKRti::DtString& connName, unsigned int connID, const DtInetAddrAndPort& connAddr, void* usr );
124  virtual int clientToForwarderConnectionEstablished(
125  const MAKRti::DtString& connName, unsigned int connID, const DtInetAddrAndPort& connAddr );
126 
128  static int clientToForwarderConnectionLost(
129  const MAKRti::DtString& connName, unsigned int connID, const DtInetAddrAndPort& connAddr, void* usr );
130  virtual int clientToForwarderConnectionLost(
131  const MAKRti::DtString& connName, unsigned int connID, const DtInetAddrAndPort& connAddr );
132 
134  static void clientToForwarderFederateJoined(
135  const MAKRti::DtString& connName, const MAKRti::DtString& connType,
136  const MAKRti::DtString& federationName,
137  unsigned int connID, unsigned int fedHandle,
138  const DtInetAddrAndPort& connAddr, const MAKRti::DtString& hostName,
139  unsigned int procesId, const MAKRti::DtString& processName,
140  const MAKRti::DtString& commandArgs, DtHlaVersionId hlaVersion,
141  void* usr );
142  virtual void clientToForwarderFederateJoined(
143  const MAKRti::DtString& connName, const MAKRti::DtString& connType,
144  const MAKRti::DtString& federationName,
145  unsigned int connID, unsigned int fedHandle,
146  const DtInetAddrAndPort& connAddr, const MAKRti::DtString& hostName,
147  unsigned int procesId, const MAKRti::DtString& processName,
148  const MAKRti::DtString& commandArgs, DtHlaVersionId hlaVersion);
149 
150  static int clientToForwarderSocketQueueUpdate(
151  unsigned int connId, int connQueueStatus, void* usr );
152  virtual int clientToForwarderSocketQueueUpdate(
153  unsigned int connId, int connQueueStatus );
154 
156  static void clientToForwarderFederateLost(
157  const MAKRti::DtString& connName, const MAKRti::DtString& connType,
158  unsigned int connID, unsigned int fedHandle,
159  const DtInetAddrAndPort& connAddr, void* usr );
160  virtual void clientToForwarderFederateLost(
161  const MAKRti::DtString& connName, const MAKRti::DtString& connType,
162  unsigned int connID, unsigned int fedHandle,
163  const DtInetAddrAndPort& connAddr );
164 
166  static int forwarderToForwarderExecConnected(
167  const MAKRti::DtString& connName, unsigned int connID,
168  const DtInetAddrAndPort& connAddr, const MAKRti::DtString& connHost,
169  bool fullyCompliant, void* usr );
170  virtual int forwarderToForwarderExecConnected(
171  const MAKRti::DtString& connName, unsigned int connID,
172  const DtInetAddrAndPort& connAddr, const MAKRti::DtString& connHost,
173  bool fullyCompliant );
174 
176  static int forwarderToForwarderExecLost(
177  const MAKRti::DtString& connName, unsigned int connID,
178  const DtInetAddrAndPort& connAddr, void* usr );
179  virtual int forwarderToForwarderExecLost(
180  const MAKRti::DtString& connName, unsigned int connID,
181  const DtInetAddrAndPort& connAddr );
182 
184  static int clientToForwarderExecConnected(
185  const MAKRti::DtString& connName, unsigned int connID,
186  const DtInetAddrAndPort& connAddr, const MAKRti::DtString& hostName,
187  bool fullyCompliant, void* usr );
188  virtual int clientToForwarderExecConnected(
189  const MAKRti::DtString& connName, unsigned int connID,
190  const DtInetAddrAndPort& connAddr, const MAKRti::DtString& hostName,
191  bool fullyCompliant );
192 
194  static int clientToForwarderExecLost(
195  const MAKRti::DtString& connName, unsigned int connID,
196  const DtInetAddrAndPort& connAddr, void* usr );
197  virtual int clientToForwarderExecLost(
198  const MAKRti::DtString& connName, unsigned int connID,
199  const DtInetAddrAndPort& connAddr );
200 
202  static int forwarderToForwarderConnectionEstablished(
203  const MAKRti::DtString& connName, unsigned int connID,
204  const DtInetAddrAndPort& connAddr, void* usr );
205  virtual int forwarderToForwarderConnectionEstablished(
206  const MAKRti::DtString& connName, unsigned int connID,
207  const DtInetAddrAndPort& connAddr );
208 
210  static int forwarderToForwarderConnectionLost(
211  const MAKRti::DtString& connName, unsigned int connID,
212  const DtInetAddrAndPort& connAddr, void* usr );
213  virtual int forwarderToForwarderConnectionLost(
214  const MAKRti::DtString& connName, unsigned int connID,
215  const DtInetAddrAndPort& connAddr );
216 
219  static void waitingForFowrarderConnections(
220  const DtForwarderPort::DtConnAndNameMap& allNeededFws,
221  const DtForwarderPort::DtConnAndNameMap& stillNeededFws, void* usr );
222  virtual void waitingForFowrarderConnections(
223  const DtForwarderPort::DtConnAndNameMap& allNeededFws,
224  const DtForwarderPort::DtConnAndNameMap& stillNeededFws );
225 
228  static void notWaitingForFowrarderConnections( void* usr );
229  virtual void notWaitingForFowrarderConnections();
230 
231 
234  virtual void addTickCallback( DtTickCbFn fcn, DtRtiForwarderObserver* observer,
235  MAKRti::DtTime interval );
236 
238  virtual void removeTickCallback( DtTickCbFn fcn, DtRtiForwarderObserver* observer );
239 
240 
242  virtual unsigned long connectionId() const;
243  virtual const DtInetAddrAndPort& connectionAddr() const;
244  virtual MAKRti::DtString connectionName() const;
245 
246 protected:
247 
250 
252  DtRtiForwarderObserverMgr& operator=( const DtRtiForwarderObserverMgr& orig );
253 
254 protected:
255 
256  typedef std::set<DtMsgCbInfo> DtMsgCbSet;
257  typedef std::set<DtTickCallbackInfo> DtTickCbSet;
258  typedef std::set<DtForwarderPortCbInfo> DtForwarderPortCbSet;
259  typedef std::list< DtBoost::shared_ptr<DtRtiForwarderObserver> > DtForwarderObsList;
260 
262  DtBoost::shared_ptr<DtForwarderNode> myForwarder;
263 
266 
269 
272 
273 
274 };
275 
276 
277 #endif
278 
279 

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)