4 #ifndef ALIHLTALTROCHANNELSELECTORCOMPONENT_H
5 #define ALIHLTALTROCHANNELSELECTORCOMPONENT_H
6 /* This file is property of and copyright by the ALICE HLT Project *
7 * ALICE Experiment at CERN, All rights reserved. *
8 * See cxx source for full Copyright notice */
10 /** @file AliHLTAltroChannelSelectorComponent.h
11 @author Matthias Richter
13 @brief Special file writer converting TPC digit input to ASCII.
16 // see below for class documentation
18 // refer to README to build package
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
22 #include "AliHLTProcessor.h"
25 * @class AliHLTAltroChannelSelectorComponent
26 * A converter for digit data of the TPC input to ASCII output.
27 * Data is written to file.
29 * Component ID: \b AltroChannelSelector <br>
30 * Library: \b libAliHLTTPC
32 * Mandatory arguments: <br>
33 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
35 * Optional arguments: <br>
36 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
39 class AliHLTAltroChannelSelectorComponent : public AliHLTProcessor {
41 /** default constructor */
42 AliHLTAltroChannelSelectorComponent();
44 virtual ~AliHLTAltroChannelSelectorComponent();
46 // interface functions: property getters
47 const char* GetComponentID();
48 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
49 AliHLTComponentDataType GetOutputDataType();
50 void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
51 AliHLTComponent* Spawn();
54 // interface functions: processing
55 int DoInit(int argc, const char** argv);
57 int DoEvent(const AliHLTComponentEventData& evtData,
58 const AliHLTComponentBlockData* blocks,
59 AliHLTComponentTriggerData& trigData,
60 AliHLTUInt8_t* outputPtr,
62 AliHLTComponentBlockDataList& outputBlocks );
66 /** copy constructor prohibited */
67 AliHLTAltroChannelSelectorComponent(const AliHLTAltroChannelSelectorComponent&);
68 /** assignment operator prohibited */
69 AliHLTAltroChannelSelectorComponent& operator=(const AliHLTAltroChannelSelectorComponent&);
72 * Copy a data block at the end of a buffer.
73 * The source buffer is inserted at given position relative to the buffer
75 * @param pTgt target buffer
76 * @param capacity capacity (size) of the buffer
77 * @param position porition relative to the END of the buffer
78 * @param pSrc source buffer to be copied
79 * @param size size of the source buffer
80 * @return copied size, neg error code if failed
82 int CopyBlockToEnd(AliHLTUInt8_t* pTgt, unsigned capacity, unsigned position, void* pSrc, unsigned size);
84 /** the mode for the DigitReaderRaw */
85 unsigned fRawreaderMode; //!transient
87 ClassDef(AliHLTAltroChannelSelectorComponent, 0);