]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/CDB/AliCDBId.h
Merge branch 'feature-doxygen'
[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;
b765ce85 81 virtual Int_t Compare(const TObject* obj) const;
82 virtual Bool_t IsSortable() const;
c3711112 83 virtual const char *GetName() const { return fPath.GetPath().Data(); }
5078a13f 84 private:
9e1ceb13 85
5078a13f 86 AliCDBPath fPath; // path
87 AliCDBRunRange fRunRange; // run range
88 Int_t fVersion; // version
89 Int_t fSubVersion; // subversion
90 TString fLastStorage; // previous storage place (new, grid, local, dump)
91
92 ClassDef(AliCDBId, 1);
9e1ceb13 93};
94
95#endif