]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/AliHLTTPCDigitReaderDecoder.h
Fixes of warnings
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCDigitReaderDecoder.h
index 90b477a175b54e01a329a1da280845d1cc51120d..671d6974facccb5719026211e94495b85b6834e2 100644 (file)
@@ -37,6 +37,7 @@ public:
 
   // interface functions  
   int InitBlock(void* ptr,unsigned long size, Int_t patch, Int_t slice);
+  int Reset();
   void SetUnsorted(bool unsorted);
   bool NextChannel();
   int NextBunch();
@@ -49,7 +50,9 @@ public:
   int GetRowOffset() const;
   AliHLTUInt32_t GetAltroBlockHWaddr() const;
   AliHLTUInt32_t GetAltroBlockHWaddr(Int_t row, Int_t pad) const;
-  
+  int GetRCUTrailerSize();
+  bool GetRCUTrailerData(UChar_t*& trData);
+
 protected:
   bool NextSignal();
 
@@ -59,6 +62,23 @@ private:
   /** assignment operator prohibited */
   AliHLTTPCDigitReaderDecoder& operator=(const AliHLTTPCDigitReaderDecoder&);
 
+  /**
+   * Instance handling of the AltroDecoder
+   * The AliAltroDecoder in it's current implementation (Sep 2008) allocates
+   * 16 MByte per instance. This makes it impossible to run more than a couple
+   * of instances. Though, a common decoder with bulk functionality used and
+   * certified by both off- and on-line application is discussed, a quick
+   * bugfix in the digit reader makes use of one global decoder instance.
+   * This can actually be extended in order to support more than one global
+   * instance provided by a scheduler, but thats overkill for the moment.
+   */
+  static AliAltroDecoder* GetDecoderInstance();
+
+  /**
+   * Release an instance of the decoder.
+   */
+  static void ReleaseDecoderInstance(AliAltroDecoder* pInstance);
+
   AliAltroDecoder *fAltroDecoder;                                  //! transient
   AliAltroData fAltroData;                                         //! transient
   AliAltroBunch *fAltroBunch;                                      //! transient
@@ -67,7 +87,10 @@ private:
   int fNextCounter;                                                //! transient
   bool fNextSignalMethodUsed;                                      //! transient
 
-  ClassDef(AliHLTTPCDigitReaderDecoder, 2)
+  static AliAltroDecoder* fgpFreeInstance;                         //! transient
+  static AliAltroDecoder* fgpIssuedInstance;                       //! transient
+  
+  ClassDef(AliHLTTPCDigitReaderDecoder, 3)
     
 };
 #endif