ROOT logo
#ifndef ALI_CDB_DUMP_H
#define ALI_CDB_DUMP_H

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

/////////////////////////////////////////////////////////////////////
//                                                                 //
//  class AliCDBDump						   //
//  access class to a DataBase in a dump storage (single file)     //
//                                                                 //
/////////////////////////////////////////////////////////////////////

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

class TDirectory;
class TFile;

class AliCDBDump: public AliCDBStorage {
  friend class AliCDBDumpFactory;

  public:

  virtual Bool_t IsReadOnly() const {return fReadOnly;};
  virtual Bool_t HasSubVersion() const {return kFALSE;};
  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& query);
  virtual AliCDBId* 	GetEntryId(const AliCDBId& query);
  virtual TList* 		GetEntries(const AliCDBId& query);
  virtual Bool_t 		PutEntry(AliCDBEntry* entry, const char* mirrors="");
  virtual TList* 		GetIdListFromFile(const char* fileName);

  private:

  AliCDBDump(const AliCDBDump & source);
  AliCDBDump & operator=(const AliCDBDump & source);
  AliCDBDump(const char* dbFile, Bool_t readOnly);
  virtual ~AliCDBDump();	

  Bool_t KeyNameToId(const char* keyname, AliCDBRunRange& runRange,
      Int_t& version, Int_t& subVersion);
  Bool_t IdToKeyName(const AliCDBRunRange& runRange, Int_t version,
      Int_t subVersion, TString& keyname); 	

  Bool_t MkDir(const TString& dir);


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

  virtual void QueryValidFiles();

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

  TFile* fFile;		// Dump file
  Bool_t fReadOnly;	// ReadOnly flag

  ClassDef(AliCDBDump, 0);
};

/////////////////////////////////////////////////////////////////////
//                                                                 //
//  class AliCDBDumpFactory					   //
//                                                                 //
/////////////////////////////////////////////////////////////////////

class AliCDBDumpFactory: public AliCDBStorageFactory {

  public:

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

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

    ClassDef(AliCDBDumpFactory, 0);
};

/////////////////////////////////////////////////////////////////////
//                                                                 //
//  class AliCDBDumpParam					   //
//                                                                 //
/////////////////////////////////////////////////////////////////////

class AliCDBDumpParam: public AliCDBParam {

  public:
    AliCDBDumpParam();
    AliCDBDumpParam(const char* dbPath, Bool_t readOnly = kFALSE);

    virtual ~AliCDBDumpParam();

    const TString& GetPath() const {return fDBPath;};
    Bool_t IsReadOnly() const {return fReadOnly;};

    virtual AliCDBParam* CloneParam() const;

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

  private:

    TString fDBPath;	// Dump file path name
    Bool_t fReadOnly;	// ReadOnly flag

    ClassDef(AliCDBDumpParam, 0);
};

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