VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfFileParser.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include "vrfutil/vrfutilDefines.h"
12 #include <mtl/mtl.h>
13 #include <vlutil/vlFilename.h>
14 #include <vlutil/vlHashlist.h>
15 #include <vrfutil/rwUUID.h>
17 
18 #include <map>
19 #include <set>
20 #include <tbb/spin_mutex.h>
21 
24 
25 class DtlInputStream;
26 class DtVrfCallbackQueue;
27 class DtScenario;
29 
31 {
32 public:
33 
35 
36  virtual ~DtVrfFileParser();
37 
39  virtual bool loadOrderOfBattleFile(const DtScenario&);
40 
43  virtual bool parseFile(const DtFilename& filename, bool includingDataBuffer = true);
44 
46  virtual bool parseBuffer(const DtString& buffer, bool includingDataBuffer = true);
47 
49  virtual bool parseOrderOfBattleFile(const DtlObjPtr& oobList, bool includingDataBuffer = true);
50  virtual bool parseOrderOfBattleObject(const DtlObjPtr& args, bool includingDataBuffer = true);
51 
54  virtual bool parsePlanFile(const DtlObjPtr& plnList, bool includingDataBuffer = true);
55 
56  virtual bool parseGlobalPlanFile(const DtlObjPtr& plnList, bool includingDataBuffer = true);
57 
59  virtual void parsePlan(const DtlObjPtr& args, bool includingDataBuffer = true);
60 
61  virtual const std::set<DtUUID>& uuids() const;
62  virtual const std::string& getObjPtr(const DtUUID&) const;
63 
68  virtual bool getData(const DtUUID& uuid, const std::set<DtString>& tokens, DtRwVariableBindings&) const;
69  static void addTokenToReaderWriterType(const DtString&, const DtString&);
70 
72  virtual bool hasGlobalWeatherObject() const
73  {
74  return myHasGlobalWeatherObject;
75  }
76 
78  virtual bool hasGlobalDynamicTerrainObject() const
79  {
80  return myHasGlobalDynamicTerrainObject;
81  }
82 
83  virtual void clear();
84 
85  typedef std::map<DtString, DtString> TokenToReaderWriterTypeMap;
86 
88  virtual void setSimulationModelSets(const DtRwNLengthStringVector&);
90  {
91  return mySimulationModelSets;
92  }
93 
94 protected:
96  virtual bool decomposeFromZipFile(const DtFilename& zip, const DtFilename& fileToParse, bool includingDataBuffer = true);
97 
98  virtual void addUUID(const DtUUID&, const DtlObjPtr& args, bool includingDataBuffer = true);
99 
100  virtual bool parseFile(DtlInputStream* f, bool includingDataBuffer = true);
101  virtual std::string argsToStdString(const DtlObjPtr& args) const;
102  virtual void printToStream(std::ostringstream& dataStream, const DtlObjPtr& args) const;
103  virtual void printList(std::ostringstream& dataStream, const DtlObjPtr& args) const;
104  virtual bool getData(DtlObjPtr objPtr, std::set<DtString>& tokens, DtRwVariableBindings&) const;
105 
106 protected:
107  std::map<DtUUID, std::string> myUUID2DataMap;
108  std::map<DtUUID, DtlObjPtr> myUUID2ObjPtrMap;
109  std::set<DtUUID> myUUIDsList;
110 
112 
114  tbb::spin_mutex myMutex;
115 
117 
119  DtlObjPtr* myMtlFile = nullptr;
120 };
UUID is a unique ID wrapper class.
Definition: uuid.h:59
std::map< DtUUID, std::string > myUUID2DataMap
Definition: vrfFileParser.h:107
Definition: scenario.h:52
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
std::set< DtUUID > myUUIDsList
Definition: vrfFileParser.h:109
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:32
Contains the DtUUID class declaration.
std::map< DtUUID, DtlObjPtr > myUUID2ObjPtrMap
Definition: vrfFileParser.h:108
bool myHasGlobalWeatherObject
Definition: vrfFileParser.h:111
ReaderWriter object that maintains a list of reader-writer variable bindings. It keeps a list of name...
Definition: rwVariableBindings.h:27
std::map< DtString, DtString > TokenToReaderWriterTypeMap
Definition: vrfFileParser.h:85
static TokenToReaderWriterTypeMap theTokenToReaderWriterTypeMap
Definition: vrfFileParser.h:116
tbb::spin_mutex myMutex
Definition: vrfFileParser.h:114
virtual bool hasGlobalWeatherObject() const
Returns whether or not a global weather object was found in this file. Only valid for order of battle...
Definition: vrfFileParser.h:72
virtual bool hasGlobalDynamicTerrainObject() const
Returns whether or not a global dynamic terrain controller was found in this file. Only valid for order of battle files.
Definition: vrfFileParser.h:78
const DtRwNLengthStringVector & simulationModelSets() const
Definition: vrfFileParser.h:89
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
DtRwNLengthStringVector mySimulationModelSets
Definition: vrfFileParser.h:118
Definition: vrfFileParser.h:30
bool myHasGlobalDynamicTerrainObject
Definition: vrfFileParser.h:113

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)