]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/CDB/AliCDBId.h
Take into account different MC/raw Uri structure
[u/mrichter/AliRoot.git] / STEER / CDB / AliCDBId.h
CommitLineData
9e1ceb13 1#ifndef ALI_CDB_ID_H
2#define ALI_CDB_ID_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/////////////////////////////////////////////////////////////////////
8// //
9// class AliCDBId //
10// Identity of an object stored into a database: //
11// path, run validity range, version, subVersion //
12// //
13/////////////////////////////////////////////////////////////////////
14
15#include "AliCDBPath.h"
16#include "AliCDBRunRange.h"
17
18#include <TObject.h>
19
20class AliCDBId: public TObject {
21
5078a13f 22 public:
9e1ceb13 23
5078a13f 24 AliCDBId();
9e1ceb13 25
5078a13f 26 AliCDBId(const AliCDBId& other);
9e1ceb13 27
5078a13f 28 AliCDBId(const AliCDBPath& path, const AliCDBRunRange& runRange,
29 Int_t version = -1, Int_t subVersion = -1);
9e1ceb13 30
5078a13f 31 AliCDBId(const AliCDBPath& path,
32 Int_t firstRun , Int_t lastRun , Int_t verison = -1,
33 Int_t subVersion = -1);
9e1ceb13 34
5078a13f 35 static AliCDBId* MakeFromString(const TString& idString);
9e1ceb13 36
5078a13f 37 virtual ~AliCDBId();
9e1ceb13 38
5078a13f 39 const AliCDBPath& GetAliCDBPath() const {return fPath;}
40 const TString& GetPath() const {return fPath.GetPath();}
41 const TString GetPathLevel(Int_t i) const {return fPath.GetLevel(i);}
42 Bool_t IsWildcard() const {return fPath.IsWildcard();}
9e1ceb13 43
5078a13f 44 void SetPath(const char* path) {fPath.SetPath(path);}
9e1ceb13 45
5078a13f 46 const AliCDBRunRange& GetAliCDBRunRange() const {return fRunRange;}
47 AliCDBRunRange& GetAliCDBRunRange() {return fRunRange;}
48 Int_t GetFirstRun() const {return fRunRange.GetFirstRun();}
49 Int_t GetLastRun() const {return fRunRange.GetLastRun();}
50 void SetFirstRun(Int_t firstRun) {fRunRange.SetFirstRun(firstRun);}
51 void SetLastRun(Int_t lastRun) {fRunRange.SetLastRun(lastRun);}
52 void SetRunRange(Int_t firstRun, Int_t lastRun)
53 {fRunRange.SetRunRange(firstRun, lastRun);}
9e1ceb13 54
9e1ceb13 55
5078a13f 56 Bool_t IsAnyRange() const {return fRunRange.IsAnyRange();}
9e1ceb13 57
8e245d15 58
5078a13f 59 Int_t GetVersion() const {return fVersion;}
60 Int_t GetSubVersion() const {return fSubVersion;}
61 void SetVersion(Int_t version) {fVersion = version;}
62 void SetSubVersion(Int_t subVersion) {fSubVersion = subVersion;}
9e1ceb13 63
5078a13f 64 const TString& GetLastStorage() const {return fLastStorage;}
65 void SetLastStorage(TString& lastStorage){fLastStorage = lastStorage;}
9e1ceb13 66
5078a13f 67 Bool_t IsValid() const;
68 Bool_t IsSpecified() const {return !(IsWildcard() || IsAnyRange());}
9e1ceb13 69
5078a13f 70 Bool_t HasVersion() const {return fVersion >= 0;}
71 Bool_t HasSubVersion() const {return fSubVersion >= 0;}
8e245d15 72
5078a13f 73 Bool_t Comprises(const AliCDBId& other) const
74 {return fPath.Comprises(other.fPath)
75 && fRunRange.Comprises(other.fRunRange);}
8e245d15 76
5078a13f 77 virtual Bool_t IsEqual(const TObject *obj) const;
9e1ceb13 78
5078a13f 79 TString ToString() const;
80 void Print(Option_t* option="") const;
9e1ceb13 81
5078a13f 82 private:
9e1ceb13 83
5078a13f 84 AliCDBPath fPath; // path
85 AliCDBRunRange fRunRange; // run range
86 Int_t fVersion; // version
87 Int_t fSubVersion; // subversion
88 TString fLastStorage; // previous storage place (new, grid, local, dump)
89
90 ClassDef(AliCDBId, 1);
9e1ceb13 91};
92
93#endif