/*
$Log$
+Revision 1.1 2007/04/27 11:03:09 arcelli
+container for TOF raw data
+
authors: Roberto Preghenella, preghenella@bo.infn.it
with contribution from Chiara Zampolli, zampolli@bo.infn.it
*/
// //
////////////////////////////////////////////////////////////////////////
-#include <stdlib.h>
+#include "AliLog.h"
#include "AliTOFHitDataBuffer.h"
ClassImp(AliTOFHitDataBuffer)
-AliTOFHitDataBuffer::AliTOFHitDataBuffer(Int_t BufferSize = 1000) :
+AliTOFHitDataBuffer::AliTOFHitDataBuffer() :
TObject(),
- fBufferSize(BufferSize),
- fBuffer(0x0),
- fEntries(0)
+ fBuffer("AliTOFHitData")
{
- fBuffer = new AliTOFHitData[BufferSize];
+ fBuffer.SetOwner(kTRUE);
}
+
//-----------------------------------------------------------------------------
-AliTOFHitDataBuffer::AliTOFHitDataBuffer(const AliTOFHitDataBuffer &source):
+
+AliTOFHitDataBuffer::AliTOFHitDataBuffer(Int_t size) :
TObject(),
- fBufferSize(0),
- fBuffer(0x0),
- fEntries(source.fEntries)
+ fBuffer("AliTOFHitData", size)
{
- // copy ctr
- this->fBufferSize = source.fBufferSize;
- this->fBuffer = new AliTOFHitData[this->fBufferSize];
- this->fEntries = source.fEntries;
- for (Int_t i = 0; i < this->fEntries; i++)
- this->fBuffer[i] = source.fBuffer[i];
+ fBuffer.SetOwner(kTRUE);
}
//-----------------------------------------------------------------------------
-AliTOFHitDataBuffer& AliTOFHitDataBuffer::operator=(const AliTOFHitDataBuffer & source)
-{
- // ass operator
- this->fEntries = source.fEntries < this->fBufferSize ? source.fEntries : this->fBufferSize;
- for (Int_t i = 0; i < this->fEntries; i++)
- this->fBuffer[i] = source.fBuffer[i];
- return *this;
-}
-//-----------------------------------------------------------------------------
AliTOFHitDataBuffer::~AliTOFHitDataBuffer()
{
- delete [] fBuffer;
}
//-----------------------------------------------------------------------------
Bool_t AliTOFHitDataBuffer::Add(AliTOFHitData &HitData) {
// adding a new entry
- if (fEntries >= fBufferSize){
- printf("buffer limit: current entries = %d\n", fEntries);
- return kTRUE;
- }
- fBuffer[fEntries++] = HitData;
+
+ new (fBuffer[GetEntries()]) AliTOFHitData(HitData);
return kFALSE;
}