ROOT logo
/*
 * AliJSONReader.h
 *
 *  Created on: 06.11.2014
 *      Author: markusfasel
 */

#ifndef _ALIJSONREADER_H_
#define _ALIJSONREADER_H_

#include "AliJSONData.h"
#include <string>
#include <vector>

class TList;

class AliJSONSyntaxTreeNode{
public:
  AliJSONSyntaxTreeNode(const char *name, AliJSONSyntaxTreeNode *mother);
  ~AliJSONSyntaxTreeNode();

  void AddEntry(AliJSONData *entry);
  AliJSONSyntaxTreeNode *CreateDaughter(const char *name);
  void SetOwner(bool owner = true);
  AliJSONSyntaxTreeNode *GetMotherNode() const { return fMotherNode; }
  std::vector<AliJSONSyntaxTreeNode *> &GetDaughters() { return fDaughters; };
  std::vector<AliJSONData *> &GetEntries() { return fEntries; }
  const char *GetName() const { return fName.c_str(); }

private:
  AliJSONSyntaxTreeNode(const AliJSONSyntaxTreeNode &ref);
  AliJSONSyntaxTreeNode *operator=(const AliJSONSyntaxTreeNode &ref);

  std::string fName;
  AliJSONSyntaxTreeNode *fMotherNode;
  std::vector<AliJSONData *> fEntries;
  std::vector<AliJSONSyntaxTreeNode *> fDaughters;
  bool fOwner;
};

class AliJSONReader {
public:
  AliJSONReader();
  virtual ~AliJSONReader();

  TList *Decode(const char *jsosnstring) const;

private:
  void AddNodeToList(AliJSONSyntaxTreeNode *node, TList *consumer) const;
};

#endif /* PWG_EMCAL_ALIEMCALJSONREADER_H_ */
 AliJSONReader.h:1
 AliJSONReader.h:2
 AliJSONReader.h:3
 AliJSONReader.h:4
 AliJSONReader.h:5
 AliJSONReader.h:6
 AliJSONReader.h:7
 AliJSONReader.h:8
 AliJSONReader.h:9
 AliJSONReader.h:10
 AliJSONReader.h:11
 AliJSONReader.h:12
 AliJSONReader.h:13
 AliJSONReader.h:14
 AliJSONReader.h:15
 AliJSONReader.h:16
 AliJSONReader.h:17
 AliJSONReader.h:18
 AliJSONReader.h:19
 AliJSONReader.h:20
 AliJSONReader.h:21
 AliJSONReader.h:22
 AliJSONReader.h:23
 AliJSONReader.h:24
 AliJSONReader.h:25
 AliJSONReader.h:26
 AliJSONReader.h:27
 AliJSONReader.h:28
 AliJSONReader.h:29
 AliJSONReader.h:30
 AliJSONReader.h:31
 AliJSONReader.h:32
 AliJSONReader.h:33
 AliJSONReader.h:34
 AliJSONReader.h:35
 AliJSONReader.h:36
 AliJSONReader.h:37
 AliJSONReader.h:38
 AliJSONReader.h:39
 AliJSONReader.h:40
 AliJSONReader.h:41
 AliJSONReader.h:42
 AliJSONReader.h:43
 AliJSONReader.h:44
 AliJSONReader.h:45
 AliJSONReader.h:46
 AliJSONReader.h:47
 AliJSONReader.h:48
 AliJSONReader.h:49
 AliJSONReader.h:50
 AliJSONReader.h:51
 AliJSONReader.h:52