X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=RAW%2FAliRawEquipment.cxx;h=fc8e5873ea0c839790997cdaab7ec173d1d4c82b;hb=3f87610edc7628495b2893f8c50515af3961c59d;hp=1855146a897cf6302e128750e3322f76c37c4574;hpb=94d918a7f5afe6299763f444a7ef1a7164566ded;p=u%2Fmrichter%2FAliRoot.git diff --git a/RAW/AliRawEquipment.cxx b/RAW/AliRawEquipment.cxx index 1855146a897..fc8e5873ea0 100644 --- a/RAW/AliRawEquipment.cxx +++ b/RAW/AliRawEquipment.cxx @@ -1,4 +1,4 @@ -// @(#)alimdc:$Name$:$Id$ +// @(#) $Id$ // Author: Fons Rademakers 26/11/99 /************************************************************************** @@ -30,8 +30,6 @@ // AliRawRFIODB or via rootd using AliRawRootdDB or to CASTOR via // // rootd using AliRawCastorDB (and for performance testing there is // // also AliRawNullDB). // -// The AliRunDB class provides the interface to the run and file // -// catalogues (AliEn or plain MySQL). // // The AliStats class provides statics information that is added as // // a single keyed object to each raw file. // // The AliTagDB provides an interface to a TAG database. // @@ -40,6 +38,8 @@ // // ////////////////////////////////////////////////////////////////////////// +#include + #include "AliRawEquipmentHeader.h" #include "AliRawData.h" @@ -50,29 +50,13 @@ ClassImp(AliRawEquipment) //______________________________________________________________________________ -AliRawEquipment::AliRawEquipment() +AliRawEquipment::AliRawEquipment(): +fEqpHdr(NULL), +fRawData(NULL), +fRawDataRef(NULL) { // Create ALICE equipment object. - fEqpHdr = 0; - fRawData = 0; -} - -//______________________________________________________________________________ -AliRawEquipment::AliRawEquipment(const AliRawEquipment& rawEquipment): TObject(rawEquipment) -{ -// copy constructor - - Fatal("AliRawEquipment", "copy constructor not implemented"); -} - -//______________________________________________________________________________ -AliRawEquipment& AliRawEquipment::operator = (const AliRawEquipment& /*rawEquipment*/) -{ -// assignment operator - - Fatal("operator =", "assignment operator not implemented"); - return *this; } //______________________________________________________________________________ @@ -91,27 +75,54 @@ AliRawData *AliRawEquipment::GetRawData() { // Get raw data part of AliRawEquipment. - if (!fRawData) + if (!fRawData) { + if (!fRawDataRef.IsValid()) fRawData = new AliRawData; - - return fRawData; + else { + fRawData = (AliRawData*)fRawDataRef.GetObject(); + } + } + return fRawData; } //______________________________________________________________________________ -void AliRawEquipment::Reset() +AliRawEquipment::~AliRawEquipment() { - // Reset the equipment in case it needs to be re-used (avoiding costly - // new/delete cycle). We reset the size marker for the AliRawData - // object. + // Clean up event object. Delete also, possible, private raw data. - GetRawData()->SetSize(0); + delete fEqpHdr; + delete fRawData; } //______________________________________________________________________________ -AliRawEquipment::~AliRawEquipment() +void AliRawEquipment::CloneRawData(const AliRawData *rawData) { - // Clean up event object. Delete also, possible, private raw data. + // Clone the input raw data and + // flush the TRef - delete fEqpHdr; - delete fRawData; + fRawDataRef = NULL; + if (rawData) rawData = (AliRawData*)rawData->Clone(); +} + +//______________________________________________________________________________ +void AliRawEquipment::Streamer(TBuffer &R__b) +{ + // Stream an object of class AliRawEquipment. + + UInt_t R__s, R__c; + if (R__b.IsReading()) { + Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { } + TObject::Streamer(R__b); + R__b >> fEqpHdr; + R__b >> fRawData; + fRawDataRef.Streamer(R__b); + R__b.CheckByteCount(R__s, R__c, AliRawEquipment::IsA()); + } else { + R__c = R__b.WriteVersion(AliRawEquipment::IsA(), kTRUE); + TObject::Streamer(R__b); + R__b << fEqpHdr; + R__b << fRawData; + fRawDataRef.Streamer(R__b); + R__b.SetByteCount(R__c, kTRUE); + } }