19 #include <vlutil/vlNetTypes.h>
20 #include <vlutil/vlString.h>
22 #include <matrix/vlVector.h>
27 namespace MAKVrExchange
30 class DtPortalConnection;
37 template <
class T_ReflectedObject>
113 virtual void processNewObject(
const typename T_ReflectedObject::TheTypeOfThisObject& obj );
116 virtual void processUpdate(
const typename T_ReflectedObject::TheTypeOfThisObject& obj );
128 static void objectUpdateCb(
const typename T_ReflectedObject::TheTypeOfThisObject& obj,
void* usr );
173 #define _pReflectedObjectManager_INL_
174 #include "pReflectedObjectManager.inl"
175 #undef _pReflectedObjectManager_INL_
virtual const ReflectedObjectMap & reflectedObjectMap() const
Returns a const reference to the reflectedObjectMap used to manage the list of reflected objects...
Manages collections of ReflectedObjects of Type T_ReflectedObject.
Definition: pReflectedObjectManager.h:38
virtual void processNewObject(const typename T_ReflectedObject::TheTypeOfThisObject &obj)
Processes a new object/undiscovered object.
Contains the DtPortalControlMessage class declarations.
static void objectUpdateCb(const typename T_ReflectedObject::TheTypeOfThisObject &obj, void *usr)
Called anytime an object is updated.
virtual void setDiscoveryCondition(DtDiscoveryCondition fn, void *usr)
Set the checker function which will determine when an object gets discovered and put into the reflect...
DtDiscoveryCondition myDiscoveryCondition
Definition: pReflectedObjectManager.h:163
void * myDiscoveryConditionParameter
Definition: pReflectedObjectManager.h:164
bool(* DtDiscoveryCondition)(const DtPortalReflectedObject *refObj, void *usr)
Function to use when registering a Discovery Condition.
Definition: pReflectedObjectManager.h:50
virtual ~DtPortalReflectedObjectManager()
Default Destructor.
DtPortalReflectedObjectManager & operator=(const DtPortalReflectedObjectManager &other)
Assignment operator not implemented - do not copy.
DtPortalObject are messages which also serve as state repositories for simulated objects.
Definition: pObject.h:23
Contains the DtPortalReflectedObject and DtPortalReflectedObjectTemplate class declarations.
An abstract interface for reflected objects.
Definition: pReflectedObject.h:31
PortalControlMessageTemplate is used to create new DtPortalControlMessage types.
Definition: pControlMessage.h:71
virtual void addRemovalCallback(DtPortalObjectCallback cb, void *userData)
Adds a callback to be called when a reflected object is deleted.
virtual void addAdditionCallback(DtPortalObjectCallback cb, void *userData)
Adds a callback to be called when a reflected object is discovered.
Contains the DtPortalGenericObject class declaration.
ReflectedObjectMap myReflectedObjectMap
Definition: pReflectedObjectManager.h:159
DtPortalReflectedObjectManager(DtPortalConnection *conn, const bool ignoreFiltering=false)
Constructors.
virtual void removeRemovalCallback(DtPortalObjectCallback cb, void *userData)
Removes an already registered removal callback.
CallbackPairList myObjectAdditionCallbacks
Definition: pReflectedObjectManager.h:156
Contains the DtPortalAggregate class declaration.
void * userData
Definition: pReflectedObjectManager.h:150
DtPortalMessageKind myKind
Definition: pReflectedObjectManager.h:167
std::map< DtString, T_ReflectedObject * > ReflectedObjectMap
A map of T_ReflectedObject indexed by the object name.
Definition: pReflectedObjectManager.h:44
Contains the DtPortalEntity class declaration.
DtPortalConnection * myConn
Definition: pReflectedObjectManager.h:161
virtual bool readyToAdd(const DtPortalReflectedObject *refObj)
Tests if the reflected object can come off the wait list.
Definition: pReflectedObjectManager.h:147
virtual bool isFilteringIgnored() const
virtual bool discoverObject(T_ReflectedObject *pObj)
Fully discovers the object and notifies the interested parties.
virtual void removeObjectsForBroker(const DtU32 &brokerId)
Removes all objects associated with this broker Id.
Connects a broker to the Portal Data Exchange.
Definition: pConnection.h:49
std::map< DtString, CallbackPairList > ObjectUpdateCallbackMap
Definition: pReflectedObjectManager.h:154
CallbackPairList myObjectRemovalCallbacks
Definition: pReflectedObjectManager.h:157
DtPortalObjectCallback fcn
Definition: pReflectedObjectManager.h:149
Contains the DtPortalConnection class declaration.
DtPortalMessageKind
A List of message kinds distributed with the Portal.
Definition: pMessageKinds.h:23
const bool myFilteringIgnored
Definition: pReflectedObjectManager.h:166
virtual void removeAdditionCallback(DtPortalObjectCallback cb, void *userData)
Removes an already registered discovered callback.
virtual void processUpdate(const typename T_ReflectedObject::TheTypeOfThisObject &obj)
Receives a message from the connection manager for this type of object.
void(* DtPortalObjectCallback)(const T_ReflectedObject &obj, void *usr)
Function to use when registering an Addition, Update or removal callback.
Definition: pReflectedObjectManager.h:47
virtual void processRemoval(const DtPortalObject &obj)
static void abnormalRemovalCb(const DtAbnormalBrokerExitMessage &msg, void *usrData)
Callback for the abnormalRemovalCb which is sent by the portal when a broker exits unexpectedly...
std::list< CallbackPair > CallbackPairList
Definition: pReflectedObjectManager.h:153
static void removeBrokerCb(const DtBrokerExitingMessage &msg, void *usrData)
Called when a broker exits, this causes all objects owned by that broker to be removed.
ReflectedObjectMap myWaitListObjectMap
Definition: pReflectedObjectManager.h:160