![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: aggregateMoveAlongPSR.h,v $ $Revision: 1.11 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00012 00014 00015 #ifndef DtAggregateMoveAlongPSR_H_ 00016 #define DtAggregateMoveAlongPSR_H_ 00017 00018 #include "vrfobjcore/vrfobjcoreDefines.h" 00019 #include "vrfobjcore/processSR.h" 00020 #include "vrfutil/rwString.h" 00021 #include "vrfutil/rwReal.h" 00022 #include "vrfobjcore/promotionIdObjectNameInfo.h" 00023 #include "vrfutil/rwStringList.h" 00024 #include "vrfutil/rwBoolean.h" 00025 00026 #include <set> 00027 00035 class DT_DLL_vrfobjcore DtAggregateMoveAlongPSR : public DtVrfProcessStateRepository 00036 { 00037 typedef std::map<DtString, int> DtObjectNamePromotionIdMap; 00038 typedef std::map<int, DtString> DtPromotionIdObjectNameMap; 00039 00040 public: 00041 00043 DtAggregateMoveAlongPSR(DtVrfObject* vrfObject, 00044 const DtString& rwName = DtString::nullString(), 00045 DtReaderWriterRegistry* parentRegistry = 0); 00046 00048 DtAggregateMoveAlongPSR(const DtAggregateMoveAlongPSR& orig, 00049 const DtString& rwName = DtString::nullString(), 00050 DtReaderWriterRegistry* parentRegistry = 0); 00051 00053 virtual ~DtAggregateMoveAlongPSR(); 00054 00056 DtAggregateMoveAlongPSR& operator=(const DtAggregateMoveAlongPSR& orig); 00057 00059 virtual DtVrfProcessStateRepository* clone( 00060 const DtString& rwName = DtString::nullString(), 00061 DtReaderWriterRegistry* parentRegistry = 0) const; 00062 00066 virtual DtString type() const; 00067 00070 virtual void setRouteName(const DtString& routeName); 00071 virtual const DtString& routeName() const; 00073 00078 virtual void setTimeToNextMaintainFormationTick(DtTime simTime); 00079 virtual DtTime timeToNextMaintainFormationTick() const; 00081 00083 virtual DtString lookupRouteName(int promotionId) const; 00084 00086 virtual DtString lookupRouteName(const DtString& objectName) const; 00087 00089 virtual void clearPromotionIdRouteNameList(); 00090 00092 virtual void addPromotionIdRouteNameEntry(int promotionId, 00093 const DtString& routeName); 00094 00096 virtual const DtPromotionIdObjectNameMap& promotionIdRouteNameList() const; 00097 00099 virtual void addTaskedSubordinateNamePromotionIdEntry( 00100 const DtString& objectName, int promotionId); 00101 00103 virtual void removeTaskedSubordinateName(const DtString& objectName); 00104 00107 virtual bool isATaskedSubordinate(const DtString& objectName); 00108 00110 virtual void removeRoute(const DtString& routeName); 00111 00113 virtual void clearTaskSubordinateNames(); 00114 00116 virtual bool taskedSubordinateNamesEmpty() const; 00117 00120 virtual void setMovingToRoute(bool trueOrFalse); 00121 virtual bool movingToRoute() const; 00123 00125 virtual const DtObjectNamePromotionIdMap& taskedSubordinateNames() const; 00126 00129 virtual void setRouteIsDiscovered(bool value); 00130 virtual bool routeIsDiscovered() const; 00132 00135 virtual void putSelf(FILE *fp, int indentLevel = 0, 00136 bool writeUnspecified = false, 00137 const DtFilename& path = DtReaderWriter::appPath()); 00138 00141 virtual void getSelf(DtlObjPtr args, const DtFilename& searchPath, 00142 const DtVariableBindingsList& variableBindings); 00143 00145 static DtVrfProcessStateRepository* creator (const DtString& rwName, 00146 DtVrfObject* vrfObject, DtReaderWriterRegistry* parentRegistry); 00147 00148 protected: 00149 00151 DtPromotionIdObjectNameMap myPromotionIndexRouteNameMap; 00152 00154 DtObjectNamePromotionIdMap myCurrentlyTaskedSubordinateNames; 00155 00157 DtRwString myRouteName; 00158 00163 DtPromotionIdObjectNameList myPromotionIdRouteNameList; 00164 00169 DtPromotionIdObjectNameList myPromotionIdEntityNameList; 00170 00172 DtRwReal myTimeToNextMaintainFormationTick; 00173 00176 DtRwBoolean myMovingToRoute; 00177 00179 DtRwBoolean myRouteIsDiscovered; 00180 }; 00181 00182 #endif