VR-Forces 4.0.4 Class Documentation
include/vrfutil/scenario.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2000 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: scenario.h,v $ $Revision: 1.12 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef DtScenario_H_
00013 #define DtScenario_H_
00014 
00015 #include "vrfutil/rdrWritr.h"
00016 #include <vlutil/vlString.h>
00017 #include <vlutil/vlFilename.h>
00018 #include "vrfutil/rwString.h"
00019 #include "vrfutil/rwBoolean.h"
00020 #include "vrfutil/rwReal.h"
00021 #include "vrfutil/rwUnsigned.h"
00022 #include "vrfutil/rwInt.h"
00023 #include "vrfutil/vlClock.h"
00024 #include "vrfutil/strIntMapper.h"
00025 #include "vrfutil/rwNLengthStringVector.h"
00026 #include "vrfutil/rwKeyValueList.h"
00028 #include <vrfExtProtocol/msgTypes.h>
00029 
00037 
00039 
00042 typedef bool (*DtPreserveMappingsFcn)(void* usr);
00043 
00044 #include "vrfutil/vrfutilDefines.h"
00045 class DT_DLL_vrfutil DtScenario : public DtReaderWriter
00046 {
00047 public:
00048 
00050    DtScenario();
00051 
00053    DtScenario(const DtString & name,
00054       DtReaderWriterRegistry * const parentRegistry = 0);
00055 
00057    virtual ~DtScenario();
00058 
00060    DtScenario(const DtScenario& orig);
00061 
00063    DtScenario& operator=(const DtScenario& orig);
00064 
00066    virtual bool init();
00067 
00069    virtual bool readScenarioFile(const DtFilename& filename);
00070 
00072    virtual bool save();
00073    
00076    virtual bool save(const DtFilename& filename, 
00077       bool saveObjectMap = true);
00078 
00081    virtual DtScenario* clone() const;
00082 
00087    virtual void setComponentAttachmentRule(int rule);
00088    virtual int componentAttachmentRule() const;
00089 
00091    virtual void setComponentAttachmentTableFilename(const DtFilename& filename);
00092    virtual const DtFilename& componentAttachmentTableFilename() const;
00095    virtual void setTerrainDatabaseFilename(const DtFilename& filename);
00096    virtual const DtFilename& terrainDatabaseFilename() const;
00097 
00099    virtual void setGuiTerrainDatabaseFilename(const DtFilename& filename);
00100    virtual const DtFilename& guiTerrainDatabaseFilename() const;
00101 
00103    virtual void setOrderOfBattleFilename(const DtFilename& filename);
00104    virtual DtFilename orderOfBattleFilename() const;
00105 
00107    virtual void setPlanFilename(const DtFilename& filename);
00108    virtual DtFilename planFilename() const;
00109 
00111 
00112    virtual void setGlobalPlanFilename(const DtFilename& filename);
00113    virtual DtFilename globalPlanFilename() const;
00115 
00117    virtual void setParameterDatabaseFilename(const DtFilename& filename);
00118    virtual const DtFilename& parameterDatabaseFilename() const;
00119 
00121    virtual void setPhysicalWorldFilename(const DtFilename& filename);
00122    virtual const DtFilename& physicalWorldFilename() const;
00123 
00125    virtual void setObjectMapFilename(const DtFilename& filename);
00126    virtual DtFilename objectMapFilename() const;
00127 
00130    virtual void setOverlayFilename(const DtFilename& filename);
00131    virtual DtFilename overlayFilename() const;
00132 
00134    virtual void setSelectionGroupsFilename(const DtFilename& filename);
00135    virtual DtFilename selectionGroupsFilename() const;
00136 
00139    virtual void setSymbolMapFilename(const DtFilename& filename);
00140    virtual const DtFilename& symbolMapFilename() const;
00141 
00144    virtual void setCreateMenuFilename(const DtFilename& filename);
00145    virtual const DtFilename& createMenuFilename() const;
00146 
00150    virtual void setForceHostilityFilename(const DtFilename& filename);
00151    virtual DtFilename forceHostilityFilename() const;
00152 
00156    virtual void setScenarioExtrasFilename(const DtFilename& f);
00157    virtual DtFilename scenarioExtrasFilename() const;
00159 
00161    virtual void setTimeMultiplier(DtReal multiplier);
00162    virtual DtReal timeMultiplier() const;
00163 
00165    virtual void setAutoReorganize(const bool& flag);
00166    virtual const bool& autoReorganize() const;
00167 
00169    virtual void setRandomNumberSeed(unsigned numberSeed);
00170    virtual unsigned randomNumberSeed() const;
00171 
00173    virtual DtString frameRateModeString() const;
00174    virtual DtFrameMode frameRateMode() const;
00175    virtual void setFrameRateModeString(DtString value);
00176    virtual void setFrameRateMode(DtFrameMode value);
00177 
00179    virtual DtReal frameDeltaTime() const;
00180    virtual void setFrameDeltaTime(DtReal value);
00181 
00184    virtual DtTime runDurationTime() const;
00185    virtual void setRunDurationTime(DtTime time);
00186 
00188    virtual void setSimTime(DtTime time);
00189    virtual DtTime simTime() const;
00190 
00192    virtual void setExerciseStartTime(DtTime time);
00193    virtual DtTime exerciseStartTime() const;
00194 
00198    virtual DtRwNLengthStringVector& additionalOpdFilenames();
00199    virtual const DtRwNLengthStringVector& additionalOpdFilenames() const;
00200    virtual void addAdditionalOpdFilename(const DtString&);
00201    virtual void removeAdditonalOpdFilename(int iIndex);
00202    virtual void setAdditionalOpdFilenames(const DtRwNLengthStringVector&);
00204 
00207    virtual void setScenarioDescription(const DtString&);
00208    virtual DtString scenarioDescription() const;
00209 
00215    virtual DtRwNLengthStringVector& simulationModelSetFilenames();
00216    virtual const DtRwNLengthStringVector& simulationModelSetFilenames() const;
00217    virtual void addSimulationModelSetFilename(const DtString&);
00218    virtual void removeSimulationModelSetFilename(int iIndex);
00219    virtual void setSimulationModelSetFilenames(const DtRwNLengthStringVector&);
00221 
00222    virtual DtRwKeyValueList& scenarioData();
00223    virtual const DtRwKeyValueList& scenarioData() const;
00224 
00227 
00228    virtual DtString scenarioName() const;
00229    virtual void setScenarioName(const DtString& name);
00230    virtual bool scenarioNameSpecified() const;
00232 
00238    static DtFilename validTerrainFile(const DtFilename&);
00239 
00241    virtual bool isParameterDatabaseRwStringSpecified();
00242    virtual bool isPhysicalWorldRwStringSpecified();
00243    virtual bool isOrderOfBattleRwStringSpecified();
00244    virtual bool isOverlayRwStringSpecified();
00245    virtual bool isSelectionGroupsRwStringSpecified();
00246    virtual bool isSymbolMapRwStringSpecified();
00247    virtual bool isCreateMenuRwStringSpecified();
00248    virtual bool isPlanRwStringSpecified();
00249    virtual bool isObjectMapRwStringSpecified();
00250    virtual bool isTimeMultiplierSpecified();
00251    virtual bool isAutoReorganizeRwStringSpecified();
00252    virtual bool isRandomNumberSeedSpecified();
00253    virtual bool isFrameRateModeSpecified();
00254    virtual bool isFrameDeltaTimeSpecified();
00255    virtual bool isSimTimeSpecified();
00256    virtual bool isExerciseStartTimeSpecified();
00257    virtual bool isForceHostilityRWStringSpecified();
00258    virtual bool isScenarioExtrasRWStringSpecified();
00259 
00260    virtual void setFilename(const DtFilename&);
00261    virtual const DtFilename& filename() const;
00262 
00264    virtual bool writeScenarioFile(const DtFilename & filename);
00265 
00268    virtual void putSelf(FILE *fp, int indentLevel = 0, bool writeUnspecified = false,
00269       const DtFilename& path = DtReaderWriter::appPath());
00270 
00273    virtual void getSelf(DtlObjPtr args, const DtFilename& searchPath,
00274       const DtVariableBindingsList& variableBindings);  
00275 
00279    virtual bool isValid(bool allowEmptyFilenames = true, DtString* retMessage = 0) const;
00280 
00282    virtual double version() const;
00283 
00285    virtual bool relativeToScenarioFile() const;
00286 
00288    virtual void setToCurrentVersion();
00289 
00291    static double currentScenarioVersion();
00292 
00293 public:
00294 
00295    static DtString getFrameModeNameFromFrameModeType(DtFrameMode);
00296 
00297    static DtFrameMode getFrameModeTypeFromFrameModeName(
00298       const DtString& frameModeName);
00299 
00300 protected:
00311    virtual DtFilename absoluteFilename(const DtFilename&) const;
00312 
00313 protected:
00314 
00315    DtRwInt    myComponentAttachmentRule;
00316 
00317    DtFilename myComponentAttachmentTableFilename;
00318    DtRwString myComponentAttachmentTableRwString;
00319    DtFilename myFilename;
00320 
00321    DtFilename myTerrainDatabaseFilename;
00322    DtRwString myTerrainDatabaseRwString;
00323 
00324    DtFilename myPhysicalWorldFilename;
00325    DtRwString myPhysicalWorldRwString;
00326 
00327    DtFilename myGuiTerrainDatabaseFilename;
00328    DtRwString myGuiTerrainDatabaseRwString;
00329 
00330    DtFilename myOrderOfBattleFilename;
00331    DtRwString myOrderOfBattleRwString;
00332 
00333    DtFilename myPlanFilename;
00334    DtRwString myPlanRwString;
00335 
00336    DtFilename myGlobalPlanFilename;
00337    DtRwString myGlobalPlanRwString;
00338 
00339    DtFilename myParameterDatabaseFilename;
00340    DtRwString myParameterDatabaseRwString;
00341 
00342    DtFilename myOverlayFilename;
00343    DtRwString myOverlayRwString;
00344 
00345    DtFilename mySelectionGroupsFilename;
00346    DtRwString mySelectionGroupsRwString;
00347 
00348    DtFilename mySymbolMapFilename;
00349    DtRwString mySymbolMapRwString;
00350 
00351    DtFilename myCreateMenuFilename;
00352    DtRwString myCreateMenuRwString;
00353 
00354    DtFilename myObjectMapFilename;
00355    DtRwString myObjectMapRwString;
00356 
00357    DtFilename myForceHostilityFilename;
00358    DtRwString myForceHostilityRwString;
00359 
00360    DtFilename myScenarioExtrasFilename;
00361    DtRwString myScenarioExtrasRWString;
00362 
00363    DtRwReal myTimeMultiplier;
00364 
00365    bool myAutoReorganize;
00366    DtRwBoolean myAutoReorganizeRW;
00367 
00368    DtRwUnsigned myRandomNumberSeed;
00369 
00370    DtRwString myFrameRateModeString;
00371    DtFrameMode myFrameRateMode;
00372    DtRwReal myFrameDeltaTime;
00373 
00374    DtTime myRunDurationTime;
00375 
00376    DtRwReal mySimTime;
00377    DtRwReal myExerciseStartTime;
00378 
00379    DtRwNLengthStringVector myAdditionalOpdFilenames;
00380    DtRwNLengthStringVector mySimulationModelSetFilenames;
00381 
00382    DtRwString myScenarioName;
00383 
00384    DtRwKeyValueList myScenarioData;
00385 
00387    DtRwReal  myVersion;
00388 
00389 protected:
00390 
00391    static DtString thePhysicalWorldFilenameExtension;
00392    static DtString theOrderOfBattleExtension;
00393    static DtString theOverlayExtension;
00394    static DtString theSelectionGroupsExtension;
00395    static DtString theSymbolMapExtension;
00396    static DtString theCreateMenuExtension;
00397    static DtString thePlanExtension;
00398    static DtString theGlobalPlanExtension;
00399    static DtString theObjectMapExtension;
00400    static DtString theParameterDatabaseExtension;
00401    static DtString theFileExtension;
00402    static DtString theForceHostilityExtension;
00403    static DtString theScenarioDataExtension;
00404 
00405    static double   theScenarioVersion;
00406 };
00407 
00408 class DtAddressMap;
00409 class DtList;
00410 class DtBackendMap;
00411 
00412 typedef bool (*DtLoadBalancingFcn)(DtAddressMap* map, const DtList* backends, void* usr);
00413 typedef bool (*DtRemappingFcn)(DtBackendMap* map, void* usr);
00414 
00415 class DT_DLL_vrfutil DtLoadBalancingFcnInfo
00416 {
00417 public:
00418    DtLoadBalancingFcnInfo();
00419    DtLoadBalancingFcnInfo(const std::string&, DtLoadBalancingFcn fcn, void*);
00420    DtLoadBalancingFcnInfo(const DtLoadBalancingFcnInfo&);
00421 
00422    DtLoadBalancingFcnInfo& operator=(const DtLoadBalancingFcnInfo&);
00423 
00424    std::string          myLoadBalancer;
00425    DtLoadBalancingFcn   myLoadBalancingFcn;
00426    void*                myLoadBalancingUserData;
00427 };
00428 
00429 class DT_DLL_vrfutil DtScenarioLoadInformation
00430 {
00431 public:
00432    DtScenarioLoadInformation();
00433    DtScenarioLoadInformation(bool createAsNew, DtScenario*, DtLoadBalancingFcnInfo, DtRemappingFcn fcn = 0, void* remappingUsrData = 0,
00434       int startTimeOfDay = 12 * 3600);
00435    DtScenarioLoadInformation(const DtScenarioLoadInformation&);
00436 
00437    DtScenarioLoadInformation& operator=(const DtScenarioLoadInformation&);
00438 
00439 public:
00440    bool                    myCreateAsNew;
00441    DtScenario*             myScenario;
00442    DtLoadBalancingFcnInfo  myInfo;
00443    DtRemappingFcn          myRemappingFcn;
00444    void*                   myRemappingUserData;
00445    int                     myStartTimeOfDay;
00446 };
00447 
00448 #endif
00449 

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)