VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/occupancyDirectorPSR.h
Go to the documentation of this file.
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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)