]>
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> | |
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 | 31 | typedef AliHLTComponentLogSeverity AliHLTComponent_LogSeverity; |
32 | typedef AliHLTComponentEventData AliHLTComponent_EventData; | |
33 | typedef AliHLTComponentShmData AliHLTComponent_ShmData; | |
34 | typedef AliHLTComponentDataType AliHLTComponent_DataType; | |
35 | typedef AliHLTComponentBlockData AliHLTComponent_BlockData; | |
36 | typedef AliHLTComponentTriggerData AliHLTComponent_TriggerData; | |
37 | typedef AliHLTComponentEventDoneData AliHLTComponent_EventDoneData; | |
6f2f5ba7 | 38 | const AliHLTUInt32_t gkAliHLTComponent_InvalidShmType = gkAliHLTComponentInvalidShmType; |
39 | const AliHLTUInt64_t gkAliHLTComponent_InvalidShmID = gkAliHLTComponentInvalidShmID; | |
f23a6e1a | 40 | |
71d7c760 | 41 | #ifdef __cplusplus |
f23a6e1a | 42 | extern "C" { |
71d7c760 | 43 | #endif |
b22e91eb | 44 | |
45 | /** | |
46 | * | |
47 | * @ingroup alihlt_wrapper_interface | |
48 | */ | |
f23a6e1a | 49 | typedef void* AliHLTComponentHandle; |
50 | ||
b22e91eb | 51 | /** |
52 | * | |
53 | * @ingroup alihlt_wrapper_interface | |
54 | */ | |
55 | const AliHLTComponentHandle kEmptyHLTComponentHandle = 0; | |
f23a6e1a | 56 | |
b22e91eb | 57 | /** |
58 | * | |
59 | * @ingroup alihlt_wrapper_interface | |
60 | */ | |
f23a6e1a | 61 | int AliHLT_C_Component_InitSystem( AliHLTComponentEnvironment* environ ); |
b22e91eb | 62 | |
63 | /** | |
64 | * | |
65 | * @ingroup alihlt_wrapper_interface | |
66 | */ | |
f23a6e1a | 67 | int AliHLT_C_Component_DeinitSystem(); |
b22e91eb | 68 | |
69 | /** | |
70 | * | |
71 | * @ingroup alihlt_wrapper_interface | |
72 | */ | |
f23a6e1a | 73 | int AliHLT_C_Component_LoadLibrary( const char* libraryPath ); |
b22e91eb | 74 | |
75 | /** | |
76 | * | |
77 | * @ingroup alihlt_wrapper_interface | |
78 | */ | |
f23a6e1a | 79 | int AliHLT_C_Component_UnloadLibrary( const char* libraryPath ); |
b22e91eb | 80 | |
81 | /** | |
82 | * | |
83 | * @ingroup alihlt_wrapper_interface | |
84 | */ | |
f23a6e1a | 85 | int 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 | 91 | void AliHLT_C_DestroyComponent( AliHLTComponentHandle ); |
b22e91eb | 92 | |
93 | /** | |
94 | * | |
95 | * @ingroup alihlt_wrapper_interface | |
96 | */ | |
8ede8717 | 97 | int 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 | 107 | int AliHLT_C_GetOutputDataType( AliHLTComponentHandle, AliHLTComponent_DataType* dataType ); |
b22e91eb | 108 | |
109 | /** | |
110 | * | |
111 | * @ingroup alihlt_wrapper_interface | |
112 | */ | |
71d7c760 | 113 | int 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 |