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 | * |
579d9eb7 |
23 | * CDB handling: The interface initializes the CDB from the path found |
24 | * in the environment variable ALIHLT_HCDBDIR. Default path is |
25 | * <tt>$ALICE_ROOT</tt>. |
f23a6e1a |
26 | */ |
27 | |
28 | #include <AliHLTDataTypes.h> |
2d7ff710 |
29 | /* Matthias Dec 2006 |
30 | * The names have been changed for Aliroot's coding conventions sake |
31 | * The old names are defined for backward compatibility with the |
32 | * PublisherSubscriber framework |
33 | */ |
8ede8717 |
34 | typedef AliHLTComponentLogSeverity AliHLTComponent_LogSeverity; |
35 | typedef AliHLTComponentEventData AliHLTComponent_EventData; |
36 | typedef AliHLTComponentShmData AliHLTComponent_ShmData; |
37 | typedef AliHLTComponentDataType AliHLTComponent_DataType; |
38 | typedef AliHLTComponentBlockData AliHLTComponent_BlockData; |
39 | typedef AliHLTComponentTriggerData AliHLTComponent_TriggerData; |
40 | typedef AliHLTComponentEventDoneData AliHLTComponent_EventDoneData; |
6f2f5ba7 |
41 | const AliHLTUInt32_t gkAliHLTComponent_InvalidShmType = gkAliHLTComponentInvalidShmType; |
42 | const AliHLTUInt64_t gkAliHLTComponent_InvalidShmID = gkAliHLTComponentInvalidShmID; |
f23a6e1a |
43 | |
71d7c760 |
44 | #ifdef __cplusplus |
f23a6e1a |
45 | extern "C" { |
71d7c760 |
46 | #endif |
b22e91eb |
47 | |
48 | /** |
49 | * |
50 | * @ingroup alihlt_wrapper_interface |
51 | */ |
f23a6e1a |
52 | typedef void* AliHLTComponentHandle; |
53 | |
b22e91eb |
54 | /** |
55 | * |
56 | * @ingroup alihlt_wrapper_interface |
57 | */ |
58 | const AliHLTComponentHandle kEmptyHLTComponentHandle = 0; |
f23a6e1a |
59 | |
b22e91eb |
60 | /** |
61 | * |
62 | * @ingroup alihlt_wrapper_interface |
63 | */ |
f23a6e1a |
64 | int AliHLT_C_Component_InitSystem( AliHLTComponentEnvironment* environ ); |
b22e91eb |
65 | |
66 | /** |
67 | * |
68 | * @ingroup alihlt_wrapper_interface |
69 | */ |
f23a6e1a |
70 | int AliHLT_C_Component_DeinitSystem(); |
b22e91eb |
71 | |
72 | /** |
73 | * |
74 | * @ingroup alihlt_wrapper_interface |
75 | */ |
f23a6e1a |
76 | int AliHLT_C_Component_LoadLibrary( const char* libraryPath ); |
b22e91eb |
77 | |
78 | /** |
79 | * |
80 | * @ingroup alihlt_wrapper_interface |
81 | */ |
f23a6e1a |
82 | int AliHLT_C_Component_UnloadLibrary( const char* libraryPath ); |
b22e91eb |
83 | |
84 | /** |
85 | * |
86 | * @ingroup alihlt_wrapper_interface |
87 | */ |
f23a6e1a |
88 | int AliHLT_C_CreateComponent( const char* componentType, void* environ_param, int argc, const char** argv, AliHLTComponentHandle* handle ); |
b22e91eb |
89 | |
90 | /** |
91 | * |
92 | * @ingroup alihlt_wrapper_interface |
93 | */ |
f23a6e1a |
94 | void AliHLT_C_DestroyComponent( AliHLTComponentHandle ); |
b22e91eb |
95 | |
96 | /** |
97 | * |
98 | * @ingroup alihlt_wrapper_interface |
99 | */ |
8ede8717 |
100 | int AliHLT_C_ProcessEvent( AliHLTComponentHandle handle, const AliHLTComponent_EventData* evtData, const AliHLTComponent_BlockData* blocks, |
71d7c760 |
101 | AliHLTComponent_TriggerData* trigData, AliHLTUInt8_t* outputPtr, |
f23a6e1a |
102 | AliHLTUInt32_t* size, AliHLTUInt32_t* outputBlockCnt, |
103 | AliHLTComponent_BlockData** outputBlocks, |
104 | AliHLTComponent_EventDoneData** edd ); |
b22e91eb |
105 | |
106 | /** |
107 | * |
108 | * @ingroup alihlt_wrapper_interface |
109 | */ |
71d7c760 |
110 | int AliHLT_C_GetOutputDataType( AliHLTComponentHandle, AliHLTComponent_DataType* dataType ); |
b22e91eb |
111 | |
112 | /** |
113 | * |
114 | * @ingroup alihlt_wrapper_interface |
115 | */ |
71d7c760 |
116 | int AliHLT_C_GetOutputSize( AliHLTComponentHandle, unsigned long* constBase, double* inputMultiplier ); |
f23a6e1a |
117 | |
71d7c760 |
118 | #ifdef __cplusplus |
f23a6e1a |
119 | } |
71d7c760 |
120 | #endif |
f23a6e1a |
121 | |
122 | #endif //ALIHLT_C_COMPONENT_WARAPPERINTERFACE_H |