// Assignment operator
if(this!=&cont) {
TNamed::operator=(cont);
+ fEntries = cont.fEntries;
+ fLowerLimits.Set(fEntries);
+ fUpperLimits.Set(fEntries);
+ for (Int_t i = 0; i < fEntries; i++) {
+ fLowerLimits[i] = cont.fLowerLimits[i];
+ fUpperLimits[i] = cont.fUpperLimits[i];
+ fArray->AddAt(cont.fArray->At(i), i);
+ }
}
return *this;
}
fArray->AddAt(obj, idx);
}
-Int_t AliOADBContainer::GetIndexForRun(Int_t run)
+Int_t AliOADBContainer::GetIndexForRun(Int_t run) const
{
// Find the index for a given run
Int_t found = 0;
return index;
}
-void AliOADBContainer::WriteToFile(char* fname)
+void AliOADBContainer::WriteToFile(char* fname) const
{
// Write object to file
TFile* f = new TFile(fname, "recreate");
Write();
f->Close();
}
+Int_t AliOADBContainer::InitFromFile(char* fname, char* key)
+{
+ // Initialize object from file
+ TFile* file = TFile::Open(fname);
+ if (!file) return (1);
+ AliOADBContainer* cont = 0;
+ file->GetObject(key, cont);
+ if (!cont)
+ {
+ AliError("Object not found in file \n");
+ return 1;
+ }
+
+ fEntries = cont->GetNumberOfEntries();
+ fLowerLimits.Set(fEntries);
+ fUpperLimits.Set(fEntries);
+ for (Int_t i = 0; i < fEntries; i++) {
+ fLowerLimits[i] = cont->LowerLimit(i);
+ fUpperLimits[i] = cont->UpperLimit(i);
+ fArray->AddAt(cont->GetObject(i), i);
+ }
+
+ return 0;
+
+}
+
void AliOADBContainer::List()
{
#include <TNamed.h>
#include <TArrayI.h>
-
+#include <TObjArray.h>
class TObjArray;
class TArrayI;
virtual ~AliOADBContainer();
AliOADBContainer(const AliOADBContainer& cont);
AliOADBContainer& operator=(const AliOADBContainer& cont);
- void AppendObject(TObject* obj, Int_t lower, Int_t upper);
- void UpdateObject(Int_t index, TObject* obj, Int_t lower, Int_t upper);
- void RemoveObject(Int_t index);
- Int_t GetIndexForRun(Int_t run);
- void WriteToFile(char* fname);
+// Object adding and removal
+ void AppendObject(TObject* obj, Int_t lower, Int_t upper);
+ void UpdateObject(Int_t index, TObject* obj, Int_t lower, Int_t upper);
+ void RemoveObject(Int_t index);
+ Int_t GetIndexForRun(Int_t run) const;
+// I/O
+ void WriteToFile(char* fname) const;
+ Int_t InitFromFile(char* fname, char* key);
+// Getters
+ Int_t GetNumberOfEntries() const {return fEntries;}
+ Int_t LowerLimit(Int_t idx) const {return fLowerLimits[idx];}
+ Int_t UpperLimit(Int_t idx) const {return fUpperLimits[idx];}
+ TObject* GetObject(Int_t idx) const {return fArray->At(idx);}
+// Debugging
void List();
private :
TObjArray* fArray; // Array with objects