]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/BASE/AliHLT_C_Component_WrapperInterface.h
changes according to coding conventions
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLT_C_Component_WrapperInterface.h
CommitLineData
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 26typedef AliHLTComponentLogSeverity AliHLTComponent_LogSeverity;
27typedef AliHLTComponentEventData AliHLTComponent_EventData;
28typedef AliHLTComponentShmData AliHLTComponent_ShmData;
29typedef AliHLTComponentDataType AliHLTComponent_DataType;
30typedef AliHLTComponentBlockData AliHLTComponent_BlockData;
31typedef AliHLTComponentTriggerData AliHLTComponent_TriggerData;
32typedef AliHLTComponentEventDoneData AliHLTComponent_EventDoneData;
f23a6e1a 33
71d7c760 34#ifdef __cplusplus
f23a6e1a 35extern "C" {
71d7c760 36#endif
b22e91eb 37
38/**
39 *
40 * @ingroup alihlt_wrapper_interface
41 */
f23a6e1a 42typedef void* AliHLTComponentHandle;
43
b22e91eb 44/**
45 *
46 * @ingroup alihlt_wrapper_interface
47 */
48const AliHLTComponentHandle kEmptyHLTComponentHandle = 0;
f23a6e1a 49
b22e91eb 50/**
51 *
52 * @ingroup alihlt_wrapper_interface
53 */
f23a6e1a 54int AliHLT_C_Component_InitSystem( AliHLTComponentEnvironment* environ );
b22e91eb 55
56/**
57 *
58 * @ingroup alihlt_wrapper_interface
59 */
f23a6e1a 60int AliHLT_C_Component_DeinitSystem();
b22e91eb 61
62/**
63 *
64 * @ingroup alihlt_wrapper_interface
65 */
f23a6e1a 66int AliHLT_C_Component_LoadLibrary( const char* libraryPath );
b22e91eb 67
68/**
69 *
70 * @ingroup alihlt_wrapper_interface
71 */
f23a6e1a 72int AliHLT_C_Component_UnloadLibrary( const char* libraryPath );
b22e91eb 73
74/**
75 *
76 * @ingroup alihlt_wrapper_interface
77 */
f23a6e1a 78int 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 84void AliHLT_C_DestroyComponent( AliHLTComponentHandle );
b22e91eb 85
86/**
87 *
88 * @ingroup alihlt_wrapper_interface
89 */
8ede8717 90int 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 100int AliHLT_C_GetOutputDataType( AliHLTComponentHandle, AliHLTComponent_DataType* dataType );
b22e91eb 101
102/**
103 *
104 * @ingroup alihlt_wrapper_interface
105 */
71d7c760 106int 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