// $Id$ #ifndef ALIHLTDUMMYCOMPONENT_H #define ALIHLTDUMMYCOMPONENT_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ /** @file AliHLTDummyComponent.h @author Timm Steinbeck, Matthias Richter @date @brief Declaration of a dummy component. */ // see below for class documentation // or // refer to README to build package // or // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt #include "AliHLTProcessor.h" /** * @class AliHLTDummyComponent * @brief A dummy HLT processing component. * * An implementiation of a dummy component that just copies its input data * as a test, demonstration, and example of the HLT component scheme. *

General properties:

* * Component ID: \b Dummy
* Library: \b libAliHLTSample.so
* Input Data Types: @ref kAliHLTAnyDataType
* * Output Data Types: depending on input blocks * *

Mandatory arguments:

* * *

Optional arguments:

* * \li -output_percentage
* The fraction (%) of the input data to be copied to the output * *

Configuration:

* * *

Default CDB entries:

* The component has no default CDB entry. * It does not load any configuration from the global ConfigHLT * folder. * *

Performance:

* The component does not have any event data processing. * *

Memory consumption:

* The component does not have any event data processing. * *

Output size:

* Output multiplier determined by option -output_percentage * * @ingroup alihlt_tutorial */ class AliHLTDummyComponent : public AliHLTProcessor { public: AliHLTDummyComponent(); virtual ~AliHLTDummyComponent(); // Public functions to implement AliHLTComponent's interface. // These functions are required for the registration process const char* GetComponentID(); void GetInputDataTypes( vector& list); AliHLTComponentDataType GetOutputDataType(); virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); AliHLTComponent* Spawn(); protected: // Protected functions to implement AliHLTComponent's interface. // These functions provide initialization as well as the actual processing // capabilities of the component. int DoInit( int argc, const char** argv ); int DoDeinit(); int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size, vector& outputBlocks ); using AliHLTProcessor::DoEvent; private: /** The size of the output data produced, as a percentage of the input data's size. Can be greater than 100 (%) */ unsigned fOutputPercentage; // see above ClassDef(AliHLTDummyComponent, 0) }; #endif