]> git.uio.no Git - u/mrichter/AliRoot.git/blob - RAW/AliFstream.h
Effective C++ mods
[u/mrichter/AliRoot.git] / RAW / AliFstream.h
1 #ifndef ALIFSTREAM_H
2 #define ALIFSTREAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //-------------------------------------------------------------------------
7 // This is the class which is to be used during the writing of
8 // simulated raw data (DDL files format).
9 // It is using the root functionality in order to deal correctly
10 // with little/big endian issue. By convention the detector raw
11 // data payload is stored always with little endian (this corresponds
12 // to the real life situation when the detector data is coming from
13 // the hardware).
14 //-------------------------------------------------------------------------
15
16 #include <TObject.h>
17
18 class AliFstream : public TObject {
19 public:
20   AliFstream();
21   AliFstream(const char *fileName);
22   virtual ~AliFstream();
23
24   void   Seekp(UInt_t position);
25   UInt_t Tellp();
26   void   WriteBuffer(const char *buffer, UInt_t size, Bool_t force = kFALSE);
27
28 private:
29
30   AliFstream(const AliFstream &source);
31   AliFstream &operator =(const AliFstream& source);
32
33   fstream *fFile;       // Output file stream
34   UChar_t *fBuffer;     // Pointer to the internal buffer
35   UInt_t   fBufferSize; // Internal buffer size
36   Bool_t   fSwap;       // Big or little endian
37
38   ClassDef(AliFstream,0)
39 };
40
41 #endif