VR-Exchange 2.10 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
disBroker/disBroker/entityTranslator.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2016 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
13 #include <vl/reflectedEntityList.h>
14 #include <vl/entityPublisher.h>
15 
16 class DtEntityStateRepository;
17 
18 #define ENTITY_TEMPLATE_ARGS \
19  DtPortalEntity, DtPortalReflectedEntity, \
20  DtReflectedEntity, DtReflectedEntityList, \
21  DtEntityStateRepository, DtEntityPublisher
22 
23 namespace MAKVrExchange
24 {
25 
26  class DtPortalObject;
27 
28  namespace DtDisBroker
29  {
30 
31  template <>
32  DT_DLL_DISBROKER DtEntityIdentifier
34  const DtPortalReflectedEntity* refObj, const DtString& identifier );
35 
36  template <>
37  DT_DLL_DISBROKER DtObjectPublisher*
39  const DtPortalReflectedEntity* refObj, const DtEntityIdentifier& name );
40 
41 
45  : public DtDisObjectTranslator<ENTITY_TEMPLATE_ARGS>
46  {
47  public:
48 
50  Dt_DEF_TRANSLATOR_NAME( "Entity State" );
51 
55  DtEntityTranslator( DtBroker* broker );
56 
58  virtual ~DtEntityTranslator();
59 
61  virtual void tick();
62 
66 
67  virtual void initializePortalCallbacks();
68  virtual void removePortalCallbacks();
69 
71 
72  protected:
73 
76 
78  static bool portalDiGuyDiscoveryCriteria( const DtPortalReflectedObject* obj, void* usr );
79 
82  static void portalDiGuyAddedCb( const DtPortalReflectedDiGuy& obj, void* usr );
83 
86  static void portalDiGuyUpdatedCb( const DtPortalReflectedDiGuy& obj, void* usr );
87 
90  static void portalDiGuyDeletedCb( const DtPortalReflectedDiGuy& obj, void* usr );
91 
93 
95  virtual void initializeDisCallbacks();
96 
99 
102  virtual bool isDisPublishable( DtBrokerObject* brokerObj,
103  const DtPortalReflectedEntity* refObj );
104 
107  virtual void discoverDisObject( DtReflectedEntity& obj );
108 
112  virtual void discoverPortalObject( const DtPortalReflectedEntity& obj );
113 
115  virtual void discoverPortalDiGuy( const DtPortalReflectedDiGuy& obj );
116 
118  virtual DtString disObjectName( const DtPortalReflectedEntity* refObj ) const;
119 
122  virtual void createDisPublisher( DtBrokerObject* brokerObject );
123 
125  virtual void updateDisBrokerObject( DtBrokerObject* brokerObj,
126  const DtEntityStateRepository& sr );
127 
129  virtual void updateFilteredState( DtBrokerObject* brokerObj,
130  DtPortalEntityPublisher* publisher, DtReflectedEntity* refObj );
131 
138  virtual void updateFilteredState( DtBrokerObject* brokerObj,
139  const DtPortalReflectedEntity* refObj );
140 
142  virtual void updatePortalBrokerObject( DtBrokerObject* brokerObj,
143  const DtPortalEntity& sr );
144 
148  virtual void receivePortalDiGuyUpdate( const DtPortalReflectedDiGuy& obj );
149 
151  virtual void removeDisObject( const DtReflectedObject& refObj );
152 
154  virtual void removePortalObject( const DtPortalReflectedEntity& refObj );
155 
157  virtual void removePortalDiGuy( const DtPortalReflectedDiGuy* diGuy );
158 
160  virtual void deleteDisPublisher( DtBrokerObject* brokerObj );
161 
163 
166 
169  virtual bool hasDiGuyAttributes( const DtEntityStateRepository& entity );
170 
172  virtual void syncDisDeadReckonedValues( DtEntityStateRepository* destination,
173  const DtPortalEntity& source );
174 
176  virtual void syncPortalDeadReckonedValues( DtPortalEntity* destination,
177  const DtEntityStateRepository& source );
178 
180  virtual DtPortalEntity* translate( DtPortalEntity* destination,
181  const DtEntityStateRepository& source, const DtReflectedEntity& reflectedObject );
182 
184  virtual DtEntityStateRepository* translate(
185  DtEntityStateRepository* destination, const DtPortalEntity& source,
186  const DtPortalReflectedEntity& reflectedObject );
187 
189  virtual DtPortalDiGuy* translate( DtPortalDiGuy* destination,
190  const DtEntityStateRepository& source );
191 
193  virtual DtEntityStateRepository* translate(
194  DtEntityStateRepository* destination, const DtPortalDiGuy& source );
195 
197 
198  private:
199 
201  DtEntityTranslator( const DtEntityTranslator& other );
202 
204  DtEntityTranslator& operator = ( const DtEntityTranslator& other );
205 
206  protected:
207 
208  typedef std::map<DtEntityIdentifier,DtBrokerObject*> EntityByEntityIdMap;
211 
212  typedef std::map<DtEntityIdentifier,const DtPortalReflectedDiGuy*> DiGuyWaitList;
214 
215  typedef std::map<DtEntityIdentifier,DtPortalDiGuyPublisher*> PortalDiGuyPublisherMap;
217 
219 
220  };
221 
222  }
223 }
EntityByEntityIdMap myPortalEntityByEntityIdMap
Definition: disBroker/disBroker/entityTranslator.h:209
Manages collections of ReflectedObjects of Type T_ReflectedObject.
Definition: pReflectedObjectManager.h:38
Base class for all DIS object translators.
Definition: disTranslator.h:86
Contains the DtDisObjectTranslator and DtDisInteractionTranslator base classes.
Provides Entity State object translation between DIS and the VR-Exchange Portal.
Definition: disBroker/disBroker/entityTranslator.h:44
Provides container to hold pointers to Protocol/Portal objects.
Definition: brokerObject.h:24
std::map< DtEntityIdentifier, const DtPortalReflectedDiGuy * > DiGuyWaitList
Definition: disBroker/disBroker/entityTranslator.h:212
virtual DtObjectPublisher * instantiateDisPublisher(const T_PortalReflectedObject *refObj, const DtEntityIdentifier &name)
Instantiates the publisher for the given reflected object.
DiGuyWaitList myDiGuyWaitList
Definition: disBroker/disBroker/entityTranslator.h:213
A simple template class to hold different types of State Repositories.
Definition: pObjectPublisher.h:68
virtual DtEntityIdentifier mapIdentifier(const T_PortalReflectedObject *refObj, const DtString &identifier)
Maps the reflected object&#39;s global or entity identifier to a DIS id.
An abstract interface for reflected objects.
Definition: pReflectedObject.h:31
std::map< DtEntityIdentifier, DtBrokerObject * > EntityByEntityIdMap
Definition: disBroker/disBroker/entityTranslator.h:208
Base class for all broker objects.
Definition: broker.h:58
EntityByEntityIdMap myDisEntityByEntityIdMap
Definition: disBroker/disBroker/entityTranslator.h:210
A template to create reflected object types for each type of object message.
Definition: pReflectedObject.h:58
DtPortalReflectedObjectTemplate< DtPortalEntity > DtPortalReflectedEntity
An Entity Reflected Object template instance.
Definition: pReflectedObjectTypes.h:84
std::map< DtEntityIdentifier, DtPortalDiGuyPublisher * > PortalDiGuyPublisherMap
Definition: disBroker/disBroker/entityTranslator.h:215
PortalDiGuyPublisherMap myPortalDiGuyPublisherMap
Definition: disBroker/disBroker/entityTranslator.h:216
#define Dt_DEF_TRANSLATOR_NAME(strname)
Definition: translator.h:16
#define DT_DLL_DISBROKER
Definition: brokers/disBroker/disBroker/dllExport.h:20
DtPortalReflectedDiGuyManager * myPortalReflectedDiGuyManager
Definition: disBroker/disBroker/entityTranslator.h:218
Messages which represent DI-Guys with state.
Definition: pDiGuy.h:29
Messages which represent Entities with state.
Definition: pEntity.h:30

Document ID: Generated on Mon May 25 18:45:12 EDT 2026 from SVN revision 289111
Copyright © 2005-2026 MAK Technologies. All Rights Reserved (www.mak.com)