]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/BASE/AliHLT_C_Component_WrapperInterface.h
- support for event by event reconstruction added to AliHLTSystem
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLT_C_Component_WrapperInterface.h
CommitLineData
f23a6e1a 1// @(#) $Id$
2
3#ifndef ALIHLT_C_COMPONENT_WARAPPERINTERFACE_H
4#define ALIHLT_C_COMPONENT_WARAPPERINTERFACE_H
5/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6 * See cxx source for full Copyright notice */
7
b22e91eb 8/** @file AliHLT_C_Component_WrapperInterface.h
9 @author Matthias Richter, Timm Steinbeck
10 @date
11 @brief Pure C interface to the AliRoot HLT component handler
12 @note Utilized by the HLT Online (PubSub) framework
13*/
14
15/**
16 * @defgroup alihlt_wrapper_interface The HLT wrapper interface
17 * The wrapper interface is a pure C interface which allows to use the
18 * analysis components in external applications. The interface is utilized
19 * to bind the analysis code to the PubSub framework.
20 *
21 * \image html PubSub_WrapperComponent.png "Wrapper interface"
22 *
f23a6e1a 23 */
24
25#include <AliHLTDataTypes.h>
2d7ff710 26/* Matthias Dec 2006
27 * The names have been changed for Aliroot's coding conventions sake
28 * The old names are defined for backward compatibility with the
29 * PublisherSubscriber framework
30 */
8ede8717 31typedef AliHLTComponentLogSeverity AliHLTComponent_LogSeverity;
32typedef AliHLTComponentEventData AliHLTComponent_EventData;
33typedef AliHLTComponentShmData AliHLTComponent_ShmData;
34typedef AliHLTComponentDataType AliHLTComponent_DataType;
35typedef AliHLTComponentBlockData AliHLTComponent_BlockData;
36typedef AliHLTComponentTriggerData AliHLTComponent_TriggerData;
37typedef AliHLTComponentEventDoneData AliHLTComponent_EventDoneData;
6f2f5ba7 38const AliHLTUInt32_t gkAliHLTComponent_InvalidShmType = gkAliHLTComponentInvalidShmType;
39const AliHLTUInt64_t gkAliHLTComponent_InvalidShmID = gkAliHLTComponentInvalidShmID;
f23a6e1a 40
71d7c760 41#ifdef __cplusplus
f23a6e1a 42extern "C" {
71d7c760 43#endif
b22e91eb 44
45/**
46 *
47 * @ingroup alihlt_wrapper_interface
48 */
f23a6e1a 49typedef void* AliHLTComponentHandle;
50
b22e91eb 51/**
52 *
53 * @ingroup alihlt_wrapper_interface
54 */
55const AliHLTComponentHandle kEmptyHLTComponentHandle = 0;
f23a6e1a 56
b22e91eb 57/**
58 *
59 * @ingroup alihlt_wrapper_interface
60 */
f23a6e1a 61int AliHLT_C_Component_InitSystem( AliHLTComponentEnvironment* environ );
b22e91eb 62
63/**
64 *
65 * @ingroup alihlt_wrapper_interface
66 */
f23a6e1a 67int AliHLT_C_Component_DeinitSystem();
b22e91eb 68
69/**
70 *
71 * @ingroup alihlt_wrapper_interface
72 */
f23a6e1a 73int AliHLT_C_Component_LoadLibrary( const char* libraryPath );
b22e91eb 74
75/**
76 *
77 * @ingroup alihlt_wrapper_interface
78 */
f23a6e1a 79int AliHLT_C_Component_UnloadLibrary( const char* libraryPath );
b22e91eb 80
81/**
82 *
83 * @ingroup alihlt_wrapper_interface
84 */
f23a6e1a 85int AliHLT_C_CreateComponent( const char* componentType, void* environ_param, int argc, const char** argv, AliHLTComponentHandle* handle );
b22e91eb 86
87/**
88 *
89 * @ingroup alihlt_wrapper_interface
90 */
f23a6e1a 91void AliHLT_C_DestroyComponent( AliHLTComponentHandle );
b22e91eb 92
93/**
94 *
95 * @ingroup alihlt_wrapper_interface
96 */
8ede8717 97int AliHLT_C_ProcessEvent( AliHLTComponentHandle handle, const AliHLTComponent_EventData* evtData, const AliHLTComponent_BlockData* blocks,
71d7c760 98 AliHLTComponent_TriggerData* trigData, AliHLTUInt8_t* outputPtr,
f23a6e1a 99 AliHLTUInt32_t* size, AliHLTUInt32_t* outputBlockCnt,
100 AliHLTComponent_BlockData** outputBlocks,
101 AliHLTComponent_EventDoneData** edd );
b22e91eb 102
103/**
104 *
105 * @ingroup alihlt_wrapper_interface
106 */
71d7c760 107int AliHLT_C_GetOutputDataType( AliHLTComponentHandle, AliHLTComponent_DataType* dataType );
b22e91eb 108
109/**
110 *
111 * @ingroup alihlt_wrapper_interface
112 */
71d7c760 113int AliHLT_C_GetOutputSize( AliHLTComponentHandle, unsigned long* constBase, double* inputMultiplier );
f23a6e1a 114
71d7c760 115#ifdef __cplusplus
f23a6e1a 116}
71d7c760 117#endif
f23a6e1a 118
119#endif //ALIHLT_C_COMPONENT_WARAPPERINTERFACE_H