Minor corrections. Check for the allowed size - raw data should be always a multiple...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 11 May 2006 08:22:15 +0000 (08:22 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 11 May 2006 08:22:15 +0000 (08:22 +0000)
RAW/AliFstream.cxx
RAW/AliFstream.h

index ba63986..6b1b8d3 100644 (file)
@@ -102,20 +102,20 @@ AliFstream::~AliFstream()
 }
 
 //______________________________________________________________________________
-void AliFstream::Seekg(UInt_t position)
+void AliFstream::Seekp(UInt_t position)
 {
   // Go to a given position
   // inside the output stream
-  if (fFile) fFile->seekg(position);
+  if (fFile) fFile->seekp(position);
 }
 
 //______________________________________________________________________________
-UInt_t AliFstream::Tellg()
+UInt_t AliFstream::Tellp()
 {
   // Return the current
   // position inside the
   // output stream
-  if (fFile) return fFile->tellg();
+  if (fFile) return fFile->tellp();
   else return 0;
 }
 
@@ -129,6 +129,12 @@ void AliFstream::WriteBuffer(const char *buffer, UInt_t size, Bool_t force)
   // endianess and swap the buffer data
   // so that it is always stored using
   // little endian format.
+
+  // The raw data payload size is always
+  // 4 bytes aligned
+  if ((size % 4) != 0)
+    AliFatal(Form("Size of the buffer is not multiple of 4 (size = %d) !",size));
+
   if (force) {
     fFile->write(buffer,size);
   }
index d0b3143..0a5bf1a 100644 (file)
@@ -23,8 +23,8 @@ public:
   AliFstream& operator= (const AliFstream &source);
   virtual ~AliFstream();
 
-  void   Seekg(UInt_t position);
-  UInt_t Tellg();
+  void   Seekp(UInt_t position);
+  UInt_t Tellp();
   void   WriteBuffer(const char *buffer, UInt_t size, Bool_t force = kFALSE);
 
 private: