ROOT logo
#ifndef ALI_CDB_LOCAL_H
#define ALI_CDB_LOCAL_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/////////////////////////////////////////////////////////////////////
//                                                                 //
//  class AliCDBLocal						   //
//  access class to a DataBase in a local storage                  //
//                                                                 //
/////////////////////////////////////////////////////////////////////

#include "AliCDBStorage.h"
#include "AliCDBManager.h"

class AliCDBLocal: public AliCDBStorage {
  friend class AliCDBLocalFactory;

  public:

  virtual Bool_t IsReadOnly() const {return kFALSE;};
  virtual Bool_t HasSubVersion() const {return kTRUE;};
  virtual Bool_t Contains(const char* path) const;
  virtual Bool_t IdToFilename(const AliCDBId& id, TString& filename) const;
  virtual void SetRetry(Int_t /* nretry */, Int_t /* initsec */);

  protected:

  virtual AliCDBEntry*    GetEntry(const AliCDBId& queryId);
  virtual AliCDBId* 	GetEntryId(const AliCDBId& queryId);
  virtual TList* 		GetEntries(const AliCDBId& queryId);
  virtual Bool_t 		PutEntry(AliCDBEntry* entry, const char* mirrors="");
  virtual TList* 		GetIdListFromFile(const char* fileName);

  private:

  AliCDBLocal(const AliCDBLocal & source);
  AliCDBLocal & operator=(const AliCDBLocal & source);
  AliCDBLocal(const char* baseDir);
  virtual ~AliCDBLocal();

  Bool_t FilenameToId(const char* filename, AliCDBRunRange& runRange, 
      Int_t& version, Int_t& subVersion);

  Bool_t PrepareId(AliCDBId& id);
  //	Bool_t GetId(const AliCDBId& query, AliCDBId& result);
  AliCDBId* GetId(const AliCDBId& query);

  virtual void QueryValidFiles();
  void QueryValidCVMFSFiles(TString& cvmfsOcdbTag);

  void GetEntriesForLevel0(const char* level0, const AliCDBId& query, TList* result);
  void GetEntriesForLevel1(const char* level0, const char* Level1,
      const AliCDBId& query, TList* result);

  TString fBaseDirectory; // path of the DB folder

  ClassDef(AliCDBLocal, 0); // access class to a DataBase in a local storage
};

/////////////////////////////////////////////////////////////////////
//                                                                 //
//  class AliCDBLocalFactory					   //
//                                                                 //
/////////////////////////////////////////////////////////////////////

class AliCDBLocalFactory: public AliCDBStorageFactory {

  public:

    virtual Bool_t Validate(const char* dbString);
    virtual AliCDBParam* CreateParameter(const char* dbString);

  protected:
    virtual AliCDBStorage* Create(const AliCDBParam* param);

    ClassDef(AliCDBLocalFactory, 0);
};

/////////////////////////////////////////////////////////////////////
//                                                                 //
//  class AliCDBLocalParam					   //
//                                                                 //
/////////////////////////////////////////////////////////////////////

class AliCDBLocalParam: public AliCDBParam {

  public:
    AliCDBLocalParam();
    AliCDBLocalParam(const char* dbPath);
    AliCDBLocalParam(const char* dbPath, const char* uri);

    virtual ~AliCDBLocalParam();

    const TString& GetPath() const {return fDBPath;};

    virtual AliCDBParam* CloneParam() const;

    virtual ULong_t Hash() const;
    virtual Bool_t IsEqual(const TObject* obj) const;

  private:

    TString fDBPath; // path of the DB folder

    ClassDef(AliCDBLocalParam, 0);
};

#endif
 AliCDBLocal.h:1
 AliCDBLocal.h:2
 AliCDBLocal.h:3
 AliCDBLocal.h:4
 AliCDBLocal.h:5
 AliCDBLocal.h:6
 AliCDBLocal.h:7
 AliCDBLocal.h:8
 AliCDBLocal.h:9
 AliCDBLocal.h:10
 AliCDBLocal.h:11
 AliCDBLocal.h:12
 AliCDBLocal.h:13
 AliCDBLocal.h:14
 AliCDBLocal.h:15
 AliCDBLocal.h:16
 AliCDBLocal.h:17
 AliCDBLocal.h:18
 AliCDBLocal.h:19
 AliCDBLocal.h:20
 AliCDBLocal.h:21
 AliCDBLocal.h:22
 AliCDBLocal.h:23
 AliCDBLocal.h:24
 AliCDBLocal.h:25
 AliCDBLocal.h:26
 AliCDBLocal.h:27
 AliCDBLocal.h:28
 AliCDBLocal.h:29
 AliCDBLocal.h:30
 AliCDBLocal.h:31
 AliCDBLocal.h:32
 AliCDBLocal.h:33
 AliCDBLocal.h:34
 AliCDBLocal.h:35
 AliCDBLocal.h:36
 AliCDBLocal.h:37
 AliCDBLocal.h:38
 AliCDBLocal.h:39
 AliCDBLocal.h:40
 AliCDBLocal.h:41
 AliCDBLocal.h:42
 AliCDBLocal.h:43
 AliCDBLocal.h:44
 AliCDBLocal.h:45
 AliCDBLocal.h:46
 AliCDBLocal.h:47
 AliCDBLocal.h:48
 AliCDBLocal.h:49
 AliCDBLocal.h:50
 AliCDBLocal.h:51
 AliCDBLocal.h:52
 AliCDBLocal.h:53
 AliCDBLocal.h:54
 AliCDBLocal.h:55
 AliCDBLocal.h:56
 AliCDBLocal.h:57
 AliCDBLocal.h:58
 AliCDBLocal.h:59
 AliCDBLocal.h:60
 AliCDBLocal.h:61
 AliCDBLocal.h:62
 AliCDBLocal.h:63
 AliCDBLocal.h:64
 AliCDBLocal.h:65
 AliCDBLocal.h:66
 AliCDBLocal.h:67
 AliCDBLocal.h:68
 AliCDBLocal.h:69
 AliCDBLocal.h:70
 AliCDBLocal.h:71
 AliCDBLocal.h:72
 AliCDBLocal.h:73
 AliCDBLocal.h:74
 AliCDBLocal.h:75
 AliCDBLocal.h:76
 AliCDBLocal.h:77
 AliCDBLocal.h:78
 AliCDBLocal.h:79
 AliCDBLocal.h:80
 AliCDBLocal.h:81
 AliCDBLocal.h:82
 AliCDBLocal.h:83
 AliCDBLocal.h:84
 AliCDBLocal.h:85
 AliCDBLocal.h:86
 AliCDBLocal.h:87
 AliCDBLocal.h:88
 AliCDBLocal.h:89
 AliCDBLocal.h:90
 AliCDBLocal.h:91
 AliCDBLocal.h:92
 AliCDBLocal.h:93
 AliCDBLocal.h:94
 AliCDBLocal.h:95
 AliCDBLocal.h:96
 AliCDBLocal.h:97
 AliCDBLocal.h:98
 AliCDBLocal.h:99
 AliCDBLocal.h:100
 AliCDBLocal.h:101
 AliCDBLocal.h:102
 AliCDBLocal.h:103
 AliCDBLocal.h:104
 AliCDBLocal.h:105
 AliCDBLocal.h:106
 AliCDBLocal.h:107
 AliCDBLocal.h:108
 AliCDBLocal.h:109
 AliCDBLocal.h:110