]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RAW/AliRawEquipmentHeader.cxx
Fix for coverity (AdC)
[u/mrichter/AliRoot.git] / RAW / AliRawEquipmentHeader.cxx
index 1b1d4ead5b1776a9540981daf6ae8a6399e4d4e6..6525fb1971a5c9337dcb757e2c26d2a561a4a6a2 100644 (file)
@@ -1,6 +1,3 @@
-// @(#)alimdc:$Name$:$Id$
-// Author: Fons Rademakers  26/11/99
-
 /**************************************************************************
  * Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
  *                                                                        *
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
+// @(#) $Id$
+// Author: Fons Rademakers  26/11/99
+
 //////////////////////////////////////////////////////////////////////////
 //                                                                      //
 // AliRawEquipmentHeader                                                //
 //                                                                      //
 //////////////////////////////////////////////////////////////////////////
 
+#include <Bytes.h>
+
 #include "AliRawEquipmentHeader.h"
+#include "AliDAQ.h"
 
+#include <Riostream.h>
 
+using std::cout;
+using std::endl;
 ClassImp(AliRawEquipmentHeader)
 
 //______________________________________________________________________________
 AliRawEquipmentHeader::AliRawEquipmentHeader():
   fSize(0),
   fEquipmentType(0),
-  fEquipmentID(0),
+  fEquipmentID(0xffffffff),
   fBasicElementSizeType(0)
 {
   // Default constructor
@@ -39,6 +45,15 @@ AliRawEquipmentHeader::AliRawEquipmentHeader():
     fTypeAttribute[i] = 0;
 }
 
+//______________________________________________________________________________
+UInt_t AliRawEquipmentHeader::SwapWord(UInt_t x) const
+{
+   // Swap the endianess of the integer value 'x'
+
+   return (((x & 0x000000ffU) << 24) | ((x & 0x0000ff00U) <<  8) |
+           ((x & 0x00ff0000U) >>  8) | ((x & 0xff000000U) >> 24));
+}
+
 //______________________________________________________________________________
 void AliRawEquipmentHeader::Swap()
 {
@@ -46,12 +61,12 @@ void AliRawEquipmentHeader::Swap()
    // has already been swapped. This method is only called when the
    // header is read from the DATE event builder (GDC).
 
-   fSize                 = net2host(fSize);
-   fEquipmentType        = net2host(fEquipmentType);
-   fEquipmentID          = net2host(fEquipmentID);
-   fBasicElementSizeType = net2host(fBasicElementSizeType);
+   fSize                 = SwapWord(fSize);
+   fEquipmentType        = SwapWord(fEquipmentType);
+   fEquipmentID          = SwapWord(fEquipmentID);
+   fBasicElementSizeType = SwapWord(fBasicElementSizeType);
    for (int i = 0; i < kAttributeWords; i++)
-      fTypeAttribute[i] = net2host(fTypeAttribute[i]);
+      fTypeAttribute[i] = SwapWord(fTypeAttribute[i]);
 }
 
 //______________________________________________________________________________
@@ -59,8 +74,23 @@ void AliRawEquipmentHeader::Reset()
 {
   // Reset the contents of the equipment
   // header data
-  fSize = fEquipmentType = fEquipmentID = fBasicElementSizeType = 0;
+  fSize = fEquipmentType = fBasicElementSizeType = 0;
+  fEquipmentID = 0xffffffff;
 
   for(Int_t i = 0; i < kAttributeWords; i++)
     fTypeAttribute[i] = 0;
 }
+
+//_____________________________________________________________________________
+void AliRawEquipmentHeader::Print( const Option_t* opt ) const
+{
+  // Dumps the equipment header
+  // fields
+
+  cout << opt << "  Equipment size: " << fSize << endl;
+  cout << opt << "  Equipment type: " << fEquipmentType << endl;
+  Int_t ddlIndex;
+  cout << opt << "  Equipment ID: " << fEquipmentID << " ( " << AliDAQ::DetectorNameFromDdlID(fEquipmentID,ddlIndex) << " )" << endl;
+  cout << opt << "  Type attribute: " << fTypeAttribute[0] << "-" << fTypeAttribute[1] << "-" << fTypeAttribute[2] << endl;
+  cout << opt << "  Basic element size type: " << fBasicElementSizeType << endl;
+}