VR-Exchange 2.5 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
rprBroker/rprBroker/entityTranslator.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2014 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
13 #include <vl/reflectedEntityList.h>
14 #include <vl/entityPublisher.h>
15 #include <map>
16 
17 class DtReflectedEntity;
18 class DtReflectedEntityList;
19 class DtReflectedDIGuyObject;
20 class DtEntityStateRepository;
21 class DtReflectedDIGuyObjectList;
22 class DtDIGuyObjectStateRepository;
23 
24 #define ENTITY_TEMPLATE_ARGS \
25  DtPortalEntity, DtPortalReflectedEntity, \
26  DtReflectedEntity, DtReflectedEntityList, \
27  DtEntityStateRepository, DtEntityPublisher
28 
29 namespace MAKVrExchange
30 {
31 
32  class DtPortalEntity;
33 
34  namespace DtRprBroker
35  {
36 
39  template <>
40  DT_DLL_RPRBROKER DtEntityPublisher*
42  const DtPortalReflectedEntity* refObj, const DtString& name );
43 
44 
48  : public DtRprObjectTranslator<ENTITY_TEMPLATE_ARGS>
49  {
50  public:
51 
53  Dt_DEF_TRANSLATOR_NAME( "Entity State" );
54 
56  DtEntityTranslator( DtBroker* broker );
57 
59  virtual ~DtEntityTranslator();
60 
64 
65  virtual void initializePortalCallbacks();
66  virtual void removePortalCallbacks();
67 
69 
70  virtual void tick();
71 
72  protected:
73 
76 
79  static bool portalDiGuyDiscoveryCriteria( const DtPortalReflectedObject* object, void* usr );
80 
82  static void portalDiGuyAddedCb( const DtPortalReflectedDiGuy& obj, void* usr );
83 
85  static void portalDiGuyUpdatedCb( const DtPortalReflectedDiGuy& obj, void* usr );
86 
88  static void portalDiGuyDeletedCb( const DtPortalReflectedDiGuy& obj, void* usr );
89 
91 
94 
96  virtual bool isPortalPublishable( const DtBrokerObject* brokerObj ) const;
97 
99 
102 
104  virtual void discoverRprObject( DtReflectedEntity& refObj );
105 
109  virtual bool isRprPublishable( DtBrokerObject* brokerObj,
110  const DtPortalReflectedEntity* refObj );
111 
115  virtual void discoverPortalObject( const DtPortalReflectedEntity& refObj );
116 
119  virtual void discoverPortalDiGuy( const DtPortalReflectedDiGuy& obj );
120 
122  virtual void receivePortalDiGuyUpdate( const DtPortalReflectedDiGuy& obj );
123 
126  virtual void updateRprBrokerObject( DtBrokerObject* brokerObj,
127  const DtEntityStateRepository& sr );
128 
131  virtual void updatePortalBrokerObject( DtBrokerObject* brokerObj,
132  const DtPortalEntity& sr );
133 
136  virtual void updateFilteredState( DtBrokerObject* brokerObj,
137  DtPortalEntityPublisher* publisher, DtReflectedEntity* refObj );
138 
142  virtual DtString rprObjectName( const DtPortalReflectedEntity* refObj ) const;
143 
146  virtual void fillOutgoingIds( DtEntityPublisher* publisher,
147  const DtString& name );
148 
151  virtual void createRprPublisher( DtBrokerObject* brokerObject );
152 
155  virtual void removeRprObject( const DtReflectedObject& refObj );
156 
159  virtual void removePortalObject( const DtPortalReflectedObject& reflectedObj );
160 
162  virtual void removePortalDiGuy( const DtPortalReflectedDiGuy& obj );
163 
165 
168 
171  virtual bool hasDiGuyAttributes( const DtEntityStateRepository& entity );
172 
174  virtual void syncRprArtParts( DtBrokerObject* brokerObject );
175 
177  virtual void syncRprDeadReckonedValues( DtBrokerObject* brokerObject );
178 
180  virtual void syncPortalDeadReconedValues( DtBrokerObject* brokerObject );
181 
183  virtual DtEntityStateRepository* translate(
184  DtEntityStateRepository* destination, const DtPortalEntity& source,
185  const DtPortalReflectedEntity& refObj );
186 
188  virtual DtPortalEntity* translate( DtPortalEntity* destination,
189  const DtEntityStateRepository& source, const DtReflectedEntity& refObj );
190 
192  virtual DtPortalDiGuy* translate( DtPortalDiGuy* destination,
193  const DtEntityStateRepository& source );
194 
196  virtual DtEntityStateRepository* translate(
197  DtEntityStateRepository* destination, const DtPortalDiGuy& source );
198 
200 
201  protected:
202 
203  typedef std::map<DtEntityIdentifier,DtBrokerObject*> EntityByEntityIdMap;
206 
207  typedef std::map<DtEntityIdentifier,const DtPortalReflectedDiGuy*> DiGuyWaitList;
209 
210  typedef std::map<DtEntityIdentifier,DtPortalDiGuyPublisher*> PortalDiGuyPublisherMap;
212 
214 
215  };
216 
217  }
218 }

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)