VR-Exchange 2.2 API Documentation
tenaBroker/libTenaBroker/entityTrans.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2013 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include "objectTrans.h"
13 
16 #include <portal/pEntity.h>
17 
18 #include <vl/reflEntList.h>
19 #include <vl/entityPub.h>
20 
21 #include <map>
22 
23 class DtReflectedEntity;
24 class DtEntityStateRepository;
25 
26 namespace MAKVrExchange
27 {
28 
29  namespace DtTenaBroker
30  {
31 
35  class DT_DLL_TENABROKER DtEntityTranslator : public DtObjectTranslator
36  {
37  public:
38 
39  typedef void (*callbackFunctionType)( DtReflectedEntity* object, void* userData );
40 
42  Dt_DEF_TRANSLATOR_NAME( "Entity State" );
43 
47  DtEntityTranslator( DtTenaBroker* tenaBroker );
48 
50  virtual ~DtEntityTranslator();
51 
53  virtual void tick();
54 
56  virtual void enableTranslator( bool enabled );
57 
59  virtual DtPortalEntity* translate( DtPortalEntity* destination,
60  const DtEntityStateRepository& source );
61 
63  virtual DtEntityStateRepository* translate(
64  DtEntityStateRepository* destination, const DtPortalEntity& source );
65 
66  protected:
67 
69  virtual void discoverTenaObject( DtReflectedEntity* obj );
70 
72  virtual void discoverPortalObject( const DtPortalReflectedEntity& obj );
73 
77  virtual void receiveTenaUpdate( DtReflectedEntity* obj );
78 
82  virtual void receivePortalUpdate( const DtPortalReflectedEntity& obj );
83 
85  virtual void createTenaPublisher( DtBrokerObject* brokerObject );
86 
88  virtual void createPortalPublisher( DtBrokerObject* brokerObject );
89 
91  virtual void deleteTenaPublisher( DtBrokerObject* brokerObject );
92 
94  virtual void deletePortalPublisher( DtBrokerObject* brokerObject );
95 
98  virtual bool isTenaPublishable( const DtBrokerObject* brokerObject ) const;
99 
102  virtual bool isPortalPublishable( const DtBrokerObject* brokerObject ) const;
103 
105  virtual void syncTenaDeadReconedValues( DtBrokerObject* brokerObject );
106 // static void synchronizeDeadReconedValues( DtPortalEntity* destination,
107 // const DtEntityStateRepository& source );
108 
110  virtual void syncPortalDeadReconedValues( DtBrokerObject* brokerObject );
111 // static void synchronizeDeadReconedValues( DtEntityStateRepository* destination,
112 // const DtPortalEntity& source );
113 
114  protected:
115 
118  static bool tenaDiscoveryCriteria( DtReflectedObject* obj, void* usr );
119 
122  static bool portalDiscoveryCriteria( const DtPortalReflectedEntity* obj, void* usr );
123 
126  static void tenaAdditionCallback( DtReflectedEntity* obj, void* usr );
127 
130  static void tenaUpdateCallback( DtReflectedEntity* obj, void* usr );
131 
134  static void tenaRemovalCallback( DtReflectedEntity* obj, void* usr );
135 
138  static void portalObjectAddedCb( const DtPortalReflectedEntity& obj, void* usr );
139 
142  static void portalObjectUpdatedCb( const DtPortalReflectedEntity& obj, void* usr );
143 
146  static void portalObjectDeletedCb( const DtPortalReflectedEntity& obj, void* usr );
147 
148  private:
149 
151  DtEntityTranslator( const DtEntityTranslator& other );
152 
154  DtEntityTranslator& operator = ( const DtEntityTranslator& other );
155 
157  int operator == ( const DtEntityTranslator& other ) const;
158 
160  int operator != ( const DtEntityTranslator& other ) const;
161 
162  protected:
163 
164  DtReflectedEntityList* myTenaReflectedList;
166 
169 
170  };
171 
172  }
173 }

Document ID: Generated on Mon Apr 15 17:15:50 EDT 2013 from SVN revision 126154
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)