![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2012 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 #pragma once 00007 00010 00011 #include "vrfutil/vrfutilDefines.h" 00012 #include "vrfutil/scenarioMergeData.h" 00013 00014 class DtScenarioMergeProject; 00015 class DtFilename; 00016 class DtlObjPtr; 00017 00029 class DT_DLL_vrfutil DtScenarioMergeDirector 00030 { 00031 public: 00032 00033 enum FileType 00034 { 00035 FILE_NONE = 0, 00036 FILE_GPL, 00037 FILE_OMP, 00038 FILE_OOB, 00039 FILE_OVL, 00040 FILE_PLN, 00041 FILE_SGR, 00042 FILE_XTR 00043 }; 00044 00045 public: 00046 00048 DtScenarioMergeDirector(); 00049 00051 virtual ~DtScenarioMergeDirector(); 00052 00054 DtScenarioMergeDirector( 00055 const DtScenarioMergeDirector& orig); 00056 00058 DtScenarioMergeDirector& operator=( 00059 const DtScenarioMergeDirector& orig); 00060 00061 00062 public: 00066 virtual void addInputScenario(const DtFilename& scenarioFile); 00067 00073 virtual void setOutputScenarioName(const DtFilename& scenarioFile); 00074 00080 virtual bool executeMerge(); 00081 00091 virtual DtlObjPtr arrangeDesignators(const char *pMergedOobStrBuff); 00092 00096 virtual DtString bufferedMtlStringReplace(const char *pToFindString, 00097 const char *pReplaceWithString, 00098 const char *pInFileName); 00099 00102 virtual void clear(); 00103 00107 virtual bool checkScenarioMergeData(); 00108 00113 virtual void createNewProject(); 00114 00123 virtual int computeMtlBufferOffset(const char *pBuffer, 00124 unsigned numFieldsToSkip, 00125 bool bFirstFieldIsList = true); 00126 00135 virtual int lengthUnusedData(const char* pBuffer); 00136 00141 virtual bool deconflict(); 00142 00147 bool deconflictMtlStream(const DtString& sScenarioName, 00148 const DtlObjPtr& oob); 00149 00155 virtual bool doAllSubstitutions(); 00156 virtual bool doSubstitutions(FileType ftype, 00157 DtString& sResultsBuffer); 00158 00163 virtual bool doSimpleFileTransfer(const DtFilename& sFrom, 00164 const DtFilename& sTo); 00165 00172 virtual bool getFilenameForType( 00173 FileType ftype, 00174 const DtScenario& scn, 00175 DtFilename& fnameOut) const; 00176 00182 virtual bool loadProject(); 00183 virtual bool loadProject(const DtFilename& fname); 00184 00189 virtual bool loadScenarioMergeData(); 00190 virtual bool loadScenarioMergeData(const DtFilename& fname); 00191 00195 virtual void mergeAdditionalOpdLists(DtScenario& outputScenario); 00196 00200 virtual void mergeSimulationModelSetLists(DtScenario& outputScenario); 00201 00205 virtual DtScenarioMergeProject* project(); 00206 virtual const DtScenarioMergeProject* project() const; 00207 00215 virtual void replaceObjectNames(DtString& sBuffer, 00216 const DtString& sForScnName, 00217 const char *pFormatString="%s"); 00218 00222 virtual void reportObjectNameSubstitutions() const; 00223 00228 virtual bool saveAsProject(const DtFilename& fname); 00229 virtual bool saveProject(); 00230 00233 virtual DtScenarioMergeData& scenarioMergeData(); 00234 virtual const DtScenarioMergeData& scenarioMergeData() const; 00235 00240 virtual bool validate(const DtScenario& keyScenario, 00241 const DtScenario& otherScenario); 00242 00243 protected: 00244 00252 virtual void readOOBFile(char* pReadBuffer, FILE* fpIn, bool isKeyScenario); 00253 00260 virtual bool acceptOOBObject(const std::string& objStr, bool isKeyScenario) 00261 const; 00262 00263 virtual bool transferScenarioFiles(DtScenario& outputScenario, 00264 const DtFilename &outputName); 00265 00266 00267 protected: 00268 00269 00270 protected: 00271 00272 DtScenarioMergeData myScenarioMergeData; 00273 DtScenarioMergeProject *pMyProject; 00274 00275 };