![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00009 #pragma once 00010 00011 #include <vrfobjcore/processSR.h> 00012 #include <vrfutil/rwString.h> 00013 #include <vrfutil/rwReal.h> 00014 #include <bhaveSim/bhaveSimDefines.h> 00015 #include <vrfmsgs/rwSpawnData.h> 00016 #include "bhaveSim/rwTrafficSinkListEntry.h" 00017 #include <vrfutil/rwTemplatedList.h> 00018 #include <vrfutil/rwObjectTypeList.h> 00019 00020 namespace BHAVE 00021 { 00022 00023 const char DtSpawnControllerPSRType[] = "spawn-controller-psr"; 00024 00027 class DT_DLL_bhaveSim DtSpawnControllerPSR : public DtVrfProcessStateRepository 00028 { 00029 public: 00030 00032 DtSpawnControllerPSR(DtVrfObject* vrfObject, 00033 const DtString& rwName = DtString::nullString(), 00034 DtReaderWriterRegistry* parentRegistry = 0); 00035 00037 DtSpawnControllerPSR(const DtSpawnControllerPSR& orig, 00038 const DtString& rwName = DtString::nullString(), 00039 DtReaderWriterRegistry* parentRegistry = 0); 00040 00042 virtual ~DtSpawnControllerPSR(); 00043 00045 DtSpawnControllerPSR& operator=(const DtSpawnControllerPSR& orig); 00046 00048 virtual DtVrfProcessStateRepository* clone( 00049 const DtString& rwName = DtString::nullString(), 00050 DtReaderWriterRegistry* parentRegistry = 0) const; 00051 00053 virtual DtString type() const; 00054 00056 00057 virtual void setNextCreationTime(double t); 00058 virtual double nextCreationTime() const; 00060 00067 virtual void setLastCycleStartTime(const DtTime start); 00068 virtual DtTime lastCycleStartTime() const; 00070 00078 virtual void setNextCycleStartTime(const DtTime start); 00079 virtual DtTime nextCycleStartTime() const; 00081 00084 00085 virtual DtRwTemplatedListPtr<DtRwTrafficSinkListEntry>& trafficAndSinkList(); 00086 virtual const DtRwTemplatedListPtr<DtRwTrafficSinkListEntry>& trafficAndSinkList() const; 00087 virtual void addTraffic(const DtString& trafficName, const DtString& sinkName); 00089 00100 virtual void setTemplateName(const DtString & name); 00101 virtual const DtString& templateName() const; 00102 00111 00114 virtual void setSpawnParameters (const DtRwSpawnData & params); 00115 virtual const DtRwSpawnData & spawnParameters () ; 00117 00120 virtual void setIsTimeBased (const bool tB); 00121 virtual bool isTimeBased() const; 00123 00126 virtual void setUsesClockTime( const bool cT); 00127 virtual bool usesClockTime()const; 00129 00130 00132 00133 virtual void setSpawnStartTime(double t); 00134 virtual double spawnStartTime() const; 00136 00138 00139 virtual void setSpawnEndTime(double t); 00140 virtual double spawnEndTime() const; 00142 00144 00145 virtual void setspawnPeriod(double t); 00146 virtual double spawnPeriod() const; 00148 00150 00151 virtual void setSpawnVariance(double t); 00152 virtual double spawnVariance() const; 00154 00155 00158 virtual void setIsCyclical(const bool c); 00159 virtual bool isCyclical() const; 00161 00164 virtual void setCyclePeriod(const DtReal cP); 00165 virtual DtReal cyclePeriod() const; 00167 00170 virtual void setBurstPeriodVariance(const DtReal bpv); 00171 virtual DtReal burstPeriodVariance() const; 00173 00176 virtual void setDutyCycle(const DtReal dC); 00177 virtual DtReal dutyCycle() const; 00179 00186 virtual void setStartOffset(const DtReal sO); 00187 virtual DtReal startOffset() const; 00189 00190 00195 virtual void setSpecifySpeed(bool); 00196 virtual bool specifySpeed() const; 00198 00200 00201 virtual void setSpawnMaxCount(unsigned n); 00202 virtual unsigned spawnMaxCount() const; 00204 00206 00207 virtual void setSpawnMinSpeed(double t); 00208 virtual double spawnMinSpeed() const; 00210 00212 00213 virtual void setSpawnMaxSpeed(double t); 00214 virtual double spawnMaxSpeed() const; 00216 00218 00219 00220 virtual const DtRwObjectTypeInfoList& spawnObjectTypes() const; 00221 virtual void setSpawnObjectTypes(const DtRwObjectTypeInfoList &typeList); 00223 00225 00226 virtual void setCreateOnVectorNetwork(bool t); 00227 virtual bool createOnVectorNetwork() const; 00229 00232 virtual const DtRwStringList& sinkNodeNames() const; 00233 virtual void setSinkNodeNames(const DtRwStringList& sinkNodes); 00238 virtual void removeSinkNode(const DtString& delName); 00242 virtual void renameSinkNode(const DtString& oldName, 00243 const DtString& newName); 00245 00248 virtual const DtPlan& entityPlan() const; 00249 virtual void setEntityPlan(DtPlan& plan); 00251 00253 00254 public: 00255 00257 static DtVrfProcessStateRepository* creator (const DtString& rwName, 00258 DtVrfObject* vrfObject, DtReaderWriterRegistry* parentRegistry); 00259 00260 protected: 00261 DtRwReal myNextCreationTime; 00262 DtRwReal myLastCycleStartTime; 00263 DtRwReal myNextCycleStartTime; 00264 DtRwTemplatedListPtr<DtRwTrafficSinkListEntry> myTrafficSinkList; 00265 00266 DtRwSpawnData mySpawnParameters; 00267 00271 const DtRwSpawnData *myTemplate; 00272 }; 00273 00274 } //namespace BHAVE