MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
joinMsg.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1998 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: joinMsg.h,v $ $Revision: 1.37 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DtJoinMsg_H_
13 #define DtJoinMsg_H_
14 
15 #include "rtiMsg.h"
16 #include "netRtiMsgHdr.h"
17 #include "netJoinMsg.h"
18 #include "rtiVersion.h"
19 #include <vlutil/vlString.h>
20 #include <vlutil/vlUtil.h>
21 #include <vlutil/vlInetAddr.h>
22 
23 class DtConnectionMgr;
24 class DtJoinMsg;
25 typedef void (*DtJoinCb)(const DtJoinMsg& inter, void* usr);
26 
28 {
29 public:
30 
32 
33  DtJoinMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
34 
35  DtJoinMsg(unsigned long sourceIDValue, unsigned short requestIDValue, MAKRti::DtString const & fedTypeValue,
36  MAKRti::DtString const & fedExNameValue, MAKRti::DtString const & fedNameValue,
37  MAKRti::DtString const& federateHostNameValue, const std::wstring& credentialsType, char const* credentialsData,
38  int credentialsDataSize, const std::vector<MAKRti::DtString>& moduleNames, DtHlaVersionId hlaVersion, int astntCompId,
39  unsigned long flagsValue, unsigned int needPartnerValue, const std::vector<unsigned int>& joinModulesCrcs,
40  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
41 
42  DtJoinMsg(const DtNetJoinMsg* netRepMsg, DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
44 
46  virtual ~DtJoinMsg();
47 
49  virtual DtRtiMsg* clone(bool copy = true) const;
50 
52  virtual void set(unsigned long sourceIDValue, unsigned short requestIDValue, MAKRti::DtString const & fedTypeValue,
53  MAKRti::DtString const & fedExNameValue, MAKRti::DtString const & fedNameValue,
54  MAKRti::DtString const& federateHostNameValue, const std::wstring& credentialsType, char const* credentialsData,
55  int credentialsDataSize, const std::vector<MAKRti::DtString>& moduleNames, DtHlaVersionId hlaVersion, int astntCompId, unsigned long flagsValue,
56  unsigned int needPartnerValue, const std::vector<unsigned int>& joinModulesCrcs, bool adjustBufferSize = true);
57 
59 
60  virtual unsigned long sourceID() const;
64  virtual void setSourceID(unsigned long sourceIDValue);
65 
66  virtual unsigned short requestID() const;
67  virtual void setRequestID(unsigned short requestIDValue);
68 
69  virtual void setFederateType(MAKRti::DtString const & type, bool adjustBufferSize = true);
70  virtual MAKRti::DtString federateType() const;
71 
72  virtual void setFullFedExName(MAKRti::DtString const & name, bool adjustBufferSize = true);
73  virtual MAKRti::DtString fullFedExName() const;
74 
75  virtual void setFederateName(MAKRti::DtString const & name, bool adjustBufferSize = true);
76  virtual MAKRti::DtString federateName() const;
77 
78  virtual void setFederateHostName(MAKRti::DtString const& name, bool adjustBufferSize = true);
79  virtual MAKRti::DtString federateHostName() const;
80 
81  virtual void setCredentialsType(const std::wstring& type, bool adjustBufferSize = true);
82  virtual std::wstring credentialsType() const;
83  virtual std::wstring& getCredentialsType(std::wstring& type) const;
84 
85  virtual void setCredentialsData(void const* data, unsigned short size, bool adjustBufferSize = true);
86  virtual void setCredentialsData(const std::vector<char>& data, bool adjustBufferSize = true);
87  virtual std::vector<char>& getCredentialsData(std::vector<char>& data) const;
88  virtual void const* credentialsData() const;
89  virtual unsigned short credentialsDataSize() const;
90 
91  virtual void setFomModuleNames( const std::vector<MAKRti::DtString> & moduleNames, bool adjustBufferSize = true);
92  virtual void getFomModuleNames(std::vector<MAKRti::DtString>& modules) const;
93 
94  virtual void setIpAddress( const MAKRti::DtInetAddr& ip );
95  virtual MAKRti::DtInetAddr ipAddress() const;
96 
97  virtual void setHlaVersion(DtHlaVersionId version);
98  virtual DtHlaVersionId hlaVersion() const;
99 
100  virtual void setAssistantCompId(int id);
101  virtual int assistantCompId() const;
102 
103  virtual void setFlags( unsigned long value );
104  virtual unsigned long flags() const;
105 
106  virtual void setNeedPartner( unsigned int value );
107  virtual unsigned int needPartner() const;
108 
109  unsigned int numOfCrcs() const;
110  void setNumOfCrcs(unsigned int value);
111 
112  virtual void setCrcsOfFedFiles(const std::vector<unsigned int> & moduleCrcs, bool adjustBufferSize = true);
113  virtual void getCRCsOfFedFiles(std::vector<unsigned int>& crcOfFedFiles) const;
115 
117  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
118 
119 public:
120 
122  static DtRtiMsg* create(const DtNetMsgHeader* initial, DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
123 
125  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
126 
128 
129  static void addCallback(DtConnectionMgr* conn, DtJoinCb cb, void* usr);
130  static void removeCallback(DtConnectionMgr* conn, DtJoinCb cb, void* usr);
132 
133 protected:
134 
136 
137  virtual DtNetJoinMsg* netJoinMsg();
138  virtual const DtNetJoinMsg* netJoinMsg() const;
140 
143 
145  virtual int minSize() const;
146 
148  virtual int minSize( MAKRti::DtString const & federateType, MAKRti::DtString const & fedExName,
149  MAKRti::DtString const & federateName, MAKRti::DtString const& federateHostName, const std::wstring& credentialsType,
150  int credentialsDataSize, const std::vector<MAKRti::DtString>& fomModuleNamesVal,
151  const std::vector<unsigned int>& joinModulesCrcs);
152 
154 
155  virtual void setFederateTypeSize( unsigned long size );
156  virtual unsigned long federateTypeSize() const;
157 
158  virtual void setFedExNameSize( unsigned long size );
159  virtual unsigned long fedExNameSize() const;
160 
161  virtual void setFederateNameSize( unsigned long size );
162  virtual unsigned long federateNameSize() const;
163 
164  virtual void setFederateHostNameSize( unsigned long size );
165  virtual unsigned long federateHostNameSize() const;
166 
167  virtual void setFomModuleNameSize( unsigned long size );
168  virtual unsigned long fomModuleNameSize() const;
169 
170  virtual void setNumberFomModules(unsigned int count);
171  virtual unsigned int numberFomModules() const;
172 
173  virtual void setCredentialsTypeSize(unsigned short size);
174  virtual unsigned short credentialsTypeSize() const;
175 
177  virtual void setCredentialsDataSize(unsigned short size);
179 
181 
182 
183  virtual const char* federateNamePtr() const;
184  virtual char* federateNamePtr();
185 
186  virtual const char* fedExNamePtr() const;
187  virtual char* fedExNamePtr();
188 
189  virtual const char* federateTypePtr() const;
190  virtual char* federateTypePtr();
191 
192  virtual const char* fomModuleNamesPtr() const;
193  virtual char* fomModuleNamesPtr();
194 
195  virtual const char* federateHostNamePtr() const;
196  virtual char* federateHostNamePtr();
197 
198  virtual const DtNetU32* crcsOfFomModulesPtr() const;
199  virtual DtNetU32* crcsOfFomModulesPtr();
200 
201  virtual const DtNetU16* credentialsTypePtr() const;
202  virtual DtNetU16* credentialsTypePtr();
203 
204  virtual const char* credentialsDataPtr() const;
205  virtual char* credentialsDataPtr();
207 
209  virtual DtJoinMsg* self() const;
210 };
211 
212 
213 inline DtJoinMsg* DtJoinMsg::self() const
214 {
215  return const_cast<DtJoinMsg*>( this );
216 }
217 
218 #endif
219 
DtRtiMsgKind
Definition: rtiMsgKind.h:9
Definition: netRtiMsgHdr.h:23
Definition: fedTimeFactory.h:73
virtual void printData(DtLogicalTimeFactory *logicalTimeFactory) const
Definition: joinMsg.h:27
DtHlaVersionId
Definition: rtiVersion.h:50
void(* DtJoinCb)(const DtJoinMsg &inter, void *usr)
Definition: joinMsg.h:25
Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communi...
Definition: connectMgr.h:67
DtRtiMsg is the base class for messages between RTI components.
Definition: rtiMsg.h:34
virtual DtRtiMsg * clone(bool copy=true) const =0
Return a copy/empty object of the same type as this.
virtual DtRtiMsgKind internalDtRtiMsgKind()=0
Definition: netJoinMsg.h:19
#define DT_DLL_LRC
Definition: rtiMsConfig.h:155
static unsigned char flags(const void *buffer)
Extracts the message flags form the given buffer.
virtual DtJoinMsg * self() const
Casts away const-ness.
Definition: joinMsg.h:213

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)