// $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