MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
forwarderNodeInfoMsg.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2008 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: forwarderNodeInfoMsg.h,v $ $Revision: 1.5 $ $State: Exp $
7 *********************************************************************/
8 
9 #ifndef DtForwarderNodeInfoMsg_H_
10 #define DtForwarderNodeInfoMsg_H_
11 
16 
17 #include <vlutil/vlString.h>
18 #include <vlutil/vlUtil.h>
19 
20 #include "rtiMsg.h"
23 #include <map>
24 
26 class DtConnectionMgr;
27 
29 {
31  DtForwarderNodeInfo(const DtForwarderNodeInfo& orig)
32  {
33  myForwarderName = orig.myForwarderName;
34  myHostName = orig.myHostName;
35  myDestination = orig.myDestination;
36  myNodeId = orig.myNodeId;
37  myHasExec = orig.myHasExec;
38 
39  std::set<MAKRti::DtInetAddr>::const_iterator iter = orig.myExternalIPAddrs.begin();
40  std::set<MAKRti::DtInetAddr>::const_iterator theEnd = orig.myExternalIPAddrs.end();
41  for ( ; iter != theEnd; ++iter )
42  {
43  myExternalIPAddrs.insert(*iter);
44  }
45  }
46 
47  MAKRti::DtString myForwarderName;
48  MAKRti::DtString myHostName;
50  std::set<MAKRti::DtInetAddr> myExternalIPAddrs;
51  unsigned long myNodeId;
52  bool myHasExec;
53 
54  bool operator<(const DtForwarderNodeInfo& other) const
55  {
56  return myDestination < other.myDestination;
57  }
58  bool operator==(const DtForwarderNodeInfo& other) const
59  {
60  bool retVal = true;
61 
62  retVal = myNodeId == other.myNodeId
63  && myDestination == other.myDestination
64  && myForwarderName == other.myForwarderName
65  && myHostName == other.myHostName
66  && myHasExec == other.myHasExec
67  && myExternalIPAddrs.size() == other.myExternalIPAddrs.size();
68  std::set<MAKRti::DtInetAddr>::const_iterator iter = other.myExternalIPAddrs.begin();
69  std::set<MAKRti::DtInetAddr>::const_iterator myIter = myExternalIPAddrs.begin();
70  std::set<MAKRti::DtInetAddr>::const_iterator theEnd = other.myExternalIPAddrs.end();
71  for ( ; retVal && iter != theEnd; ++iter, ++myIter )
72  {
73  retVal &= (myIter == iter );
74  }
75  return retVal;
76  }
77 
78  void print() const;
79 };
80 
81 
82 typedef void (*DtForwarderNodeInfoCb)(const DtForwarderNodeInfoMsg& report, void* usr);
83 
84 
89 {
90 public:
91 
92 
94  DtForwarderNodeInfoMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
95 
97  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
98 
100  virtual ~DtForwarderNodeInfoMsg();
101 
103  virtual DtRtiMsg* clone(bool copy = true) const;
104 
106  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
107 
108 
109  virtual void setInetAddr(const MAKRti::DtInetAddr& addr);
110  virtual MAKRti::DtInetAddr getInetAddr() const;
111 
112  virtual void setNodeId( unsigned long nodeId);
113  virtual unsigned long getNodeId() const;
114 
115  virtual void setPort( int nodeId);
116  virtual int getPort() const;
117 
118  virtual void setForwarderName( const MAKRti::DtString& name);
119  virtual MAKRti::DtString forwarderName() const;
120 
121  virtual void setForwarderHostName( const MAKRti::DtString& name );
122  virtual MAKRti::DtString forwarderHostName() const;
123 
124  virtual void setKnownForwarderNodes(const std::set<DtForwarderNodeInfo>& nodes);
125  virtual void knownForwarderNodes(std::set<DtForwarderNodeInfo>& nodesToPopulate) const;
126 
127  virtual void setNodeIdForRecipientToUse( unsigned long nodeId );
128  virtual unsigned long nodeIdForRecipientToUse() const;
129 
130  virtual void setHasExec(bool hasExecValue);
131  virtual bool hasExec() const;
132 
133 public:
134 
136  static DtRtiMsg* create(const DtNetMsgHeader* initial,
137  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
138 
139  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
140 
143  static void addCallback(DtConnectionMgr* conn,
144  DtForwarderNodeInfoCb cb, void* usr);
145  static void removeCallback(DtConnectionMgr* conn,
146  DtForwarderNodeInfoCb cb, void* usr);
147 
151 
152  static const DtString& shutDownStatement();
154 
156  static const DtString& readyStatement();
158 
159 protected:
160 
162  virtual DtNetForwarderNodeInfoMsg* netForwarderNodeInfoMsg();
163  virtual const DtNetForwarderNodeInfoMsg* netForwarderNodeInfoMsg() const;
164 
167 
169  virtual int minSize() const;
170 
172  virtual const char* forwarderNamePtr() const;
173  virtual char* forwarderNamePtr();
174  virtual void setForwarderNameSize( unsigned int size );
175  virtual unsigned int forwarderNameSize() const;
176 
178  virtual const char* forwarderHostNamePtr() const;
179  virtual char* forwarderHostNamePtr();
180  virtual void setForwarderHostNameSize( unsigned int size );
181  virtual unsigned int forwarderHostNameSize() const;
182 
185  virtual void setAddressFamily(MAKRti::DtInetUtils::DtInetAddrFamily num );
186  virtual MAKRti::DtInetUtils::DtInetAddrFamily addressFamily() const;
187 
189  virtual void setNumKnownForwarder(unsigned long num);
190  virtual unsigned long numKnownForwarders() const;
191 
193  virtual const DtNetU128* knownFwAddrsPtr() const;
194  virtual DtNetU128* knownFwAddrsPtr();
195 
197  virtual const DtNetU32* knownFwNodeIdsPtr() const;
198  virtual DtNetU32* knownFwNodeIdsPtr();
199 
201  virtual const DtNetU16* knownFwNodePortsPtr() const;
202  virtual DtNetU16* knownFwNodePortsPtr();
203 
205  virtual const char* knownFwNamesPtr() const;
206  virtual char* knownFwNamesPtr();
207  virtual void setKnownFwNamesSize(unsigned long size);
208  virtual unsigned long knownFwNamesSize() const;
209 
211  virtual const char* knownFwHostNamesPtr() const;
212  virtual char* knownFwHostNamesPtr();
213  virtual void setKnownFwHostNamesSize(unsigned long size);
214  virtual unsigned long knownFwHostNamesSize() const;
215 
216 protected:
217 
219  static const DtString theShutDownStatement;
220 
222  static const DtString theReadyStatement;
223 
224 };
225 
226 #endif
static const DtString theReadyStatement
String indicating success to create forwarder.
Definition: forwarderNodeInfoMsg.h:222
std::pair< MAKRti::DtInetAddr, int > DtInetAddrAndPort
Definition: rtiUtil.h:147
DtRtiMsgKind
Definition: rtiMsgKind.h:9
Definition: netRtiMsgHdr.h:23
void(* DtForwarderNodeInfoCb)(const DtForwarderNodeInfoMsg &report, void *usr)
Definition: forwarderNodeInfoMsg.h:82
std::set< MAKRti::DtInetAddr > myExternalIPAddrs
Definition: forwarderNodeInfoMsg.h:50
!DtIFSPEC1516
Definition: fedTimeFactory.h:190
virtual void printData(DtLogicalTimeFactory *logicalTimeFactory) const
Network representation for the forwarder node messages.
Definition: netForwarderNodeInfoMsg.h:23
bool operator<(const DtForwarderNodeInfo &other) const
Definition: forwarderNodeInfoMsg.h:54
MAKRti::DtString myHostName
Definition: forwarderNodeInfoMsg.h:48
static const DtString theShutDownStatement
String indicating forwarder is shutting down.
Definition: forwarderNodeInfoMsg.h:219
DtForwarderNodeInfo(const DtForwarderNodeInfo &orig)
Definition: forwarderNodeInfoMsg.h:31
Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communi...
Definition: connectMgr.h:60
DtRtiMsg is the base class for messages between RTI components.
Definition: rtiMsg.h:45
Definition: forwarderNodeInfoMsg.h:28
virtual DtRtiMsg * clone(bool copy=true) const =0
Return a copy/empty object of the same type as this.
virtual DtRtiMsgKind internalDtRtiMsgKind()=0
bool operator==(const DtForwarderNodeInfo &other) const
Definition: forwarderNodeInfoMsg.h:58
This file contains the declaration of DtNetForwarderNodeInfoMsg.
Defines DtAveragedLatencyTestReport used to report results of latency tests between local RTI compon...
#define DT_DLL_LRC
Definition: rtiMsConfig.h:126
unsigned long myNodeId
Definition: forwarderNodeInfoMsg.h:51
DtInetAddrAndPort myDestination
Definition: forwarderNodeInfoMsg.h:49
The DtForwarderNodeInfoMsg defines a msg for a client to report the results of a latency test...
Definition: forwarderNodeInfoMsg.h:88
MAKRti::DtString myForwarderName
Definition: forwarderNodeInfoMsg.h:47
bool myHasExec
Definition: forwarderNodeInfoMsg.h:52

Document ID: Generated on Mon Sep 7 15:40:32 EDT 2020 from SVN revision 217499
Copyright © 2005-2020 MAK Technologies Inc. All Rights Reserved (www.mak.com)