]>
Commit | Line | Data |
---|---|---|
c4109efb | 1 | /* |
2 | * AliJSONReader.h | |
3 | * | |
4 | * Created on: 06.11.2014 | |
5 | * Author: markusfasel | |
6 | */ | |
7 | ||
8 | #ifndef _ALIJSONREADER_H_ | |
9 | #define _ALIJSONREADER_H_ | |
10 | ||
11 | #include "AliJSONData.h" | |
12 | #include <string> | |
13 | #include <vector> | |
14 | ||
15 | class TList; | |
16 | ||
17 | class AliJSONSyntaxTreeNode{ | |
18 | public: | |
19 | AliJSONSyntaxTreeNode(const char *name, AliJSONSyntaxTreeNode *mother); | |
20 | ~AliJSONSyntaxTreeNode(); | |
21 | ||
22 | void AddEntry(AliJSONData *entry); | |
23 | AliJSONSyntaxTreeNode *CreateDaughter(const char *name); | |
24 | void SetOwner(bool owner = true); | |
25 | AliJSONSyntaxTreeNode *GetMotherNode() const { return fMotherNode; } | |
26 | std::vector<AliJSONSyntaxTreeNode *> &GetDaughters() { return fDaughters; }; | |
27 | std::vector<AliJSONData *> &GetEntries() { return fEntries; } | |
28 | const char *GetName() const { return fName.c_str(); } | |
29 | ||
30 | private: | |
31 | AliJSONSyntaxTreeNode(const AliJSONSyntaxTreeNode &ref); | |
32 | AliJSONSyntaxTreeNode *operator=(const AliJSONSyntaxTreeNode &ref); | |
33 | ||
34 | std::string fName; | |
35 | AliJSONSyntaxTreeNode *fMotherNode; | |
36 | std::vector<AliJSONData *> fEntries; | |
37 | std::vector<AliJSONSyntaxTreeNode *> fDaughters; | |
38 | bool fOwner; | |
39 | }; | |
40 | ||
41 | class AliJSONReader { | |
42 | public: | |
43 | AliJSONReader(); | |
44 | virtual ~AliJSONReader(); | |
45 | ||
46 | TList *Decode(const char *jsosnstring) const; | |
47 | ||
48 | private: | |
49 | void AddNodeToList(AliJSONSyntaxTreeNode *node, TList *consumer) const; | |
50 | }; | |
51 | ||
52 | #endif /* PWG_EMCAL_ALIEMCALJSONREADER_H_ */ |