![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2005 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: sensorContactInfoList.h,v $ $Revision: 1.10 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef sensorContactInfoList_H_ 00015 #define sensorContactInfoList_H_ 00016 00017 #include "vrfutil/rwList.h" 00018 #include "vrfutil/vrfutilDefines.h" 00019 #include "vrfutil/callbackList.h" 00020 00021 class DtReaderWriterRegistry; 00022 class DtString; 00023 class DtRwSensorContactInfo; 00024 00032 class DT_DLL_vrfutil DtSensorContactInfoList : public DtRwList 00033 { 00034 00035 public: 00036 00038 DtSensorContactInfoList(); 00039 00041 DtSensorContactInfoList(const DtString& name, DtReaderWriterRegistry* parentRegistry = NULL); 00042 DtSensorContactInfoList(const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry = NULL); 00043 00045 virtual ~DtSensorContactInfoList(); 00046 00049 00050 DtSensorContactInfoList(const DtString& name, const DtSensorContactInfoList& orig, 00051 DtReaderWriterRegistry* parentRegistry = NULL); 00052 00053 DtSensorContactInfoList(const DtSymbolString& name, const DtSensorContactInfoList& orig, 00054 DtReaderWriterRegistry* parentRegistry = NULL); 00056 00060 DtSensorContactInfoList& operator=(const DtSensorContactInfoList& orig); 00061 00063 00064 virtual DtSensorContactInfoList* clone(const DtString& name, DtReaderWriterRegistry* parentRegistry = NULL); 00065 virtual DtSensorContactInfoList* clone(const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry = NULL); 00067 00069 virtual void clear(); 00070 00072 virtual void removeAndDelete(DtRwSensorContactInfo* contactInfo); 00073 00076 virtual DtRwSensorContactInfo* findContactInfoByContactName(const DtString& contactName); 00077 00086 virtual DtRwSensorContactInfo* createSensorContactInfo(); 00087 00092 00093 virtual void addModifiedCallback(DtNoArgumentCallbackList::DtCallbackFunctionType fcn, void* usr); 00094 virtual void removeModifiedCallback(DtNoArgumentCallbackList::DtCallbackFunctionType fcn, void* usr); 00096 00099 virtual void listModified(); 00100 00101 protected: 00102 00104 void copyList(const DtSensorContactInfoList& orig); 00105 00108 void emptyList(); 00109 00112 virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath, 00113 const DtVariableBindingsList& variableBindings); 00114 00118 virtual const char* readerWriterType() const; 00119 00120 DtNoArgumentCallbackList myModifiedCallbackList; 00121 00122 protected: 00123 00124 }; 00125 00130 class DT_DLL_vrfutil DtSensorContactInfoListChangeMonitor 00131 { 00132 private: 00134 00135 DtSensorContactInfoListChangeMonitor(); 00136 DtSensorContactInfoListChangeMonitor(const DtSensorContactInfoListChangeMonitor& orig); 00137 DtSensorContactInfoListChangeMonitor& operator=(DtSensorContactInfoListChangeMonitor& orig); 00139 public: 00140 DtSensorContactInfoListChangeMonitor(DtSensorContactInfoList& contactInfoList); 00141 ~DtSensorContactInfoListChangeMonitor(); 00142 00145 bool listChanged() const; 00146 00149 void markUnchanged(); 00150 00153 bool checkAndResetListChanged(); 00154 00155 protected: 00156 static void listChangedCallback(void* usr); 00157 void processListChanged(); 00158 00159 DtSensorContactInfoList& myContactInfoList; 00160 bool myListChanged; 00161 }; 00162 00163 #endif 00164