3aaea7af9180d0f0dbf296e50a81fabe06bdf1f0
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTDataTypes.h
1 // @(#) $Id$
2
3 #ifndef ALIHLTDATATYPES_H
4 #define ALIHLTDATATYPES_H
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                               */
7
8 #include <vector>
9 using namespace std;
10
11 extern "C" {
12
13   typedef unsigned char AliHLTUInt8_t;
14
15   typedef unsigned int AliHLTUInt32_t;
16
17   typedef unsigned long long AliHLTUInt64_t;
18
19   typedef AliHLTUInt64_t AliHLTEventID_t;
20
21   enum AliHLTComponent_LogSeverity { kHLTLogNone=0, kHLTLogBenchmark=1, kHLTLogDebug=2, kHLTLogInfo=4, kHLTLogWarning=8, kHLTLogError=16, kHLTLogFatal=32 };
22
23   struct AliHLTComponent_EventData
24   {
25     AliHLTUInt32_t fStructSize;
26     AliHLTEventID_t fEventID;
27     AliHLTUInt32_t fEventCreation_s;
28     AliHLTUInt32_t fEventCreation_us;
29     AliHLTUInt32_t fBlockCnt;
30   };
31
32   struct AliHLTComponent_ShmData
33   {
34     AliHLTUInt32_t fStructSize;
35     AliHLTUInt32_t fShmType;
36     AliHLTUInt64_t fShmID;
37   };
38   
39   struct AliHLTComponent_DataType
40   {
41     AliHLTUInt32_t fStructSize;
42     char fID[8];
43     char fOrigin[4];
44   };
45   
46   struct AliHLTComponent_BlockData
47   {
48     AliHLTUInt32_t fStructSize;
49     AliHLTComponent_ShmData fShmKey;
50     AliHLTUInt32_t fOffset;
51     void* fPtr;
52     AliHLTUInt32_t fSize;
53     AliHLTComponent_DataType fDataType;
54     AliHLTUInt32_t fSpecification;
55   };
56
57   struct AliHLTComponent_TriggerData
58   {
59     AliHLTUInt32_t fStructSize;
60     AliHLTUInt32_t fDataSize;
61     void* fData;
62   };
63   
64   struct AliHLTComponent_EventDoneData
65   {
66     AliHLTUInt32_t fStructSize;
67     AliHLTUInt32_t fDataSize;
68     void* fData;
69   };
70
71   struct AliHLTComponentEnvironment
72   {
73     AliHLTUInt32_t fStructSize;
74     void* fParam;
75     void* (*fAllocMemoryFunc)( void* param, unsigned long size );
76 #if 0
77     int (*fAllocShmMemoryFunc)( void* param, unsigned long size, AliHLTComponent_BlockData* blockLocation ); // future addition already foreseen/envisioned
78 #endif
79     int (*fMakeOutputDataBlockListFunc)( void* param, const vector<AliHLTComponent_BlockData>& blocks, AliHLTUInt32_t* blockCount, AliHLTComponent_BlockData** outputBlocks );
80     int (*fGetEventDoneDataFunc)( void* param, AliHLTEventID_t eventID, unsigned long size, AliHLTComponent_EventDoneData** edd );
81     int (*fLoggingFunc)( void* param, AliHLTComponent_LogSeverity severity, const char* origin, const char* keyword, const char* message );
82   };
83 }
84
85 #endif