]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/BASE/AliHLT_C_Component_WrapperInterface.h
Minor cleanup of code.
[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 *
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 34typedef AliHLTComponentLogSeverity AliHLTComponent_LogSeverity;
35typedef AliHLTComponentEventData AliHLTComponent_EventData;
36typedef AliHLTComponentShmData AliHLTComponent_ShmData;
37typedef AliHLTComponentDataType AliHLTComponent_DataType;
38typedef AliHLTComponentBlockData AliHLTComponent_BlockData;
39typedef AliHLTComponentTriggerData AliHLTComponent_TriggerData;
40typedef AliHLTComponentEventDoneData AliHLTComponent_EventDoneData;
6f2f5ba7 41const AliHLTUInt32_t gkAliHLTComponent_InvalidShmType = gkAliHLTComponentInvalidShmType;
42const AliHLTUInt64_t gkAliHLTComponent_InvalidShmID = gkAliHLTComponentInvalidShmID;
f23a6e1a 43
71d7c760 44#ifdef __cplusplus
f23a6e1a 45extern "C" {
71d7c760 46#endif
b22e91eb 47
48/**
49 *
50 * @ingroup alihlt_wrapper_interface
51 */
f23a6e1a 52typedef void* AliHLTComponentHandle;
53
b22e91eb 54/**
55 *
56 * @ingroup alihlt_wrapper_interface
57 */
58const AliHLTComponentHandle kEmptyHLTComponentHandle = 0;
f23a6e1a 59
b22e91eb 60/**
61 *
62 * @ingroup alihlt_wrapper_interface
63 */
f23a6e1a 64int AliHLT_C_Component_InitSystem( AliHLTComponentEnvironment* environ );
b22e91eb 65
66/**
67 *
68 * @ingroup alihlt_wrapper_interface
69 */
f23a6e1a 70int AliHLT_C_Component_DeinitSystem();
b22e91eb 71
72/**
73 *
74 * @ingroup alihlt_wrapper_interface
75 */
f23a6e1a 76int AliHLT_C_Component_LoadLibrary( const char* libraryPath );
b22e91eb 77
78/**
79 *
80 * @ingroup alihlt_wrapper_interface
81 */
f23a6e1a 82int AliHLT_C_Component_UnloadLibrary( const char* libraryPath );
b22e91eb 83
84/**
85 *
86 * @ingroup alihlt_wrapper_interface
87 */
f23a6e1a 88int 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 94void AliHLT_C_DestroyComponent( AliHLTComponentHandle );
b22e91eb 95
96/**
97 *
98 * @ingroup alihlt_wrapper_interface
99 */
8ede8717 100int 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 110int AliHLT_C_GetOutputDataType( AliHLTComponentHandle, AliHLTComponent_DataType* dataType );
b22e91eb 111
112/**
113 *
114 * @ingroup alihlt_wrapper_interface
115 */
71d7c760 116int 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