initialization of CDB in wrapper interface;added treatment of reconfiguration event
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLT_C_Component_WrapperInterface.h
index 566eeb4b214c0d1e884640ec7dc9f1d0ccd7195e..14448c69ea21588e07e6b2c3ab717b246f270d15 100644 (file)
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
-/* AliHLT_C_Component_WrapperInterface
-   pure C interface to the AliRoot HLT component handler
-   utilized by the HLT PubSub Framework
+/** @file   AliHLT_C_Component_WrapperInterface.h
+    @author Matthias Richter, Timm Steinbeck
+    @date   
+    @brief  Pure C interface to the AliRoot HLT component handler
+    @note   Utilized by the HLT Online (PubSub) framework
+*/
+
+/** 
+ * @defgroup alihlt_wrapper_interface The HLT wrapper interface
+ * The wrapper interface is a pure C interface which allows to use the 
+ * analysis components in external applications. The interface is utilized
+ * to bind the analysis code to the PubSub framework. 
+ *
+ * \image html PubSub_WrapperComponent.png "Wrapper interface"
+ *
+ * CDB handling: The interface initializes the CDB from the path found
+ * in the environment variable ALIHLT_HCDBDIR. Default path is
+ * <tt>$ALICE_ROOT</tt>.
  */
 
 #include <AliHLTDataTypes.h>
+/* Matthias Dec 2006
+ * The names have been changed for Aliroot's coding conventions sake
+ * The old names are defined for backward compatibility with the 
+ * PublisherSubscriber framework
+ */
+typedef AliHLTComponentLogSeverity AliHLTComponent_LogSeverity;
+typedef AliHLTComponentEventData AliHLTComponent_EventData;
+typedef AliHLTComponentShmData AliHLTComponent_ShmData;
+typedef AliHLTComponentDataType AliHLTComponent_DataType;
+typedef AliHLTComponentBlockData AliHLTComponent_BlockData;
+typedef AliHLTComponentTriggerData AliHLTComponent_TriggerData;
+typedef AliHLTComponentEventDoneData AliHLTComponent_EventDoneData;
+const AliHLTUInt32_t gkAliHLTComponent_InvalidShmType = gkAliHLTComponentInvalidShmType;
+const AliHLTUInt64_t gkAliHLTComponent_InvalidShmID = gkAliHLTComponentInvalidShmID;
 
+#ifdef __cplusplus
 extern "C" {
+#endif
+
+/**
+ * 
+ * @ingroup alihlt_wrapper_interface
+ */
 typedef void* AliHLTComponentHandle;
 
-  const AliHLTComponentHandle kEmptyHLTComponentHandle = 0;
+/**
+ * 
+ * @ingroup alihlt_wrapper_interface
+ */
+const AliHLTComponentHandle kEmptyHLTComponentHandle = 0;
 
+/**
+ * 
+ * @ingroup alihlt_wrapper_interface
+ */
 int AliHLT_C_Component_InitSystem( AliHLTComponentEnvironment* environ );
+
+/**
+ * 
+ * @ingroup alihlt_wrapper_interface
+ */
 int AliHLT_C_Component_DeinitSystem();
+
+/**
+ * 
+ * @ingroup alihlt_wrapper_interface
+ */
 int AliHLT_C_Component_LoadLibrary( const char* libraryPath );
+
+/**
+ * 
+ * @ingroup alihlt_wrapper_interface
+ */
 int AliHLT_C_Component_UnloadLibrary( const char* libraryPath );
+
+/**
+ * 
+ * @ingroup alihlt_wrapper_interface
+ */
 int AliHLT_C_CreateComponent( const char* componentType, void* environ_param, int argc, const char** argv, AliHLTComponentHandle* handle );
+
+/**
+ * 
+ * @ingroup alihlt_wrapper_interface
+ */
 void AliHLT_C_DestroyComponent( AliHLTComponentHandle );
-int AliHLT_C_ProcessEvent( AliHLTComponentHandle, AliHLTComponent_EventData evtData, AliHLTComponent_BlockData* blocks, 
-                           AliHLTComponent_TriggerData trigData, AliHLTUInt8_t* outputPtr,
+
+/**
+ * 
+ * @ingroup alihlt_wrapper_interface
+ */
+int AliHLT_C_ProcessEvent( AliHLTComponentHandle handle, const AliHLTComponent_EventData* evtData, const AliHLTComponent_BlockData* blocks, 
+                           AliHLTComponent_TriggerData* trigData, AliHLTUInt8_t* outputPtr,
                            AliHLTUInt32_t* size, AliHLTUInt32_t* outputBlockCnt, 
                            AliHLTComponent_BlockData** outputBlocks,
                            AliHLTComponent_EventDoneData** edd );
 
+/**
+ * 
+ * @ingroup alihlt_wrapper_interface
+ */
+int AliHLT_C_GetOutputDataType( AliHLTComponentHandle, AliHLTComponent_DataType* dataType );
+
+/**
+ * 
+ * @ingroup alihlt_wrapper_interface
+ */
+int AliHLT_C_GetOutputSize( AliHLTComponentHandle, unsigned long* constBase, double* inputMultiplier );
+
+#ifdef __cplusplus
 }
+#endif
 
 #endif //ALIHLT_C_COMPONENT_WARAPPERINTERFACE_H