MAK RTIspy API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rtiAssistantServer.h
Go to the documentation of this file.
1 /*********************************************************************
2  ** Copyright (c) 2008 MaK Technologies, Inc.
3  ** All rights reserved.
4  *********************************************************************/
5 /*******************************************************************************
6  ** $RCSfile: rtiAssistantServer.h,v $ $Revision: 1.48 $ $State: Exp $
7  *******************************************************************************/
8 
9 #ifndef rtiAssistantServer_H_
10 #define rtiAssistantServer_H_
11 
15 
16 #include <rtiMsConfig.h>
17 
18 #include <map>
19 
20 #include <vlutil/vlBaseMsg.h>
21 #include <vlutil/vlUtil.h>
22 #include <vlutil/vlTime.h>
23 #include <vlutil/vlPrint.h>
24 
26 #include "assistantMsgCbMgr.h"
30 #include "assistantNetStatsEnums.h"
31 
33 typedef void (*DtAssistantSocketAdditionCb)(int compId, void* usr);
34 typedef void (*DtAssistantSocketRemovalCb)(int compId, const MAKRti::DtString& reason, void* usr);
35 class DtAssistantSocketAdditionCbInfo;
36 class DtAssistantSocketRemovalCbInfo;
37 typedef std::list<DtAssistantSocketAdditionCbInfo*> DtAssistantSocketAdditionCallbackList;
38 typedef std::list<DtAssistantSocketRemovalCbInfo*> DtAssistantSocketRemovalCallbackList;
39 
40 class DtTcpMsgSocketMgr;
41 class DtTcpMsgSocket;
42 
50 {
51 
52 public:
54  DtRtiAssistantServer( DtNotifyLevelType level ,
55  int port = DtASSISTANT_DEFAULT_PORT,
56  const MAKRti::DtInetAddr& networkInterface = MAKRti::DtInetAddr() );
57 
59  virtual ~DtRtiAssistantServer();
60 
61 public:
62 
64  bool isOk() const;
65 
68  virtual void addMsgCallback(DtAssistantMsgKind msgKind, DtAssistantMsgCbMgr::DtCallbackFcn fcn,
69  void *usr );
70  virtual void removeMsgCallback(DtAssistantMsgKind msgKind, DtAssistantMsgCbMgr::DtCallbackFcn fcn,
71  void *usr );
72  virtual void addWildcardMsgCallback(DtAssistantMsgCbMgr::DtCallbackFcn fcn,
73  void *usr );
74  virtual void removeWildcardMsgCallback(DtAssistantMsgCbMgr::DtCallbackFcn fcn,
75  void *usr );
76 
79  virtual void addSocketAdditionCallback(DtAssistantSocketAdditionCb cb, void* usr);
80  virtual void removeSocketAdditionCallback(DtAssistantSocketAdditionCb cb, void* usr);
81  virtual void addSocketRemovalCallback(DtAssistantSocketRemovalCb cb, void* usr);
82  virtual void removeSocketRemovalCallback(DtAssistantSocketRemovalCb cb, void* usr);
83 
86  virtual bool tick( double timeout = 0 );
87 
89  virtual unsigned int numConnections() const;
90 
92  virtual void sendMsgOnConn( int compId, const DtAssistantMsg& msg );
93 
95  virtual void sendBroadcast( const DtAssistantMsg& msg );
96 
98  virtual void sendConnMsg( int compId, bool disconnect = false,
99  const MAKRti::DtString& display = MAKRti::DtString::nullString() );
100 
102  virtual void sendConnRespMsg( int compId, const DtRtiConnectionInfoDataPair& conn,
103  const DtRtiConnectionConfigurationInfo& config, bool accepted );
104 
106  virtual void sendLicRespMsg( int compId, bool runUnlicensed,
107  const MAKRti::DtString& server, int port, bool accepted );
108 
110  virtual void sendAssistantCommandResponseMsg(
111  int compId, const MAKRti::DtString& formattedData );
112 
114  virtual void sendNtfyLvlUpdateMsg( int compId, DtNotifyLevelType notifyLevel );
115 
118  virtual void sendLatencyTestRequestMsg( int compId, bool runTest, bool continuous,
119  bool shouldHalt, bool observing, unsigned int interactionPeriod,
120  unsigned int numInteractions, unsigned int payloadBytes,
121  unsigned long federationHandle = 0,
122  unsigned long initFedHandle = 0 );
123 
126  virtual void sendNetworkTestEnableMsg( int compId, int federationHdl, bool enable );
127 
129  virtual void sendLogEnableMsg( int compId, bool enable );
130 
133  virtual void sendObserveRtiexecMsg( int compId, bool isObserved,
134  unsigned int timeStateIntervalMs );
135 
138  virtual void sendObserveRtiexecLogMsg( int connId, bool isObserved );
139 
142  virtual void sendObserveRtiForwarderMsg( int compId, bool isObserved,
143  unsigned int timeStateIntervalMs, int defunctRemovalTime );
144 
147  virtual void sendSingleObserveRtiExecMsg( int compId );
148 
151  virtual void sendSingleObserveForwarderMsg( int compId );
152 
154  virtual void sendFederateResignMsg( int compId, int federationHdl, int federateHdl );
155 
157  virtual void sendFederationDestroyMsg( int compId, int federationHdl );
158 
160  virtual void sendDeleteFederateMsg( int compId, DtU16 fedexHandle, DtU16 fedHandle );
161 
163  virtual void sendRidParamsRequestMsg( int compId );
164 
167  virtual void sendLogRequestMsg( int compId, unsigned maxLogSize );
168 
171  virtual void sendNetStatsObservationRequestMsg( DtAssistantObservationType observationType,
172  int compId, bool observe = false, unsigned int interval = 0);
173 
176  virtual void sendExitMsg( int compId = -1 );
177 
180  virtual void sendDoNotWaitForForwardersMsg( int compId );
181 
184  virtual void forwardMsg( const DtAssistantMsg& msg );
185 
187  virtual void sendSignalTickIntervalMsg( int compId, float signalTickInterval );
188 
191  virtual int currentCompId() const;
192 
194  virtual void closeConn( int compId );
195 
197  virtual int port() const;
198 
200  virtual DtU32 maxMsgSize() const;
201 
203  static void tcpSocketAdditionCb( DtTcpMsgSocket* sock, void* usr );
204  static void tcpSocketRemovalCb( DtTcpMsgSocket* sock, void* usr );
205 
206  virtual const DtInetAddr& getNetworkAddr();
207 
208 #ifdef DtDIAGNOSTIC
209 
210  void enableMsgDiagnostics( bool enable );
211 
212 #endif
213 
214 protected:
215 
217  virtual void sendMsg( DtTcpMsgSocket* sock, const DtAssistantMsg& msg );
218 
220  virtual void testConnections();
221 
224  virtual bool readAndProcess( DtTime maxTimePerSocket );
225 
227  virtual void tcpSocketAdditionCb( DtTcpMsgSocket* sock );
228  virtual void tcpSocketRemovalCb( DtTcpMsgSocket* sock );
229 
231  virtual std::auto_ptr<DtAssistantMsg> netRead( DtTcpMsgSocket* sock, int *retCode) const;
232 
234  virtual void setMsgFactory(DtAssistantMessageFactory* fact);
235  virtual DtAssistantMessageFactory* msgFactory() const;
236 
237 private:
240  DtRtiAssistantServer& operator=( const DtRtiAssistantServer& );
241 
242 protected:
243 
245  typedef std::map< int, DtTcpMsgSocket* > CompIdToSocketMap;
246  typedef std::map< DtTcpMsgSocket*, int > SocketToCompIdMap;
247 
250 
253 
256 
259 
262 
266 
268  unsigned int myPort;
269 
271  DtClock myClock;
272 
275 
278 
280  std::auto_ptr<DtTcpMsgSocketMgr> mySocketMgr;
281 
283  MAKRti::DtInetAddr myNetworkInterface;
284 
286  std::list< DtTcpMsgSocket* > mySocketsToDisconnect;
287 
290 
292  std::map<int, MAKRti::DtString> myDisconnectReasons;
293 
297 
299  unsigned myNumMsgsSent;
300 
303 
304 #ifdef DtDIAGNOSTIC
305  bool myDiagnosticsEnabled;
306 #endif
307 };
308 
309 
310 #endif

Document ID: Generated on Mon Mar 21 09:41:37 EDT 2016 from SVN revision 163228
Copyright © 2005-2015 VT MÄK Inc. All Rights Reserved (www.mak.com)