![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2005 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: occupancyDirectorPSR.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef DtVrfOccupancyDirectorPSR_H_ 00013 #define DtVrfOccupancyDirectorPSR_H_ 00014 00015 #include "vrfobjcore/processSR.h" 00016 #include "vrfutil/rwInt.h" 00017 #include "vrfutil/rwString.h" 00018 #include "vrfutil/rwStringList.h" 00019 00020 #include <set> 00021 00022 class DtEmbarkationSlotManager; 00023 00028 00029 #include "vrfobjcore/vrfobjcoreDefines.h" 00030 class DT_DLL_vrfobjcore DtVrfOccupancyDirectorPSR : public DtVrfProcessStateRepository 00031 { 00032 public: 00033 00035 DtVrfOccupancyDirectorPSR(DtVrfObject* vrfObject, 00036 const DtString& rwName = DtString::nullString(), 00037 DtReaderWriterRegistry* parentRegistry = 0); 00038 00040 DtVrfOccupancyDirectorPSR(const DtVrfOccupancyDirectorPSR& orig, 00041 const DtString& rwName = DtString::nullString(), 00042 DtReaderWriterRegistry* parentRegistry = 0); 00043 00045 virtual ~DtVrfOccupancyDirectorPSR(); 00046 00048 DtVrfOccupancyDirectorPSR& operator=(const DtVrfOccupancyDirectorPSR& orig); 00049 00051 virtual DtVrfProcessStateRepository* clone( 00052 const DtString& rwName = DtString::nullString(), 00053 DtReaderWriterRegistry* parentRegistry = 0) const; 00054 00057 virtual DtString type() const; 00058 00059 DtEmbarkationSlotManager* embarkationSlotManager(); 00060 00064 virtual DtString disembarkingObjectName() const; 00065 virtual void setDisembarkingObjectName(const DtString& name); 00067 00071 virtual void addDisembarkingObjectName(const DtString& objectName); 00072 virtual void removeDisembarkingObjectName(const DtString& objectName); 00073 virtual void clearDisembarkingObjectNames(); 00074 virtual bool disembarkingObjectNamesEmpty() const; 00075 virtual const std::set<DtString>& disembarkingObjectNames() const; 00076 virtual bool disembarkedObjectNameInList(const DtString& objectName) const; 00078 00081 virtual void putSelf(FILE *fp, int indentLevel = 0, 00082 bool writeUnspecified = false, const DtFilename& path = DtReaderWriter::appPath()); 00083 00086 virtual void getSelf(DtlObjPtr args, const DtFilename& searchPath, 00087 const DtVariableBindingsList& variableBindings); 00088 00089 public: 00090 00092 static DtVrfProcessStateRepository* creator (const DtString& rwName, 00093 DtVrfObject* vrfObject, DtReaderWriterRegistry* parentRegistry); 00094 00095 protected: 00096 virtual bool init(); 00097 00104 virtual void createEmbarkationSlotManager(); 00105 00107 virtual void copyCurrentlyDisembarkingObjectNames(const DtRwStringList& other); 00108 00109 protected: 00110 DtEmbarkationSlotManager* mySlotManager; 00111 00114 DtRwString myDisembarkingObjectName; 00115 00118 std::set<DtString> myCurrentlyDisembarkingObjectNames; 00119 00126 DtRwStringList mySerializableCurrentlyDisembarkingObjectNames; 00127 00128 }; 00129 00130 inline DtEmbarkationSlotManager* DtVrfOccupancyDirectorPSR::embarkationSlotManager() 00131 { 00132 if (!mySlotManager) 00133 { 00134 createEmbarkationSlotManager(); 00135 } 00136 00137 return mySlotManager; 00138 } 00139 00140 #endif