]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RAW/AliRawCastorDB.cxx
effc++ warnings
[u/mrichter/AliRoot.git] / RAW / AliRawCastorDB.cxx
index f57921b0f8592d8d6486e37b9629e09771197578..f94b68709bc5fff02b72916f8471d891d55d60bd 100644 (file)
@@ -1,4 +1,4 @@
-// @(#)alimdc:$Name$:$Id$
+// @(#) $Id$
 // Author: Fons Rademakers  26/11/99
 
 /**************************************************************************
@@ -33,7 +33,7 @@ ClassImp(AliRawCastorDB)
 
 //______________________________________________________________________________
 AliRawCastorDB::AliRawCastorDB(AliRawEvent *event,
-                              AliESD *esd,
+                              AliESDEvent *esd,
                               Int_t compress,
                               const char* fileName)
    : AliRawDB(event, esd, compress, fileName)
@@ -103,21 +103,29 @@ const char *AliRawCastorDB::GetFileName() const
 }
 
 //______________________________________________________________________________
-void AliRawCastorDB::Close()
+Long64_t AliRawCastorDB::Close()
 {
    // Close raw CASTOR/rootd DB.
 
-   if (!fRawDB) return;
+   if (!fRawDB) return 0;
+
+   if (!fRawDB->IsOpen()) return 0;
 
    fRawDB->cd();
 
    // Write the tree.
-   fTree->Write();
-   if (fESDTree) fESDTree->Write();
+   Bool_t error = kFALSE;
+   if (fTree->Write() == 0)
+     error = kTRUE;
+   if (fESDTree)
+     if (fESDTree->Write() == 0)
+       error = kTRUE;
 
    // Close DB, this also deletes the fTree
    fRawDB->Close();
 
+   Long64_t filesize = fRawDB->GetEND();
+
    if (fDeleteFiles) {
       TUrl u(fRawDB->GetName());
       gSystem->Exec(Form("rfrm %s", u.GetFile()));
@@ -125,4 +133,9 @@ void AliRawCastorDB::Close()
 
    delete fRawDB;
    fRawDB = 0;
+
+   if(!error)
+     return filesize;
+   else
+     return -1;
 }