]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/AliHLT_C_Component_WrapperInterface.h
changes according to coding conventions
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLT_C_Component_WrapperInterface.h
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
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  *
23  */
24
25 #include <AliHLTDataTypes.h>
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;
33
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37
38 /**
39  * 
40  * @ingroup alihlt_wrapper_interface
41  */
42 typedef void* AliHLTComponentHandle;
43
44 /**
45  * 
46  * @ingroup alihlt_wrapper_interface
47  */
48 const AliHLTComponentHandle kEmptyHLTComponentHandle = 0;
49
50 /**
51  * 
52  * @ingroup alihlt_wrapper_interface
53  */
54 int AliHLT_C_Component_InitSystem( AliHLTComponentEnvironment* environ );
55
56 /**
57  * 
58  * @ingroup alihlt_wrapper_interface
59  */
60 int AliHLT_C_Component_DeinitSystem();
61
62 /**
63  * 
64  * @ingroup alihlt_wrapper_interface
65  */
66 int AliHLT_C_Component_LoadLibrary( const char* libraryPath );
67
68 /**
69  * 
70  * @ingroup alihlt_wrapper_interface
71  */
72 int AliHLT_C_Component_UnloadLibrary( const char* libraryPath );
73
74 /**
75  * 
76  * @ingroup alihlt_wrapper_interface
77  */
78 int AliHLT_C_CreateComponent( const char* componentType, void* environ_param, int argc, const char** argv, AliHLTComponentHandle* handle );
79
80 /**
81  * 
82  * @ingroup alihlt_wrapper_interface
83  */
84 void AliHLT_C_DestroyComponent( AliHLTComponentHandle );
85
86 /**
87  * 
88  * @ingroup alihlt_wrapper_interface
89  */
90 int AliHLT_C_ProcessEvent( AliHLTComponentHandle handle, const AliHLTComponent_EventData* evtData, const AliHLTComponent_BlockData* blocks, 
91                            AliHLTComponent_TriggerData* trigData, AliHLTUInt8_t* outputPtr,
92                            AliHLTUInt32_t* size, AliHLTUInt32_t* outputBlockCnt, 
93                            AliHLTComponent_BlockData** outputBlocks,
94                            AliHLTComponent_EventDoneData** edd );
95
96 /**
97  * 
98  * @ingroup alihlt_wrapper_interface
99  */
100 int AliHLT_C_GetOutputDataType( AliHLTComponentHandle, AliHLTComponent_DataType* dataType );
101
102 /**
103  * 
104  * @ingroup alihlt_wrapper_interface
105  */
106 int AliHLT_C_GetOutputSize( AliHLTComponentHandle, unsigned long* constBase, double* inputMultiplier );
107
108 #ifdef __cplusplus
109 }
110 #endif
111
112 #endif //ALIHLT_C_COMPONENT_WARAPPERINTERFACE_H