VR-Exchange 2.5 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 }

Document ID: Generated on Wed Dec 21 15:05:11 EST 2016 from SVN revision 171891
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)