VR-Exchange 2.8 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
noRelEntityTranslator.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2016 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
14 #include <vl/reflectedEntityList.h>
15 
16 class DtEntityStateRepository;
17 
18 #define ENTITY_TEMPLATE_ARGS \
19  DtPortalEntity, DtPortalReflectedEntity, \
20  DtReflectedEntity, DtReflectedEntityList, \
21  DtEntityStateRepository, DtNoRelEntityPublisher
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 (No-RL)" );
51 
56 
58  virtual ~DtNoRelEntityTranslator();
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 
96 
99  virtual bool isDisPublishable( const DtBrokerObject* brokerObject,
100  const DtPortalReflectedEntity* refObj );
101 
104  virtual void discoverDisObject( DtReflectedEntity* obj );
105 
109  virtual void discoverPortalObject( const DtPortalReflectedEntity& obj );
110 
112  virtual void discoverPortalDiGuy( const DtPortalReflectedDiGuy& obj );
113 
115  virtual DtString disObjectName( const DtPortalReflectedEntity* refObj ) const;
116 
119  virtual void createDisPublisher( DtBrokerObject* brokerObject );
120 
122  virtual void updateDisBrokerObject( DtBrokerObject* brokerObj,
123  const DtEntityStateRepository& sr );
124 
126  virtual void updateFilteredState( DtBrokerObject* brokerObj,
127  DtPortalEntityPublisher* publisher, DtReflectedEntity* refObj );
128 
130  virtual void updatePortalBrokerObject( DtBrokerObject* brokerObj,
131  const DtPortalEntity& sr );
132 
136  virtual void receivePortalDiGuyUpdate( const DtPortalReflectedDiGuy& obj );
137 
139  virtual void removeDisObject( const DtReflectedObject& refObj );
140 
142  virtual void removePortalObject( const DtPortalReflectedEntity& refObj );
143 
145  virtual void removePortalDiGuy( const DtPortalReflectedDiGuy* diGuy );
146 
148  virtual void deleteDisPublisher( DtBrokerObject* brokerObj );
149 
151 
154 
157  virtual bool hasDiGuyAttributes( const DtEntityStateRepository& entity );
158 
160  virtual void syncDisDeadReckonedValues( DtEntityStateRepository* destination,
161  const DtPortalEntity& source );
162 
164  virtual void syncPortalDeadReckonedValues( DtPortalEntity* destination,
165  const DtEntityStateRepository& source );
166 
168  virtual DtPortalEntity* translate( DtPortalEntity* destination,
169  const DtEntityStateRepository& source, const DtReflectedEntity& reflectedObject );
170 
172  virtual DtEntityStateRepository* translate(
173  DtEntityStateRepository* destination, const DtPortalEntity& source,
174  const DtPortalReflectedEntity& reflectedObject );
175 
177  virtual DtPortalDiGuy* translate( DtPortalDiGuy* destination,
178  const DtEntityStateRepository& source );
179 
181  virtual DtEntityStateRepository* translate(
182  DtEntityStateRepository* destination, const DtPortalDiGuy& source );
183 
185 
186  private:
187 
190 
192  DtNoRelEntityTranslator& operator = ( const DtNoRelEntityTranslator& other );
193 
194  protected:
195 
196  typedef std::map<DtEntityIdentifier,DtBrokerObject*> EntityByEntityIdMap;
199 
200  typedef std::map<DtEntityIdentifier,const DtPortalReflectedDiGuy*> DiGuyWaitList;
202 
203  typedef std::map<DtEntityIdentifier,DtPortalDiGuyPublisher*> PortalDiGuyPublisherMap;
205 
207 
208  };
209 
210  }
211 }
Manages collections of ReflectedObjects of Type T_ReflectedObject.
Definition: pReflectedObjectManager.h:38
Base class for all DIS object translators.
Definition: disTranslator.h:86
DiGuyWaitList myDiGuyWaitList
Definition: noRelEntityTranslator.h:201
Contains the DtDisObjectTranslator and DtDisInteractionTranslator base classes.
Provides container to hold pointers to Protocol/Portal objects.
Definition: brokerObject.h:24
virtual DtObjectPublisher * instantiateDisPublisher(const T_PortalReflectedObject *refObj, const DtEntityIdentifier &name)
Instantiates the publisher for the given reflected object.
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.
std::map< DtEntityIdentifier, DtBrokerObject * > EntityByEntityIdMap
Definition: noRelEntityTranslator.h:196
An abstract interface for reflected objects.
Definition: pReflectedObject.h:31
DtPortalReflectedDiGuyManager * myPortalReflectedDiGuyManager
Definition: noRelEntityTranslator.h:206
std::map< DtEntityIdentifier, const DtPortalReflectedDiGuy * > DiGuyWaitList
Definition: noRelEntityTranslator.h:200
std::map< DtEntityIdentifier, DtPortalDiGuyPublisher * > PortalDiGuyPublisherMap
Definition: noRelEntityTranslator.h:203
PortalDiGuyPublisherMap myPortalDiGuyPublisherMap
Definition: noRelEntityTranslator.h:204
Contains the DtNoRelEntityPublisher class declaration.
EntityByEntityIdMap myDisEntityByEntityIdMap
Definition: noRelEntityTranslator.h:198
Base class for all broker objects.
Definition: broker.h:58
A template to create reflected object types for each type of object message.
Definition: pReflectedObject.h:58
Provides Entity State object translation between DIS and the VR-Exchange Portal.
Definition: noRelEntityTranslator.h:44
DtPortalReflectedObjectTemplate< DtPortalEntity > DtPortalReflectedEntity
An Entity Reflected Object template instance.
Definition: pReflectedObjectTypes.h:84
EntityByEntityIdMap myPortalEntityByEntityIdMap
Definition: noRelEntityTranslator.h:197
#define Dt_DEF_TRANSLATOR_NAME(strname)
Definition: translator.h:16
#define DT_DLL_DISBROKER
Definition: brokers/disBroker/disBroker/dllExport.h:20
Messages which represent DI-Guys with state.
Definition: pDiGuy.h:29
Messages which represent Entities with state.
Definition: pEntity.h:26

Document ID: Generated on Tue Aug 16 16:15:26 EDT 2022 from SVN revision 245901
Copyright © 2005-2022 MAK Technologies. All Rights Reserved (www.mak.com)