]>
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 | * | |
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 |