changed FileWriter to use high-level processing method to allow child classes to...
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 26 Nov 2007 09:54:46 +0000 (09:54 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 26 Nov 2007 09:54:46 +0000 (09:54 +0000)
HLT/BASE/util/AliHLTFileWriter.cxx
HLT/BASE/util/AliHLTFileWriter.h

index 4ee692087337888f4298338e00b1400ddbd1668a..66aceed0681b0894d8fd30abe96d3164570ae646 100644 (file)
@@ -239,8 +239,7 @@ int AliHLTFileWriter::CloseWriter()
 }
 
 int AliHLTFileWriter::DumpEvent( const AliHLTComponentEventData& evtData,
-                        const AliHLTComponentBlockData* blocks, 
-                        AliHLTComponentTriggerData& trigData )
+                        AliHLTComponentTriggerData& /*trigData*/ )
 {
   // see header file for class documentation
   int iResult=0;
@@ -250,11 +249,14 @@ int AliHLTFileWriter::DumpEvent( const AliHLTComponentEventData& evtData,
     // file name stays in order to be opended in append mode.
     fCurrentFileName="";
   }
-  for (int n=0; n<(int)evtData.fBlockCnt; n++ ) {
-    //HLTDebug("block %d out of %d", n, evtData.fBlockCnt);
+  const AliHLTComponentBlockData* pDesc=NULL;
+
+  int blockno=0;
+  for (pDesc=GetFirstInputBlock(kAliHLTAnyDataType); pDesc!=NULL; pDesc=GetNextInputBlock(), blockno++) {
+    HLTDebug("block %d out of %d", blockno, evtData.fBlockCnt);
     TString filename;
-    //HLTDebug("dataspec 0x%x", blocks[n].fSpecification);
-    iResult=BuildFileName(evtData.fEventID, n, blocks[n].fDataType, blocks[n].fSpecification, filename);
+    HLTDebug("dataspec 0x%x", pDesc->fSpecification);
+    iResult=BuildFileName(evtData.fEventID, blockno, pDesc->fDataType, pDesc->fSpecification, filename);
     ios::openmode filemode=(ios::openmode)0;
     if (fCurrentFileName.CompareTo(filename)==0) {
       // append to the file
@@ -266,8 +268,8 @@ int AliHLTFileWriter::DumpEvent( const AliHLTComponentEventData& evtData,
     if (iResult>=0) {
       ofstream dump(filename.Data(), filemode);
       if (dump.good()) {
-       dump.write((static_cast<const char*>(blocks[n].fPtr)), blocks[n].fSize);
-       HLTDebug("wrote %d byte(s) to file %s", blocks[n].fSize, filename.Data());
+       dump.write((static_cast<const char*>(pDesc->fPtr)), pDesc->fSize);
+       HLTDebug("wrote %d byte(s) to file %s", pDesc->fSize, filename.Data());
       } else {
        HLTError("can not open file %s for writing", filename.Data());
        iResult=-EBADF;
@@ -275,9 +277,6 @@ int AliHLTFileWriter::DumpEvent( const AliHLTComponentEventData& evtData,
       dump.close();
     }
   }
-  if (trigData.fStructSize==0) {
-    // this is just to get rid of the warning "unused parameter"
-  }
   return iResult;
 }
 
index 14a58a17dba4f6b61e0a2b6491b1e5763ce52b9b..ff6d9f01ed39f99d3f75ae2bfea3742760358e1e 100644 (file)
@@ -118,11 +118,9 @@ class AliHLTFileWriter : public AliHLTDataSink  {
    * Data processing method for the component.
    * The function can be overloaded by other file writer components.
    * @param evtData       event data structure
-   * @param blocks        input data block descriptors
    * @param trigData     trigger data structure
    */
   virtual int DumpEvent( const AliHLTComponentEventData& evtData,
-                        const AliHLTComponentBlockData* blocks, 
                         AliHLTComponentTriggerData& trigData );
 
   using AliHLTDataSink::DumpEvent;