![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2002 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: vrfConfigComp.h,v $ $Revision: 1.18 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef DtVrfFileReader_H_ 00013 #define DtVrfFileReader_H_ 00014 00015 #include <vlutil/vlFilename.h> 00016 #include <vlutil/vlHashlist.h> 00017 #include <vlutil/vlHashKeys.h> 00018 #include <vlutil/vlList.h> 00019 #include <vl/hostStructs.h> 00020 #include "vrfutil/addrMap.h" 00021 #include "vrfcontrol/vrfFileParser.h" 00022 #include "vrfutil/scenario.h" 00023 #include "vrfutil/backendMap.h" 00024 00026 00027 #include "vrfcontrol/vrfcontrolDefines.h" 00028 class DT_DLL_vrfcontrol DtVrfConfigurationFileComposer 00029 { 00030 public: 00031 00033 DtVrfConfigurationFileComposer(); 00034 00036 virtual ~DtVrfConfigurationFileComposer(); 00037 00039 virtual bool init(); 00040 00042 virtual bool readObjectMap(DtFilename objectMap); 00043 00046 virtual const DtList& scenarioBackends() const; 00047 00049 virtual DtBackendMap* backendMap(); 00050 00052 virtual DtAddressMap* objectMap(); 00053 00056 virtual bool composeOrderOfBattleFile( 00057 const DtFilename& targetFileName, const DtList& files); 00058 00061 virtual bool composePlanFile( 00062 const DtFilename& targetFileName, const DtList& files); 00063 00066 virtual bool composeGlobalPlanFile( 00067 const DtFilename& targetFileName, const DtList& files); 00068 00071 virtual bool composeHostilityFile( 00072 const DtFilename& targetFileName, const DtList& files); 00073 00076 virtual bool composeScenarioExtrasFile( 00077 const DtFilename& targetFileName, const DtList& files); 00078 00079 00081 virtual bool createMapFile( 00082 const DtFilename& targetFileName, 00083 const DtList& simAddresses, const DtList& oobFiles, 00084 const DtList& planFiles, const DtList& globalPlanFiles, 00085 bool preserveMappings = true); 00086 00087 std::vector<DtFilename>& customComponentAttachmentFilenames(); 00088 const std::vector<DtFilename>& customComponentAttachmentFilenames() const; 00097 virtual bool decompose(const DtFilename& orderOfBattle, 00098 const DtFilename& plan, const DtFilename& globalPlan); 00099 00102 virtual bool decomposeComponentAttachmentFile(const DtFilename& originalFile, 00103 unsigned numBackends); 00105 00106 virtual DtFilename* getOrderOfBattleFile( 00107 const DtSimulationAddress& addr) const; 00108 virtual DtFilename* getPlanFile( 00109 const DtSimulationAddress& addr) const; 00110 virtual DtFilename* getGlobalPlanFile(const DtSimulationAddress& addr) const; 00112 00113 virtual const DtFilename& getComponentAttachmentFile(unsigned idx) const; 00114 00117 virtual const DtFilename& tempDirectory(); 00118 virtual void setTempDirectory(const DtFilename& f); 00119 00120 protected: 00121 00122 virtual void clear(); 00123 virtual bool createBackendFiles( 00124 const DtFilename& origFileName, 00125 DtHashList& createdFiles, const char* prefix = "(\n"); 00126 00129 virtual bool composePlanFileBody(FILE* fp, const DtList& files); 00130 00131 00132 protected: 00133 DtBackendMap* myBackendMap; 00134 DtAddressMap* myObjectMap; 00135 DtAddressMap* myOriginalObjectMap; 00136 DtVrfFileParser myParser; 00137 DtHashlist myAddr2FileMap; 00138 DtHashlist myCreatedPlnFiles; 00139 DtHashlist myCreatedOobFiles; 00140 DtHashlist myCreatedGlobalPlanFiles; 00141 DtHashlist myCreatedHostilityFiles; 00142 std::vector<DtFilename> myCreatedComponentAttachmentFiles; 00143 DtFilename myTempDirectory; 00144 DtList myRequiredBackendAddrs; 00145 00148 static const char theUnknownMappingName[]; 00149 }; 00150 00151 inline std::vector<DtFilename>& DtVrfConfigurationFileComposer::customComponentAttachmentFilenames() 00152 { 00153 return (myCreatedComponentAttachmentFiles); 00154 } 00155 00156 inline const std::vector<DtFilename>& DtVrfConfigurationFileComposer::customComponentAttachmentFilenames() const 00157 { 00158 return (myCreatedComponentAttachmentFiles); 00159 } 00160 #endif