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

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)