VR-Exchange 2.10 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Macros
pMacros.h File Reference

Contains macros for making translator creation easier. More...

Go to the source code of this file.

Macros

#define DT_DECLARE_PORTAL_CALLBACKS(DtBrokerObjectNamespace, DtPortalReflectedObjType)
 
#define DT_DEFINE_CREATE_PORTAL_PUBLISHER(DtTranslatorClass, DtBrokerObjectNamespace, DtPortalObjectType, DtReflectedObject)
 
#define DT_DEFINE_IS_PORTAL_PUBLISHABLE(DtTranslatorClass, DtBrokerObjectNamespace, Protocol)
 
#define DT_DEFINE_DELETE_PORTAL_PUBLISHER(DtTranslatorClass, DtBrokerObjectNamespace, DtPortalObjectType)
 
#define DT_DEFINE_DISCOVER_PORTAL_OBJECT(DtTranslatorClass, DtBrokerObjectNamespace, DtPortalReflectedObjType, DtProtocol)
 
#define DT_DEFINE_RECEIVE_PORTAL_UPDATE(DtTranslatorClass, DtBrokerObjectNamespace, DtPortalReflectedObjType, DtPortalObjType, DtProtocolPublisher, DtProtocolStateRepository, DtProtocol)
 
#define DT_DEFINE_PORTAL_CALLBACKS(DtTranslatorClass, DtPortalReflectedObjType, DtTemplates)
 
#define DT_TICK_ALL_PUBLISHERS(DtPublisherContainerType, DtBrokerObjectNamespace, DtPublisherContainer, DtPublisherType)
 
#define DT_DECLARE_INTERACTION_PORTAL_CALLBACKS(DtPortalInteractionType, DtInteractionType)
 
#define DT_DEFINE_CREATE_PORTAL_INTERACTION(DtTranslatorClass, DtPortalInteractionType, DtInteractionType, DtObjectKind)
 
#define DT_DEFINE_RECEIVE_PORTAL_INTERACTION(DtTranslatorClass, DtPortalInteractionType, DtProtocol)
 

Detailed Description

Contains macros for making translator creation easier.

Macro Definition Documentation

