ROOT logo
#ifndef HCONTFACT_H
#define HCONTFACT_H

#include "TList.h"
#include "TNamed.h"

class HParSet;

class HContainer : public TNamed {
private:
  HContainer();
protected:
  TList* contexts;       // available contexts for this parameter container
  TString actualContext; // actual context set by the user
public:
  HContainer( const Char_t*, const Char_t*, const Char_t*);
  ~HContainer();
  void addContext(const Char_t*);
  Bool_t setActualContext(const Char_t* c);
  const Char_t* getDefaultContext();
  const Char_t* getActualContext() { return actualContext.Data(); }
  void print();
  TString getConcatName();
  const Char_t* getContext();
  ClassDef(HContainer,0) // class for list elements in class HContFact
};

class HContFact : public TNamed {
protected:
  TList* containers;   // all parameter containers managed by this factory
public:
  HContFact();
  virtual ~HContFact();
  Bool_t addContext(const Char_t* name);
  void print();
  HParSet* getContainer(const Char_t*);
  virtual HParSet* createContainer(HContainer*) {return 0;}
protected:
  const Char_t* getActualContext(const Char_t* name) {
    return ((HContainer*)containers->FindObject(name))->getActualContext();
  }
  ClassDef(HContFact,0) // base class of all factories for parameter containers
};

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