3 #ifndef ALIHLTOUTTASK_H
4 #define ALIHLTOUTTASK_H
5 //* This file is property of and copyright by the ALICE HLT Project *
6 //* ALICE Experiment at CERN, All rights reserved. *
7 //* See cxx source for full Copyright notice *
9 /** @file AliHLTOUTTask.h
10 @author Matthias Richter
12 @brief A special HLTOUT sibling working as a data sink in chains
15 #include "AliHLTOUT.h"
16 #include "AliHLTDumpTask.h"
19 * @class AliHLTOUTTask
20 * A special HLTOUT sibling implementing AliHLTDataSink functionality in
21 * order to be run at the end of a reconstruction chain and generation of
22 * an HLTOUT sub-collection.
24 * The constructor takes the chains as a blank separated list of chain ids.
26 * @ingroup alihlt_system
28 class AliHLTOUTTask : public AliHLTOUT, public AliHLTDumpTask {
31 AliHLTOUTTask(const char* chains);
32 /** standard destructor */
33 virtual ~AliHLTOUTTask();
38 /** standard constructor prohibited */
40 /** copy constructor prohibited */
41 AliHLTOUTTask(const AliHLTOUTTask&);
42 /** assignment operator prohibited */
43 AliHLTOUTTask& operator=(const AliHLTOUTTask&);
46 * Generate the index of the HLTOUT data.
47 * Must be implemented by the child classes.
52 * Cleanup and reset the data input.
58 * @param [in] index index of the block
59 * @param [out] pBuffer buffer of the selected data block
60 * @param [out] size size of the selected data block
62 int GetDataBuffer(AliHLTUInt32_t index, const AliHLTUInt8_t* &pBuffer,
63 AliHLTUInt32_t& size);
66 * Check byte order of data block
68 AliHLTOUTByteOrder CheckBlockByteOrder(AliHLTUInt32_t index);
71 * Check alignment of data block
73 int CheckBlockAlignment(AliHLTUInt32_t index, AliHLTOUT::AliHLTOUTDataType type);
75 ClassDef(AliHLTOUTTask, 1)