]>
Commit | Line | Data |
---|---|---|
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> | |
8ede8717 | 26 | typedef AliHLTComponentLogSeverity AliHLTComponent_LogSeverity; |
27 | typedef AliHLTComponentEventData AliHLTComponent_EventData; | |
28 | typedef AliHLTComponentShmData AliHLTComponent_ShmData; | |
29 | typedef AliHLTComponentDataType AliHLTComponent_DataType; | |
30 | typedef AliHLTComponentBlockData AliHLTComponent_BlockData; | |
31 | typedef AliHLTComponentTriggerData AliHLTComponent_TriggerData; | |
32 | typedef AliHLTComponentEventDoneData AliHLTComponent_EventDoneData; | |
f23a6e1a | 33 | |
71d7c760 | 34 | #ifdef __cplusplus |
f23a6e1a | 35 | extern "C" { |
71d7c760 | 36 | #endif |
b22e91eb | 37 | |
38 | /** | |
39 | * | |
40 | * @ingroup alihlt_wrapper_interface | |
41 | */ | |
f23a6e1a | 42 | typedef void* AliHLTComponentHandle; |
43 | ||
b22e91eb | 44 | /** |
45 | * | |
46 | * @ingroup alihlt_wrapper_interface | |
47 | */ | |
48 | const AliHLTComponentHandle kEmptyHLTComponentHandle = 0; | |
f23a6e1a | 49 | |
b22e91eb | 50 | /** |
51 | * | |
52 | * @ingroup alihlt_wrapper_interface | |
53 | */ | |
f23a6e1a | 54 | int AliHLT_C_Component_InitSystem( AliHLTComponentEnvironment* environ ); |
b22e91eb | 55 | |
56 | /** | |
57 | * | |
58 | * @ingroup alihlt_wrapper_interface | |
59 | */ | |
f23a6e1a | 60 | int AliHLT_C_Component_DeinitSystem(); |
b22e91eb | 61 | |
62 | /** | |
63 | * | |
64 | * @ingroup alihlt_wrapper_interface | |
65 | */ | |
f23a6e1a | 66 | int AliHLT_C_Component_LoadLibrary( const char* libraryPath ); |
b22e91eb | 67 | |
68 | /** | |
69 | * | |
70 | * @ingroup alihlt_wrapper_interface | |
71 | */ | |
f23a6e1a | 72 | int AliHLT_C_Component_UnloadLibrary( const char* libraryPath ); |
b22e91eb | 73 | |
74 | /** | |
75 | * | |
76 | * @ingroup alihlt_wrapper_interface | |
77 | */ | |
f23a6e1a | 78 | int AliHLT_C_CreateComponent( const char* componentType, void* environ_param, int argc, const char** argv, AliHLTComponentHandle* handle ); |
b22e91eb | 79 | |
80 | /** | |
81 | * | |
82 | * @ingroup alihlt_wrapper_interface | |
83 | */ | |
f23a6e1a | 84 | void AliHLT_C_DestroyComponent( AliHLTComponentHandle ); |
b22e91eb | 85 | |
86 | /** | |
87 | * | |
88 | * @ingroup alihlt_wrapper_interface | |
89 | */ | |
8ede8717 | 90 | int AliHLT_C_ProcessEvent( AliHLTComponentHandle handle, const AliHLTComponent_EventData* evtData, const AliHLTComponent_BlockData* blocks, |
71d7c760 | 91 | AliHLTComponent_TriggerData* trigData, AliHLTUInt8_t* outputPtr, |
f23a6e1a | 92 | AliHLTUInt32_t* size, AliHLTUInt32_t* outputBlockCnt, |
93 | AliHLTComponent_BlockData** outputBlocks, | |
94 | AliHLTComponent_EventDoneData** edd ); | |
b22e91eb | 95 | |
96 | /** | |
97 | * | |
98 | * @ingroup alihlt_wrapper_interface | |
99 | */ | |
71d7c760 | 100 | int AliHLT_C_GetOutputDataType( AliHLTComponentHandle, AliHLTComponent_DataType* dataType ); |
b22e91eb | 101 | |
102 | /** | |
103 | * | |
104 | * @ingroup alihlt_wrapper_interface | |
105 | */ | |
71d7c760 | 106 | int AliHLT_C_GetOutputSize( AliHLTComponentHandle, unsigned long* constBase, double* inputMultiplier ); |
f23a6e1a | 107 | |
71d7c760 | 108 | #ifdef __cplusplus |
f23a6e1a | 109 | } |
71d7c760 | 110 | #endif |
f23a6e1a | 111 | |
112 | #endif //ALIHLT_C_COMPONENT_WARAPPERINTERFACE_H |