![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2005 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: objectSensorMonitor.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef objectSensorMonitor_H_ 00016 #define objectSensorMonitor_H_ 00017 00018 #include <list> 00019 #include <vl/hostStructs.h> 00020 #include "vrfmodel/vrfmodelDefines.h" 00021 00022 class DtVrfObject; 00023 class DtSimMessage; 00024 class DtSensorContactInfoList; 00025 00028 class DT_DLL_vrfmodel DtObjectSensorMonitor 00029 { 00030 private: 00032 DtObjectSensorMonitor(); 00033 00035 DtObjectSensorMonitor(const DtObjectSensorMonitor & 00036 orig); 00037 00039 const DtObjectSensorMonitor & operator=(const 00040 DtObjectSensorMonitor & orig); 00041 00042 public: 00044 DtObjectSensorMonitor(DtVrfObject* hostObject, 00045 const DtSensorContactInfoList* contactInfoList, 00046 const DtString& sensorName, 00047 int sensorType); 00048 00050 virtual ~DtObjectSensorMonitor(); 00051 00053 virtual bool init(); 00054 00056 virtual void registerMessageCallbacks(); 00057 00058 static void sensorDataRequestCallback(DtSimMessage* msg, void* usrData); 00059 00060 virtual void processSensorDataRequest(DtSimMessage* msg); 00061 00062 static void sensorDataUnsubscribeCallback(DtSimMessage* msg, void* usrData); 00063 00064 virtual void processSensorDataUnsubscribe(DtSimMessage* msg); 00065 00068 virtual void createAndSendSensorDataMessage(); 00069 00073 virtual void notifyTargetsChanged(); 00074 00075 protected: 00077 virtual bool onSubscriberList(const DtSimulationAddress& add) const; 00078 00079 virtual void addToSubscriberList(const DtSimulationAddress& add); 00080 00081 virtual void removeFromSubscriberList(const DtSimulationAddress& add); 00082 00084 virtual int numberOfSubscribers(); 00085 00086 protected: 00087 DtVrfObject* myHostObject; 00088 //DtObjectSensorPSR* mySensorPSR; 00089 //DtObjectSensor* myObjectSensor; 00090 const DtSensorContactInfoList* mySensorContactInfoList; 00091 int mySensorType; 00092 DtString mySensorName; 00093 00094 typedef std::list<DtSimulationAddress> DtSubscriberList; 00095 DtSubscriberList mySubscriberList; 00096 }; 00097 00098 #endif