15 #pragma warning( disable : 4661 )
34 #define RPR_TEMPLATE_LIST \
36 < class T_PortalObject \
37 , class T_PortalReflectedObject \
38 , class T_RprReflectedObject \
39 , class T_RprReflectedObjectList \
40 , class T_RprObjectStateRepository \
41 , class T_RprObjectPublisher>
43 #define RPR_TEMPLATE_FUNCTION \
44 T_PortalObject, T_PortalReflectedObject, \
45 T_RprReflectedObject, T_RprReflectedObjectList, \
46 T_RprObjectStateRepository, T_RprObjectPublisher
49 #define DtVrxCATCH_AND_WARN( exception ) \
52 DtWarn << this->name() << " Translator caught " << #exception \
53 << " when sending interaction." << std::endl; \
57 class DtReflectedObject;
58 class DtStateRepository;
60 namespace MAKVrExchange
63 class DtRequestTranslationDiagnosticMessage;
197 const T_PortalReflectedObject* refObj );
250 const T_PortalReflectedObject* refObj,
const DtString&
name );
288 const T_RprObjectStateRepository& sr );
290 const T_PortalObject& sr );
302 T_RprReflectedObject* refObj );
308 const T_PortalReflectedObject* refObj );
315 const DtVector& location );
319 const DtVector& location );
350 const DtPortalObject& incoming,
const DtStateRepository& outgoing )
const;
354 const DtStateRepository& incoming,
const DtPortalObject& outgoing )
const;
363 const DtStateRepository& outgoing );
376 virtual T_PortalObject*
translate( T_PortalObject* destination,
377 const T_RprObjectStateRepository& source,
378 const T_RprReflectedObject& refObj ) = 0;
382 virtual T_RprObjectStateRepository*
translate(
383 T_RprObjectStateRepository* destination,
const T_PortalObject& source,
384 const T_PortalReflectedObject& refObj ) = 0;
438 template <
class PortalInterType,
class RprInterType>
498 virtual PortalInterType*
translate( PortalInterType* destination,
499 const RprInterType& source ) = 0;
503 virtual RprInterType*
translate( RprInterType* destination,
504 const PortalInterType& source ) = 0;
508 const DtInteraction& outgoing )
const;
533 #define _rprTranslator_INL_
534 #include <rprBroker/rprTranslator.inl>
535 #undef _rprTranslator_INL_
static void rprObjectDeletedCb(T_RprReflectedObject *refObj, void *usr)
Callback called when an object in the reflected list is deleted.
Contains the templated DtPortalReflectedObjectManager types.
Base class for all RPR interaction translators.
Definition: rprTranslator.h:439
virtual DtBrokerObject * findBrokerObject(const DtReflectedObject *refObj)
Find the broker object for the given reflected object.
virtual void removeRprCallbacks()
virtual void removeRprCallbacks()
std::map< const DtReflectedObject *, DtBrokerObject * > RprToPortalReflectedMap
Definition: rprTranslator.h:408
virtual void createRprPublisher(DtBrokerObject *brokerObj)
Determines the name to use for the given reflected object.
Used to request that brokers send translation diagnostic reports.
Definition: requestTransDiagnosticMessage.h:21
DtRprInteractionTranslator(DtBroker *broker, const DtString &name, DtPortalMessageKind kind)
CTOR.
virtual ~DtRprInteractionTranslator()
Virtual DTOR.
virtual void createPortalPublisher(DtBrokerObject *brokerObj)
Determines the name to use for the given reflected object.
virtual void discoverRprObject(T_RprReflectedObject &obj)
virtual void createPortalInteraction(const RprInterType &inter)
bool operator!=(const DtRprObjectTranslator &rightOperand) const
Private Comparison Operator (Not implemented – Do Not Compare).
Provides container to hold pointers to Protocol/Portal objects.
Definition: brokerObject.h:24
DtRprInteractionTranslator< PortalInterType, RprInterType > ParentClass
Typedef for the templated class type.
Definition: rprTranslator.h:445
virtual void shutdown()
Performs any virtual shutdown logic prior to deletion.
static bool rprDiscoveryCriteria(DtReflectedObject *refObj, void *usr)
The RPR reflected list's discovery condition callback.
#define RPR_TEMPLATE_LIST
Definition: rprTranslator.h:34
TransDebugObjectNamesSet myTransDebugNames
Definition: rprTranslator.h:415
UpdateType
Enums used with the ObjectAction callback.
Definition: rprTranslator.h:99
virtual DtBrokerObject * createBrokerObject(const DtReflectedObject *refObj)
Creates a broker object for the given reflected object.
virtual void deletePortalPublisher(DtBrokerObject *brokerObj)
DtPortalObject are messages which also serve as state repositories for simulated objects.
Definition: pObject.h:23
Implements a DtBroker for the HLA Protocol.
Definition: rprBroker.h:36
virtual void updateRprBrokerObject(DtBrokerObject *brokerObj, const T_RprObjectStateRepository &sr)
Ensures the given object is properly filtered.
bool operator==(const DtRprObjectTranslator &rightOperand) const
Private Comparison Operator (Not implemented – Do Not Compare).
LocationFilteringMap myLocationFilteringMap
Definition: rprTranslator.h:406
A simple template class to hold different types of State Repositories.
Definition: pObjectPublisher.h:68
virtual PortalInterType * translate(PortalInterType *destination, const RprInterType &source)=0
Translates the given RPR interaction to a Portal interaction (abstract).
virtual void initializeRprCallbacks()
virtual void shutdown()
Performs any virtual shutdown logic prior to deletion.
DtBaseInteractionTranslator are responsible for translating messages for things that do not have stat...
Definition: baseInteractionTranslator.h:60
std::pair< DtTime, bool > LocationFilteringInfo
Definition: rprTranslator.h:404
An abstract interface for reflected objects.
Definition: pReflectedObject.h:31
DtBroker * broker() const
Broker Accessor.
Definition: translator.h:80
DtPortalInteractions are a special type of DtPortalMessages which are used to transmit simulation dat...
Definition: pInteraction.h:21
virtual void removeRprObject(const DtReflectedObject &refObj)
Base class for all RPR object translators.
Definition: rprTranslator.h:93
Contains the DtInteractionTranslator and DtBaseInteractionTranslator class declarations.
Definition: rprTranslator.h:102
bool operator==(const DtRprInteractionTranslator &rightOperand) const
Private Comparison Operator (Not implemented – Do Not Compare).
Definition: rprTranslator.h:101
virtual DtBrokerObject * releaseBrokerObject(const DtReflectedObject *refObj)
Find the broker object for the given reflected object.
std::map< const DtPortalReflectedObject *, DtBrokerObject * > PortalToRprReflectedMap
Definition: rprTranslator.h:409
virtual T_RprObjectPublisher * instantiateRprPublisher(const T_PortalReflectedObject *refObj, const DtString &name)
Instantiates the publisher for the given reflected object.
virtual void updateFilteredState(DtBrokerObject *brokerObj, DtPortalObjectPublisherTemplate< T_PortalObject > *publisher, T_RprReflectedObject *refObj)
Ensures the given object is properly filtered.
virtual void performPortalDebugging(const DtString &objectName)
Build and send debugging message for GUI debugging.
PortalToRprReflectedMap myRprPublisherMap
Definition: rprTranslator.h:412
virtual void enableReflectTranslator(bool enabled)
Enables or disables the translator reflecting from RPR.
virtual DtRprBroker * rprBroker()
T_RprReflectedObjectList * myRprReflectedList
Definition: rprTranslator.h:402
Definition: objectHeartbeater.h:24
virtual void deleteRprPublisher(DtBrokerObject *brokerObj)
virtual void fillOutgoingIds(T_RprObjectPublisher *publisher, const DtString &name)
Sets the publisher's outgoing entity IDs.
static void receiveRprInteraction(RprInterType *inter, void *usr)
Base class for all broker objects.
Definition: broker.h:53
DtBaseObjectTranslators provide common logic for translating objects.
Definition: baseObjectTranslator.h:106
virtual void updatePortalBrokerObject(DtBrokerObject *brokerObj, const T_PortalObject &sr)
Ensures the given object is properly filtered.
virtual bool isPortalDiscoverable(const DtPortalReflectedObject *refObj)
Creates broker object for reflected Portal object.
virtual void printIncomingOutgoingInteractions(const DtPortalInteraction &incoming, const DtInteraction &outgoing) const
Prints incoming and outgoing interactions (before and after translation) to DtInfo.
virtual void tick()
Ticks the publishers for the translated RPR and Portal objects.
bool operator!=(const DtRprInteractionTranslator &rightOperand) const
Private Comparison Operator (Not implemented – Do Not Compare).
Contains the DtObjectTranslator and DtBaseObjectTranslator class declarations.
DtObjectHeartbeater myHeartbeater
Definition: rprTranslator.h:417
DtRprObjectTranslator & operator=(const DtRprObjectTranslator &other)
Private Assignment Operator (Not implemented – Do Not Copy).
virtual T_PortalObject * translate(T_PortalObject *destination, const T_RprObjectStateRepository &source, const T_RprReflectedObject &refObj)=0
Translates the given RPR object to a Portal object (abstract).
DtRprInteractionTranslator & operator=(const DtRprInteractionTranslator &other)
Private Assignment Operator (Not implemented – Do Not Copy).
DtRprObjectTranslator< RPR_TEMPLATE_FUNCTION > ParentClass
Typedef for the templated class type.
Definition: rprTranslator.h:108
virtual bool filterLocation(const DtReflectedObject &refObj, const DtVector &location)
Checks location filtering and returns the filtered state.
Template Instances of DtPortalObjectPublisherTemplate.
Contains the DtObjectHeartbeater class declaration.
DtRprObjectTranslator(DtBroker *broker, const DtString &name, DtPortalMessageKind kind)
CTOR.
virtual bool isRprDiscoverable(const DtReflectedObject *refObj)
Creates broker object for reflected RPR object.
virtual void initializeRprCallbacks()
virtual void discoverPortalObject(const T_PortalReflectedObject &obj)
virtual void forceUpdateAll()
Tells all publishers to send an update next tick.
virtual void receivePortalUpdate(const T_PortalReflectedObject &obj)
virtual ~DtRprObjectTranslator()
Virtual DTOR.
virtual void createInteraction(const PortalInterType &inter)
This function is required for a translator to correctly publish objects from the portal to your proto...
virtual void receiveRprUpdate(T_RprReflectedObject &obj)
static void rprObjectAddedCb(T_RprReflectedObject *refObj, void *usr)
Callback called when an object is added to the reflected list.
static void rprObjectUpdatedCb(T_RprReflectedObject *refObj, void *usr)
Callback called when an object in the reflected list is updated.
virtual DtString rprObjectName(const T_PortalReflectedObject *refObj) const
Determines the name to use for the given reflected object.
DtPortalMessageKind
A List of message kinds distributed with the Portal.
Definition: pMessageKinds.h:23
static void requestTransDiagCb(const DtRequestTranslationDiagnosticMessage &msg, void *usr)
Static translation diagnostic request callback.
std::map< const DtReflectedObject *, LocationFilteringInfo > LocationFilteringMap
Definition: rprTranslator.h:405
virtual void removePortalObject(const T_PortalReflectedObject &refObj)
RprToPortalReflectedMap myPortalPublisherMap
Definition: rprTranslator.h:411
virtual bool isRprPublishable(DtBrokerObject *brokerObj, const T_PortalReflectedObject *refObj)
Tests whether the object is publishable as a RPR object.
virtual DtRprBroker * rprBroker()
virtual void printIncomingOutgoingStateReps(const DtPortalObject &incoming, const DtStateRepository &outgoing) const
Print debug info for the given state reps.
std::set< DtString > TransDebugObjectNamesSet
Definition: rprTranslator.h:414
virtual unsigned int numObjects() const
Returns the current number of objects.
This callback is regarding an object Discovery.
Definition: rprTranslator.h:103
virtual void enableReflectTranslator(bool enabled)
Enables or disables the translator reflecting objects from RPR.
virtual DtString name() const
Accessor for the translator's name.