2 #ifndef _HOMERWRITER_HPP_
3 #define _HOMERWRITER_HPP_
4 /************************************************************************
7 ** This file is property of and copyright by the Technical Computer
8 ** Science Group, Kirchhoff Institute for Physics, Ruprecht-Karls-
9 ** University, Heidelberg, Germany, 2001
10 ** This file has been written by Timm Morten Steinbeck,
11 ** timm@kip.uni-heidelberg.de
14 ** See the file license.txt for details regarding usage, modification,
15 ** distribution and warranty.
16 ** Important: This file is provided without any warranty, including
17 ** fitness for any particular purpose.
20 ** Newer versions of this file's package will be made available from
21 ** http://web.kip.uni-heidelberg.de/Hardwinf/L3/
22 ** or the corresponding page of the Heidelberg Alice Level 3 group.
24 *************************************************************************/
27 ***************************************************************************
29 ** $Author$ - Initial Version by Timm Morten Steinbeck
33 ***************************************************************************
36 /** @file AliHLTHOMERWriter.h
37 @author Timm Steinbeck
39 @brief HLT Online Monitoring Environment including ROOT - Writer
40 @note migrated from PubSub HLT-stable-20070905.141318 (rev 2375) */
42 // see below for class documentation
44 // refer to README to build package
46 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
49 #include "AliHLTHOMERData.h"
59 virtual ~HOMERWriter();
63 void AddBlock( const void* descriptor, const void* data );
64 void AddBlock( const HOMERBlockDescriptor* descriptor, const void* data )
66 AddBlock( descriptor->GetHeader(), data );
69 homer_uint32 GetTotalMemorySize( bool includeData = true );
70 void Copy( void* destination, homer_uint64 eventType, homer_uint64 eventNr, homer_uint64 statusFlags, homer_uint64 nodeID, bool includeData = true );
72 static homer_uint8 DetermineUInt64Alignment();
73 static homer_uint8 DetermineUInt32Alignment();
74 static homer_uint8 DetermineUInt16Alignment();
75 static homer_uint8 DetermineUInt8Alignment();
76 static homer_uint8 DetermineDoubleAlignment();
77 static homer_uint8 DetermineFloatAlignment();
86 homer_uint64 fDescriptor[kCount_64b_Words]; //!transient
87 const void* fData; //!transient
90 unsigned long fDataOffset; //!transient
92 std::vector<TBlockData> fBlocks; //!transient
94 ClassDef(HOMERWriter,0);
103 ***************************************************************************
105 ** $Author$ - Initial Version by Timm Morten Steinbeck
109 ***************************************************************************
112 #endif // _HOMERWRITER_HPP_