VR-Exchange 2.6 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
baseObjectTranslator.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 
12 #include <broker/translator.h>
15 
16 namespace MAKVrExchange
17 {
18 
19  class DtBrokerObject;
20 
26  {
27  public:
28 
30  typedef void (*BrokerObjectCbPtr)( const DtBrokerObject* brokerObj, void* usr );
31 
32  public:
33 
35  DtObjectTranslator( DtBroker* broker, const DtString& name, DtPortalMessageKind kind );
36 
38  virtual ~DtObjectTranslator();
39 
42 
43  virtual void initializePortalCallbacks() = 0;
44  virtual void removePortalCallbacks() = 0;
45 
47 
49  virtual void shutdown() = 0;
50 
53  virtual void forceUpdateAll() {};
54 
56  virtual unsigned int numObjects() const = 0;
57 
60 
61  virtual void addObjectDiscoveredCallback( BrokerObjectCbPtr funcPtr, void* usr );
62  virtual void addObjectUpdatedCallback( BrokerObjectCbPtr funcPtr, void* usr );
63  virtual void addObjectRemovedCallback( BrokerObjectCbPtr funcPtr, void* usr );
64 
66 
69 
70  virtual void callObjectDiscoverCallbacks( const DtBrokerObject* obj );
71  virtual void callObjectUpdateCallbacks( const DtBrokerObject* obj );
72  virtual void callObjectRemoveCallbacks( const DtBrokerObject* obj );
73 
75 
78 
81  virtual bool isPortalDiscoverable( const DtPortalReflectedObject* obj );
82 
85  virtual bool isPortalPublishable( const DtBrokerObject* obj );
86 
88 
89  protected:
90 
91  struct CallbackPair { BrokerObjectCbPtr fcn; void* userData; };
92  typedef std::list<CallbackPair> CallbackPairList;
93 
97 
98  };
99 
100 
105  template <class T_PortalObject,class T_PortalReflectedObject,class T_ParentClass=DtObjectTranslator>
107  {
108  public:
109 
112 
113  public:
114 
116  DtBaseObjectTranslator( DtBroker* broker, const DtString& name, DtPortalMessageKind kind );
117 
119  virtual ~DtBaseObjectTranslator();
120 
122  virtual void enablePublishTranslator( bool enabled );
123 
126 
127  virtual void initializePortalCallbacks();
128  virtual void removePortalCallbacks();
129 
131 
134 
137  static bool portalDiscoveryCriteria( const DtPortalReflectedObject* obj, void* usr );
138 
140  static void portalObjectAddedCb( const T_PortalReflectedObject& obj, void* usr );
141 
143  static void portalObjectUpdatedCb( const T_PortalReflectedObject& obj, void* usr );
144 
146  static void portalObjectDeletedCb( const T_PortalReflectedObject& obj, void* usr );
147 
149 
151  virtual void shutdown();
152 
153  protected:
154 
160 
161  virtual void discoverPortalObject( const T_PortalReflectedObject& obj );
162  virtual void receivePortalUpdate( const T_PortalReflectedObject& obj );
163  virtual void removePortalObject( const T_PortalReflectedObject& obj );
164 
166 
167  protected:
168 
170 
171  };
172 }
173 
174 #define _baseObjectTranslator_INL_
175 #include "baseObjectTranslator.inl"
176 #undef _baseObjectTranslator_INL_

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)