MAK RTIspy API Documentation for HLA 1.3
 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  myIpAddr = orig.myIpAddr;
36 
37  std::set<MAKRti::DtInetAddr>::const_iterator iter = orig.myExternalIPAddrs.begin();
38  std::set<MAKRti::DtInetAddr>::const_iterator theEnd = orig.myExternalIPAddrs.end();
39  for ( ; iter != theEnd; ++iter )
40  {
41  myExternalIPAddrs.insert(*iter);
42  }
43  myNodeId = orig.myNodeId;
44  }
45 
46  MAKRti::DtString myForwarderName;
47  MAKRti::DtString myHostName;
48  MAKRti::DtInetAddr myIpAddr;
49  std::set<MAKRti::DtInetAddr> myExternalIPAddrs;
50  unsigned long myNodeId;
51 
52  bool operator<(const DtForwarderNodeInfo& other) const
53  {
54  return myIpAddr < other.myIpAddr;
55  }
56  bool operator==(const DtForwarderNodeInfo& other) const
57  {
58  bool retVal = true;
59 
60  retVal &= myNodeId == other.myNodeId;
61  retVal &= myIpAddr == other.myIpAddr;
62  retVal &= myForwarderName == other.myForwarderName;
63  retVal &= myHostName == other.myHostName;
64  retVal &= myExternalIPAddrs.size() == other.myExternalIPAddrs.size();
65  std::set<MAKRti::DtInetAddr>::const_iterator iter = other.myExternalIPAddrs.begin();
66  std::set<MAKRti::DtInetAddr>::const_iterator myIter = myExternalIPAddrs.begin();
67  std::set<MAKRti::DtInetAddr>::const_iterator theEnd = other.myExternalIPAddrs.end();
68  for ( ; retVal && iter != theEnd; ++iter, ++myIter )
69  {
70  retVal &= (myIter == iter );
71  }
72  return retVal;
73  }
74 
75 };
76 
77 
78 typedef void (*DtForwarderNodeInfoCb)(const DtForwarderNodeInfoMsg& report, void* usr);
79 
80 
85 {
86 public:
87 
88 
90  DtForwarderNodeInfoMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
91 
93  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
94 
96  virtual ~DtForwarderNodeInfoMsg();
97 
99  virtual DtRtiMsg* clone(bool copy = true) const;
100 
102  virtual void printData() const;
103 
104 
105  virtual void setInetAddr(const MAKRti::DtInetAddr& addr);
106  virtual MAKRti::DtInetAddr getInetAddr() const;
107 
108  virtual void setNodeId( unsigned long nodeId);
109  virtual unsigned long getNodeId() const;
110 
111  virtual void setPort( int nodeId);
112  virtual int getPort() const;
113 
114  virtual void setForwarderName( const MAKRti::DtString& name);
115  virtual MAKRti::DtString forwarderName() const;
116 
117  virtual void setForwarderHostName( const MAKRti::DtString& name );
118  virtual MAKRti::DtString forwarderHostName() const;
119 
120  virtual void setKnownForwarderNodes(const std::set<DtForwarderNodeInfo>& nodes);
121  virtual void knownForwarderNodes(std::set<DtForwarderNodeInfo>& nodesToPopulate) const;
122 
123  virtual void setNodeIdForRecipientToUse( unsigned long nodeId );
124  virtual unsigned long nodeIdForRecipientToUse() const;
125 
126 public:
127 
129  static DtRtiMsg* create(const DtNetMsgHeader* initial,
130  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
131 
132  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
133 
136  static void addCallback(DtConnectionMgr* conn,
137  DtForwarderNodeInfoCb cb, void* usr);
138  static void removeCallback(DtConnectionMgr* conn,
139  DtForwarderNodeInfoCb cb, void* usr);
140 
141 
142 protected:
143 
145  virtual DtNetForwarderNodeInfoMsg* netForwarderNodeInfoMsg();
146  virtual const DtNetForwarderNodeInfoMsg* netForwarderNodeInfoMsg() const;
147 
150 
152  virtual int minSize() const;
153 
155  virtual const char* forwarderNamePtr() const;
156  virtual char* forwarderNamePtr();
157  virtual void setForwarderNameSize( unsigned int size );
158  virtual unsigned int forwarderNameSize() const;
159 
161  virtual const char* forwarderHostNamePtr() const;
162  virtual char* forwarderHostNamePtr();
163  virtual void setForwarderHostNameSize( unsigned int size );
164  virtual unsigned int forwarderHostNameSize() const;
165 
168  virtual void setAddressFamily(MAKRti::DtInetUtils::DtInetAddrFamily num );
169  virtual MAKRti::DtInetUtils::DtInetAddrFamily addressFamily() const;
170 
172  virtual void setNumKnownForwarder(unsigned long num);
173  virtual unsigned long numKnownForwarders() const;
174 
176  virtual const DtNetU128* knownFwAddrsPtr() const;
177  virtual DtNetU128* knownFwAddrsPtr();
178 
180  virtual const DtNetU32* knownFwNodeIdsPtr() const;
181  virtual DtNetU32* knownFwNodeIdsPtr();
182 
184  virtual const char* knownFwNamesPtr() const;
185  virtual char* knownFwNamesPtr();
186  virtual void setKnownFwNamesSize(unsigned long size);
187  virtual unsigned long knownFwNamesSize() const;
188 
190  virtual const char* knownFwHostNamesPtr() const;
191  virtual char* knownFwHostNamesPtr();
192  virtual void setKnownFwHostNamesSize(unsigned long size);
193  virtual unsigned long knownFwHostNamesSize() const;
194 
195 
196 };
197 
198 #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)