VR-Exchange 2.7 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_
CallbackPairList myRemoveCallbacks
Definition: baseObjectTranslator.h:96
virtual void enablePublishTranslator(bool enabled)
Enables or disables translation coming from the Portal.
virtual void removePortalObject(const T_PortalReflectedObject &obj)
static void portalObjectDeletedCb(const T_PortalReflectedObject &obj, void *usr)
Callback called when an object in the reflected list is deleted.
void * userData
Definition: baseObjectTranslator.h:91
Provides container to hold pointers to Protocol/Portal objects.
Definition: brokerObject.h:24
static void portalObjectUpdatedCb(const T_PortalReflectedObject &obj, void *usr)
Callback called when an object in the reflected list is updated.
DtBaseObjectTranslator< T_PortalObject, T_PortalReflectedObject, T_ParentClass > ParentClass
Definition: baseObjectTranslator.h:111
Responsible for converting a specific message type between two protocols.
Definition: translator.h:35
static void portalObjectAddedCb(const T_PortalReflectedObject &obj, void *usr)
Callback called when an object is added to the reflected list.
Contains the DtPortalReflectedObjectManager class declaration.
Contains the DtPortalReflectedObject and DtPortalReflectedObjectTemplate class declarations.
DtPortalReflectedObjectManager< T_PortalReflectedObject > * myPortalReflectedManager
Definition: baseObjectTranslator.h:169
Definition: baseObjectTranslator.h:91
An abstract interface for reflected objects.
Definition: pReflectedObject.h:31
#define DT_DLL_BROKER
Definition: include/broker/dllExport.h:20
virtual ~DtBaseObjectTranslator()
Virtual CTOR.
Base class for all broker objects.
Definition: broker.h:53
DtBaseObjectTranslators provide common logic for translating objects.
Definition: baseObjectTranslator.h:106
virtual void forceUpdateAll()
Forces an update for all objects on the next tick.
Definition: baseObjectTranslator.h:53
virtual void receivePortalUpdate(const T_PortalReflectedObject &obj)
CallbackPairList myUpdateCallbacks
Definition: baseObjectTranslator.h:95
virtual void shutdown()
Performs any virtual shutdown logic prior to deletion.
std::list< CallbackPair > CallbackPairList
Definition: baseObjectTranslator.h:92
DtBaseObjectTranslator(DtBroker *broker, const DtString &name, DtPortalMessageKind kind)
CTOR.
Contains the DtTranslator class declaration.
virtual void discoverPortalObject(const T_PortalReflectedObject &obj)
static bool portalDiscoveryCriteria(const DtPortalReflectedObject *obj, void *usr)
The Portal reflected list&#39;s discovery condition callback.
DtPortalMessageKind
A List of message kinds distributed with the Portal.
Definition: pMessageKinds.h:23
DtObjectTranslators provide common logic for translating objects.
Definition: baseObjectTranslator.h:25
CallbackPairList myDiscoverCallbacks
Definition: baseObjectTranslator.h:94

Document ID: Generated on Mon Apr 19 15:55:22 EDT 2021 from SVN revision 227909
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)