X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=HLT%2FBASE%2FAliHLT_C_Component_WrapperInterface.h;h=14448c69ea21588e07e6b2c3ab717b246f270d15;hp=566eeb4b214c0d1e884640ec7dc9f1d0ccd7195e;hb=579d9eb79be7cb4575ff09392324e47da4a81e12;hpb=f23a6e1a4d37f895e3e5f6693ccfd7060e55ae4b diff --git a/HLT/BASE/AliHLT_C_Component_WrapperInterface.h b/HLT/BASE/AliHLT_C_Component_WrapperInterface.h index 566eeb4b214..14448c69ea2 100644 --- a/HLT/BASE/AliHLT_C_Component_WrapperInterface.h +++ b/HLT/BASE/AliHLT_C_Component_WrapperInterface.h @@ -5,30 +5,118 @@ /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ -/* AliHLT_C_Component_WrapperInterface - pure C interface to the AliRoot HLT component handler - utilized by the HLT PubSub Framework +/** @file AliHLT_C_Component_WrapperInterface.h + @author Matthias Richter, Timm Steinbeck + @date + @brief Pure C interface to the AliRoot HLT component handler + @note Utilized by the HLT Online (PubSub) framework +*/ + +/** + * @defgroup alihlt_wrapper_interface The HLT wrapper interface + * The wrapper interface is a pure C interface which allows to use the + * analysis components in external applications. The interface is utilized + * to bind the analysis code to the PubSub framework. + * + * \image html PubSub_WrapperComponent.png "Wrapper interface" + * + * CDB handling: The interface initializes the CDB from the path found + * in the environment variable ALIHLT_HCDBDIR. Default path is + * $ALICE_ROOT. */ #include +/* Matthias Dec 2006 + * The names have been changed for Aliroot's coding conventions sake + * The old names are defined for backward compatibility with the + * PublisherSubscriber framework + */ +typedef AliHLTComponentLogSeverity AliHLTComponent_LogSeverity; +typedef AliHLTComponentEventData AliHLTComponent_EventData; +typedef AliHLTComponentShmData AliHLTComponent_ShmData; +typedef AliHLTComponentDataType AliHLTComponent_DataType; +typedef AliHLTComponentBlockData AliHLTComponent_BlockData; +typedef AliHLTComponentTriggerData AliHLTComponent_TriggerData; +typedef AliHLTComponentEventDoneData AliHLTComponent_EventDoneData; +const AliHLTUInt32_t gkAliHLTComponent_InvalidShmType = gkAliHLTComponentInvalidShmType; +const AliHLTUInt64_t gkAliHLTComponent_InvalidShmID = gkAliHLTComponentInvalidShmID; +#ifdef __cplusplus extern "C" { +#endif + +/** + * + * @ingroup alihlt_wrapper_interface + */ typedef void* AliHLTComponentHandle; - const AliHLTComponentHandle kEmptyHLTComponentHandle = 0; +/** + * + * @ingroup alihlt_wrapper_interface + */ +const AliHLTComponentHandle kEmptyHLTComponentHandle = 0; +/** + * + * @ingroup alihlt_wrapper_interface + */ int AliHLT_C_Component_InitSystem( AliHLTComponentEnvironment* environ ); + +/** + * + * @ingroup alihlt_wrapper_interface + */ int AliHLT_C_Component_DeinitSystem(); + +/** + * + * @ingroup alihlt_wrapper_interface + */ int AliHLT_C_Component_LoadLibrary( const char* libraryPath ); + +/** + * + * @ingroup alihlt_wrapper_interface + */ int AliHLT_C_Component_UnloadLibrary( const char* libraryPath ); + +/** + * + * @ingroup alihlt_wrapper_interface + */ int AliHLT_C_CreateComponent( const char* componentType, void* environ_param, int argc, const char** argv, AliHLTComponentHandle* handle ); + +/** + * + * @ingroup alihlt_wrapper_interface + */ void AliHLT_C_DestroyComponent( AliHLTComponentHandle ); -int AliHLT_C_ProcessEvent( AliHLTComponentHandle, AliHLTComponent_EventData evtData, AliHLTComponent_BlockData* blocks, - AliHLTComponent_TriggerData trigData, AliHLTUInt8_t* outputPtr, + +/** + * + * @ingroup alihlt_wrapper_interface + */ +int AliHLT_C_ProcessEvent( AliHLTComponentHandle handle, const AliHLTComponent_EventData* evtData, const AliHLTComponent_BlockData* blocks, + AliHLTComponent_TriggerData* trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t* size, AliHLTUInt32_t* outputBlockCnt, AliHLTComponent_BlockData** outputBlocks, AliHLTComponent_EventDoneData** edd ); +/** + * + * @ingroup alihlt_wrapper_interface + */ +int AliHLT_C_GetOutputDataType( AliHLTComponentHandle, AliHLTComponent_DataType* dataType ); + +/** + * + * @ingroup alihlt_wrapper_interface + */ +int AliHLT_C_GetOutputSize( AliHLTComponentHandle, unsigned long* constBase, double* inputMultiplier ); + +#ifdef __cplusplus } +#endif #endif //ALIHLT_C_COMPONENT_WARAPPERINTERFACE_H