Dynalib Utils
Manager.h
Go to the documentation of this file.
1 #ifndef KAML_MANAGER_H
2 #define KAML_MANAGER_H
3 
4 #include "../String.h"
5 #include "../DynaHashMap.h"
6 #include "../IntWrapper.h"
7 #include "../Parser/Tokenizer.h"
8 #include "../Parser/Token.h"
9 #include "File.h"
10 #include "../Graph/Node.h"
11 
12 using namespace Graph;
13 
14 class DynaLogger;
15 class KAMLParser;
16 class JSONParser;
17 class JSONGenerator;
18 
19 namespace KAML {
20 
21  MAKE_MAPTYPE_DEF(String, File, File);
22 
23  class Manager {
24  private:
25  static Manager* _instance;
26  FileMap* _fileMap = nullptr;
27 
28  Manager();
29 
30  public:
31  static Manager* getInstance();
32  static void deleteInstance();
33  static File& loadFile(const String& fileName);
34  static void closeAllFiles();
35 
36  virtual ~Manager();
37 
38  void shutdown();
39  File& createNewFile(const String& fileName);
40  File& load(const String& fileName);
41  File* findOpened(const String& fileName);
42  void close(const String& fileName);
43  bool parseKAML(String& kamlStr, Node* rootNode);
44  bool parseJSON(String& jsonStr, Node* rootNode);
45  String genJSON(Node& node, bool pretty = false);
46  void closeAll();
47  };
48 }
49 
50 #endif
Definition: String.h:60
Definition: Node.h:47
Definition: DynaLogger.h:321
Definition: File.cpp:10
MAKE_MAPTYPE_DEF(String, Node, Node)
Definition: Node.cpp:13
Definition: File.h:14
Definition: Manager.h:23