MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
federateShadow.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2022 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #include <rtiMsConfig.h>
12 #include <rtiVersion.h>
13 #include <internalTypes.h>
14 #include <resignMsg.h>
15 
16 
17 #include <vlutil/vlMachineTypes.h>
18 #include <vlutil/vlHashKeys.h>
19 #include <vlutil/vlTime.h>
20 #include <vlutil/vlPrint.h>
21 #include <vlutil/vlUtil.h>
22 #include <vlutil/vlInetAddr.h>
23 #include <vlutil/vlString.h>
24 
25 #include <map>
26 
27 class DtRtiMsg;
28 class DtAssocPubRegMsg;
29 class DtDeleteRoMsg;
30 class DtDeleteTsoMsg;
31 class DtOwnershipMsg;
32 class DtFomModuleManager;
33 class DtFederationShadow;
35 class DtObjectShadow;
37 
38 typedef std::map<DtObjectInstanceHandle, DtObjectShadow*> DtObjectShadowByInstanceMap;
39 
41 class DtFederateShadow;
42 typedef DtFederateShadow* (*DtFederateShadowCreator)(DtFederationShadow* parent, DtHandle connHandle, DtFederateHandle handle,
43  const MAKRti::DtString& name);
44 #if 0
45 typedef DtFederateShadow* (*DtFederateShadowCreator)(const char* type, const char* name,
46  DtFederateHandle handle, DtHandle connHandle, int astntCompId,
47  const char* fedHostName, const MAKRti::DtInetAddr& host, DtHlaVersionId hlaVersion);
48 #endif
49 
51 {
52 public:
53 
55  DtFederateShadow(DtFederationShadow* parent, DtHandle connHandle, DtFederateHandle handle, const MAKRti::DtString& name);
56 
58  virtual ~DtFederateShadow();
59 
60 private:
64  DtFederateShadow& operator=(const DtFederateShadow &);
65 
66 public:
67 
69  virtual DtFederateHandle handle() const;
70 
72  virtual DtHandle connectionHandle() const;
73 
75  virtual const MAKRti::DtString& name() const;
76 
78  virtual DtFomModuleManager* fomManager();
79 
81  virtual void addObject(DtObjectInstanceHandle instanceHandle, const char* objectName,
82  DtObjectClassInfo* classInfo, const DtAttributeHandleSet& ownedAttributes, const DtAttributeHandleSet& lrcAttributes);
83 
85  DtObjectShadow* object(DtObjectInstanceHandle objectHandle);
86 
88  virtual void removeObject(DtObjectInstanceHandle instanceHandle);
89 
91  virtual bool ownsObject(DtObjectInstanceHandle objectHandle);
92 
95  virtual void removeAttributes(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& attributes);
96 
98  virtual void processRegisterObject(DtObjectInstanceHandle objectHandle, const DtString& objectName,
99  DtObjectClassHandle classHandle, const DtAttributeHandleSet& attributes);
100 
102  virtual void processMultiRegister(DtObjectClassHandle classHandle, const DtAttributeHandleSet& ownedAttributes,
103  const char* objectPointer, unsigned long objectCount);
104 
106  virtual void processAssocPubReg(DtObjectInstanceHandle objectHandle, const DtString& objectName,
107  DtObjectClassHandle classHandle, const DtAttributeHandleSet& attributes);
108 
110  virtual void processUnconditionalDivest(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& attributes);
111 
113  virtual void processNotifyAcquire(DtObjectInstanceHandle instanceHandle, const char* objectName,
114  DtObjectClassHandle classHandle, const DtAttributeHandleSet& attributes);
115 
117  virtual void processGiveToLrc(DtObjectInstanceHandle objectHandle, const char* objectName,
118  DtObjectClassHandle classHandle, const DtAttributeHandleSet& attributes);
119 
121  virtual void processResign(DtResignAction action, DtResignReason reason);
122 
123 public:
124 
126  static DtFederateShadow* create(DtFederationShadow* parent, DtHandle connHandle, DtFederateHandle handle,
127  const MAKRti::DtString& name);
128 
132  static void setCreatorFunction(DtFederateShadowCreator creator);
133 
134 protected:
135 
138  virtual void releaseAllAttributes();
139 
141  virtual void deleteOwnedObjects();
142 
145  virtual void sendAndDeleteMessage(DtRtiMsg* message);
146 
147 protected:
148 
152  MAKRti::DtString myName;
153 
156 
157 protected:
158 
160 };
161 
163 {
164  return myHandle;
165 }
166 
168 {
169  return myConnectionHandle;
170 }
171 
Instances of DtFederationShadow implement a central server responsible for keeping track of the owner...
Definition: federationShadow.h:54
DtHandle myConnectionHandle
Definition: federateShadow.h:151
Definition: objectShadow.h:26
static DtFederateShadowCreator theCreator
Definition: federateShadow.h:159
Definition: federateShadow.h:50
#define DT_DLL_FEDSHDW
Definition: rtiMsConfig.h:159
Definition: ownerMsg.h:45
DtHlaVersionId
Definition: rtiVersion.h:51
DtObjectShadowByInstanceMap myObjects
Objects with attributes owned by this federate or managed by its LRC.
Definition: federateShadow.h:155
virtual const MAKRti::DtString & name() const
Get federate name.
DtHandle DtObjectClassHandle
Definition: internalTypes.h:48
Defines the internal representation of attribute/parameter handle sets.
Definition: attrHandSet.h:30
DtRtiMsg is the base class for messages between RTI components.
Definition: rtiMsg.h:34
DtHandle DtFederateHandle
Definition: internalTypes.h:46
DtHandle DtObjectInstanceHandle
Definition: internalTypes.h:50
MAKRti::DtString myName
Definition: federateShadow.h:152
std::map< DtObjectInstanceHandle, DtObjectShadow * > DtObjectShadowByInstanceMap
Definition: federateShadow.h:36
unsigned long DtHandle
The internal types.
Definition: internalTypes.h:41
virtual DtFederateHandle handle() const
Get the federate handle.
Definition: federateShadow.h:162
DtFederateShadow *(* DtFederateShadowCreator)(DtFederationShadow *parent, DtHandle connHandle, DtFederateHandle handle, const MAKRti::DtString &name)
Definition: federateShadow.h:42
The declaration of internal types.
Definition: objClassInfo.h:36
Definition: fomModuleManager.h:39
virtual DtHandle connectionHandle() const
Get connection handle.
Definition: federateShadow.h:167
Message for sending receive order delete.
Definition: deleteRoMsg.h:23
DtFederationShadow * myParent
Definition: federateShadow.h:149
DtFederateHandle myHandle
Definition: federateShadow.h:150
DtResignReason
Definition: resignMsg.h:26

Document ID: Generated on Wed Jul 8 16:20:32 EDT 2026 from SVN revision 291616
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)