#define DT_DECLARE_INTERACTION_PORTAL_CALLBACKS (   DtPortalInteractionType,
  DtInteractionType 
)
Value:
virtual void createPortalInteraction( const DtInteractionType& incomming ); \
static void receivePortalInteraction( const DtPortalInteractionType& inter, void* usr );
#define DT_DECLARE_PORTAL_CALLBACKS (   DtBrokerObjectNamespace,
  DtPortalReflectedObjType 
)
Value:
virtual void createPortalPublisher(DtBrokerObjectNamespace::DtBrokerObject* brokerObject); \
virtual bool isPortalPublishable(const DtBrokerObjectNamespace::DtBrokerObject* brokerObject) const; \
virtual void deletePortalPublisher(DtBrokerObjectNamespace::DtBrokerObject* brokerObject); \
virtual void discoverPortalObject(const DtPortalReflectedObjType &obj); \
virtual void receivePortalUpdate(const DtPortalReflectedObjType &obj); \
\
static void portalObjectAddedCb(const DtPortalReflectedObjType &obj, void *ud); \
static void portalObjectUpdatedCb(const DtPortalReflectedObjType &obj, void *ud); \
static void portalObjectDeletedCb(const DtPortalReflectedObjType &obj, void *ud);
#define DT_DEFINE_CREATE_PORTAL_INTERACTION (   DtTranslatorClass,
  DtPortalInteractionType,
  DtInteractionType,
  DtObjectKind 
)
Value:
void DtTranslatorClass::createPortalInteraction( const DtInteractionType& in ) \
{ \
DtPortalInteractionType out; \
out.setKind( DtObjectKind ); \
\
translate( &out, in ); \
\
if ( broker()->isTranslatorDebuggingOn(name()) ) \
{ \
printIncomingOutgoingInteractions( in, out ); \
} \
broker()->portalConnection()->send( out ); \
}
#define DT_DEFINE_CREATE_PORTAL_PUBLISHER (   DtTranslatorClass,
  DtBrokerObjectNamespace,
  DtPortalObjectType,
  DtReflectedObject 
)
Value:
void DtTranslatorClass::createPortalPublisher( DtBrokerObjectNamespace::DtBrokerObject *brokerObject ) \
{ \
MAKVrExchange::DtPortalObjectPublisherTemplate<DtPortalObjectType> *publisher = \
\
const DtReflectedObject* reflectedObj = \
static_cast<const DtReflectedObject*>( brokerObject->reflectedObjPtr() ); \
\
publisher->sr()->setIdentifier(reflectedObj->globalId()); \
brokerObject->setPublisherPtr(publisher); \
}
A simple template class to hold different types of State Repositories.
Definition: pObjectPublisher.h:68
#define DT_DEFINE_DELETE_PORTAL_PUBLISHER (   DtTranslatorClass,
  DtBrokerObjectNamespace,
  DtPortalObjectType 
)
Value:
void DtTranslatorClass::deletePortalPublisher(DtBrokerObjectNamespace::DtBrokerObject* brokerObject) \
{ \
MAKVrExchange::DtPortalObjectPublisherTemplate<DtPortalObjectType> *publisher = \
static_cast<MAKVrExchange::DtPortalObjectPublisherTemplate<DtPortalObjectType> *>(brokerObject->publisherPtr()); \
\
if (publisher) \
{ \
DtDELETE( publisher ); \
brokerObject->setPublisherPtr( publisher ); \
} \
}
A simple template class to hold different types of State Repositories.
Definition: pObjectPublisher.h:68
#define DT_DEFINE_DISCOVER_PORTAL_OBJECT (   DtTranslatorClass,
  DtBrokerObjectNamespace,
  DtPortalReflectedObjType,
  DtProtocol 
)
Value:
void DtTranslatorClass::discoverPortalObject(const DtPortalReflectedObjType &refObj) \
{ \
DtBrokerObjectNamespace::DtBrokerObject* brokerObject = findBrokerObject(&refObj); \
if (!brokerObject) \
{ \
brokerObject = createBrokerObject(&refObj); \
} \
\
brokerObject->setLastUpdate(myBroker->simTime()); \
brokerObject->setObjectName(refObj.sr()->identifier()); \
brokerObject->setIsDiscovered(true); \
\
create##DtProtocol##Publisher( brokerObject ); \
\
refObj.addUpdateCallback(DtTranslatorClass::portalObjectUpdatedCb, this); \
receivePortalUpdate(refObj); \
}
#define DT_DEFINE_IS_PORTAL_PUBLISHABLE (   DtTranslatorClass,
  DtBrokerObjectNamespace,
  Protocol 
)
Value:
bool DtTranslatorClass::isPortalPublishable( const DtBrokerObjectNamespace::DtBrokerObject *brokerObject ) const \
{ \
assert( brokerObject->protocol() == DtBrokerObjectNamespace::DtBrokerObject::Protocol );\
return true;\
}
#define DT_DEFINE_PORTAL_CALLBACKS (   DtTranslatorClass,
  DtPortalReflectedObjType,
  DtTemplates 
)
Value:
DtTemplates \
void DtTranslatorClass::portalObjectAddedCb( const DtPortalReflectedObjType& reflectedObj, void* ud ) \
{ \
DtTranslatorClass* et = (DtTranslatorClass*) ud; \
et->discoverPortalObject( reflectedObj ); \
}; \
\
DtTemplates \
void DtTranslatorClass::portalObjectUpdatedCb( const DtPortalReflectedObjType& reflectedObj, void* ud ) \
{ \
DtTranslatorClass* et = (DtTranslatorClass*) ud; \
et->receivePortalUpdate( reflectedObj ); \
}; \
\
DtTemplates \
void DtTranslatorClass::portalObjectDeletedCb( const DtPortalReflectedObjType& reflectedObj, void* ud ) \
{ \
DtTranslatorClass* et = (DtTranslatorClass*) ud; \
et->removePortalObject( &reflectedObj ); \
}
#define DT_DEFINE_RECEIVE_PORTAL_INTERACTION (   DtTranslatorClass,
  DtPortalInteractionType,
  DtProtocol 
)
Value:
void DtTranslatorClass::receivePortalInteraction( \
const DtPortalInteractionType& inter, void* usr ) \
{ \
DtTranslatorClass* trans = (DtTranslatorClass*) usr; \
trans->create##DtProtocol##Interaction( inter ); \
}
#define DT_DEFINE_RECEIVE_PORTAL_UPDATE (   DtTranslatorClass,
  DtBrokerObjectNamespace,
  DtPortalReflectedObjType,
  DtPortalObjType,
  DtProtocolPublisher,
  DtProtocolStateRepository,
  DtProtocol 
)
#define DT_TICK_ALL_PUBLISHERS (   DtPublisherContainerType,
  DtBrokerObjectNamespace,
  DtPublisherContainer,
  DtPublisherType 
)
Value:
DtPublisherContainerType::iterator pubItr = DtPublisherContainer.begin(); \
DtPublisherContainerType::iterator pubEnd = DtPublisherContainer.end(); \
for ( ; pubItr != pubEnd; ++pubItr ) \
{ \
DtBrokerObjectNamespace::DtBrokerObject* brokerObject = pubItr->second; \
DtPublisherType* publisher = static_cast<DtPublisherType*>( brokerObject->publisherPtr() ); \
if ( publisher && brokerObject->isPublishable() ) \
{ \
publisher->tick(); \
} \
}

Document ID: Generated on Mon May 25 18:45:12 EDT 2026 from SVN revision 289111
Copyright © 2005-2026 MAK Technologies. All Rights Reserved (www.mak.com)