![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2005 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: vrfObjectDataMessenger.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef DtVrfObjectDataMessenger_H_ 00016 #define DtVrfObjectDataMessenger_H_ 00017 00018 #include <vrfobjcore/cntrlCmpnt.h> 00019 #include <vrfExtObjects/vrfExtensions.h> 00020 #include "vrfmodel/vrfmodelDefines.h" 00021 00022 class DtSimMessage; 00023 class DtVrfObjectMessage; 00024 class DtReflectedEntity; 00025 00028 class DT_DLL_vrfmodel DtVrfObjectDataMessenger : public DtControllerComponent 00029 { 00030 private: 00032 DtVrfObjectDataMessenger(); 00034 DtVrfObjectDataMessenger(const DtVrfObjectDataMessenger& orig); 00036 DtVrfObjectDataMessenger& operator=( 00037 const DtVrfObjectDataMessenger& orig); 00038 public: 00039 00042 DtVrfObjectDataMessenger(const DtString& name, DtVrfObject* owner, 00043 DtSimManager* simManager, DtComponentDescriptor* desc=0, 00044 DtReaderWriterRegistry *parentRegistry=0); 00045 00047 virtual ~DtVrfObjectDataMessenger(); 00048 00050 virtual bool init(); 00051 00053 00054 DtTime maxSendInterval() const; 00055 void setMaxSendInterval(DtTime ival); 00057 00059 00060 DtTime minSendInterval() const; 00061 void setMinSendInterval(DtTime ival); 00063 00066 virtual bool prepMessage(); 00067 00069 virtual void processEntityUpdated(DtReflectedEntity* pEnt); 00070 00073 virtual bool sendMessage(); 00074 00075 virtual void setComponentDescriptor(DtComponentDescriptor* componentDescriptor); 00076 00079 virtual DtString type() const; 00080 00083 virtual void tick(); 00084 00086 DtTime timeLastSent() const; 00087 00089 static void entityUpdatedCallback(DtReflectedEntity* pEnt, void* pUsr); 00090 00094 static DtSimComponent * creator(const DtString& name, 00095 DtVrfObject* owner, 00096 DtSimManager* simManager, 00097 DtComponentDescriptor* desc = 0, 00098 DtReaderWriterRegistry* parentRegistry = 0); 00099 00100 protected: 00101 00102 protected: 00103 DtTime myMaxSendInterval; 00104 00105 DtTime myMinSendInterval; 00106 00107 bool myNeedToSendUpdate; 00108 00109 DtTime myTimeLastSent; 00110 00111 DtVrfExtensions myVrfExtensions; 00112 }; 00113 00114 inline DtTime DtVrfObjectDataMessenger::maxSendInterval() const {return (myMaxSendInterval);} 00115 00116 inline void DtVrfObjectDataMessenger::setMaxSendInterval(DtTime ival) {myMaxSendInterval = ival;} 00117 00118 inline DtTime DtVrfObjectDataMessenger::minSendInterval() const {return (myMinSendInterval);} 00119 inline void DtVrfObjectDataMessenger::setMinSendInterval(DtTime ival) {myMinSendInterval = ival;} 00120 00121 inline DtTime DtVrfObjectDataMessenger::timeLastSent() const {return (myTimeLastSent);} 00122 00123 #endif