VR-Exchange 2.6 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
disBroker/disBroker/entityTranslator.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 
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 
133  virtual void updatePortalBrokerObject( DtBrokerObject* brokerObj,
134  const DtPortalEntity& sr );
135 
139  virtual void receivePortalDiGuyUpdate( const DtPortalReflectedDiGuy& obj );
140 
142  virtual void removeDisObject( const DtReflectedObject& refObj );
143 
145  virtual void removePortalObject( const DtPortalReflectedEntity& refObj );
146 
148  virtual void removePortalDiGuy( const DtPortalReflectedDiGuy* diGuy );
149 
151  virtual void deleteDisPublisher( DtBrokerObject* brokerObj );
152 
154 
157 
160  virtual bool hasDiGuyAttributes( const DtEntityStateRepository& entity );
161 
163  virtual void syncDisDeadReckonedValues( DtEntityStateRepository* destination,
164  const DtPortalEntity& source );
165 
167  virtual void syncPortalDeadReckonedValues( DtPortalEntity* destination,
168  const DtEntityStateRepository& source );
169 
171  virtual DtPortalEntity* translate( DtPortalEntity* destination,
172  const DtEntityStateRepository& source, const DtReflectedEntity& reflectedObject );
173 
175  virtual DtEntityStateRepository* translate(
176  DtEntityStateRepository* destination, const DtPortalEntity& source,
177  const DtPortalReflectedEntity& reflectedObject );
178 
180  virtual DtPortalDiGuy* translate( DtPortalDiGuy* destination,
181  const DtEntityStateRepository& source );
182 
184  virtual DtEntityStateRepository* translate(
185  DtEntityStateRepository* destination, const DtPortalDiGuy& source );
186 
188 
189  private:
190 
192  DtEntityTranslator( const DtEntityTranslator& other );
193 
195  DtEntityTranslator& operator = ( const DtEntityTranslator& other );
196 
197  protected:
198 
199  typedef std::map<DtEntityIdentifier,DtBrokerObject*> EntityByEntityIdMap;
202 
203  typedef std::map<DtEntityIdentifier,const DtPortalReflectedDiGuy*> DiGuyWaitList;
205 
206  typedef std::map<DtEntityIdentifier,DtPortalDiGuyPublisher*> PortalDiGuyPublisherMap;
208 
210 
211  };
212 
213  }
214 }

Document ID: Generated on Wed Jan 30 18:15:18 EST 2019 from SVN revision 195534
Copyright © 2005-2019 VT MÄK. All Rights Reserved (www.mak.com)