void SetValues(const Element *v, Int_t n);
void SetTimeStamp(Double_t v) {fTimeStamp = v;}
//
- Int_t GetSizeTotal() const {return GetUniqueID();}
+ Int_t GetSizeTotal() const {return fSizeTot;}
Element GetValue(Int_t i=0) const;
Element* GetValues() const {return (Element*)fArray;}
Double_t GetTimeStamp() const {return fTimeStamp;}
protected:
//
Double_t fTimeStamp; // timestamp of the entry
- Element* fArray; //[fUniqueID] array of entries
+ Int_t fSizeTot; // vector total size (including special slots, like for errors)
+ Element* fArray; //[fSizeTot] array of entries
//
ClassDef(AliLHCDipValT,1)
};
//__________________________________________________________________________
template<class Element>
AliLHCDipValT<Element>::AliLHCDipValT(Int_t size,Double_t t)
-: fTimeStamp(t),fArray(0)
+: fTimeStamp(t),fSizeTot(0),fArray(0)
{
//def. constructor
SetSize(size);
//__________________________________________________________________________
template<class Element>
AliLHCDipValT<Element>::AliLHCDipValT(const AliLHCDipValT<Element> &src)
-: TObject(src),fTimeStamp(src.fTimeStamp),fArray(0)
+: TObject(src),fTimeStamp(src.fTimeStamp),fSizeTot(0),fArray(0)
{
//copy constructor
- SetUniqueID(0);
SetSize(src.GetSizeTotal());
memcpy(fArray,src.fArray,GetSizeTotal()*sizeof(Element));
}
//assingment
if (this != &src) {
((TObject*)this)->operator=(src);
- SetUniqueID(0);
if (GetSizeTotal()!=src.GetSizeTotal()) SetSize(src.GetSizeTotal());
SetTimeStamp(src.GetTimeStamp());
memcpy(fArray,src.fArray,GetSizeTotal()*sizeof(Element));
Char_t* AliLHCDipValT<Element>::TimeAsString(double t, Bool_t utc)
{
// time as string in UTC or local format
+ static char buff[22];
time_t tt = (time_t) t;
- char* st = utc ? asctime(gmtime(&tt)) : ctime(&tt);
- *(strchr(st,'\n')) = 0;
- return st;
+ struct tm *time = utc ? gmtime(&tt) : localtime(&tt);
+ sprintf(buff,"%02d:%02d:%02d %02d/%02d/%04d",time->tm_hour,time->tm_min,time->tm_sec,
+ time->tm_mday,time->tm_mon+1,time->tm_year+1900);
+ return (char*)buff;
}
//__________________________________________________________________________
if (nc<sz) memset(arr+nc, 0, (sz-nc)*sizeof(Element));
if (GetSizeTotal()) delete[] fArray;
fArray = arr;
- SetUniqueID(sz);
+ fSizeTot = sz;
}
else {
delete[] fArray;
- SetUniqueID(0);
+ fArray = 0;
+ fSizeTot = 0;
}
}