ROOT logo
//-*- Mode: C++ -*-
// $Id$

#ifndef ALIHLTDATABUFFER_H
#define ALIHLTDATABUFFER_H
//* This file is property of and copyright by the                          * 
//* ALICE Experiment at CERN, All rights reserved.                         *
//* See cxx source for full Copyright notice                               *

//  @file   AliHLTDataBuffer.h
//  @author Matthias Richter
//  @date   
//  @brief  Handling of Data Buffers for HLT components.
//  @note   The class is used in Offline (AliRoot) context

#include <vector>
#include "TObject.h"
#include "AliHLTLogging.h"
#include "AliHLTDataTypes.h"
#include "AliHLTComponent.h"

using std::vector;

class AliHLTConsumerDescriptor;
class AliHLTTask;

/** list of AliHLTConsumerDescriptor pointers */
typedef vector<AliHLTConsumerDescriptor*> AliHLTConsumerDescriptorPList;

typedef AliHLTUInt8_t* AliHLTUInt8Pointer_t;

/**
 * @class AliHLTDataBuffer
 * @brief  Handling of data buffers for the HLT.
 * 
 * The class provides handling of data buffers for HLT tasks. Each task gets
 * its own Data Buffer instance. The buffer is grouped into different data
 * segments according to the output of the component.<br>
 * The Data Buffer keeps control over the data requests of the 'child'
 * components. Each component can subscribe to a certain segment of the data
 * buffer. It's state is then changed from 'reserved' to 'active'. After the
 * data processing, the component has to release the segment and it's state is
 * set to 'processed'. If all components have requested and released their data,
 * the Raw Buffer is released and pushed back in the list of available buffers.
 *
 * @note This class is only used for the @ref alihlt_system.
 *
 * @ingroup alihlt_system
 */
class AliHLTDataBuffer : public TObject, public AliHLTLogging 
{
 public:
  //////////////////////////////////////////////////////////////////////////////
  // constructors and destructors

  /* standard constructor
   */
  AliHLTDataBuffer();
  /** destructor */
  virtual ~AliHLTDataBuffer();

  //////////////////////////////////////////////////////////////////////////////
  // initialization

  /**
   * Add component to the list of consumers
   * @param pConsumer - a consumer of type AliHLTComponent
   */
  int SetConsumer(AliHLTComponent* pConsumer);

  //////////////////////////////////////////////////////////////////////////////
  // component to component communication

  /**
   * Determine the number of matching data blocks for the component and a
   * consumer component. <br>
   * The first approach will support only one output data type for processing
   * components.
   * @param pConsumer       the component which subscribes to the buffer
   * @param tgtList         (optional) the list to receive the data types
   * @return: number of data blocks which match the input data types 
   *          of the consumer, neg. error code if failed <br>
   *          -EINVAL       invalid parameter <br>
   */
  int FindMatchingDataBlocks(const AliHLTComponent* pConsumer,
			     AliHLTComponentDataTypeList* tgtList=NULL);

  /**
   * Subscribe to a segment of the data buffer.
   * The function prepares the block descriptor for subsequent use with the
   * AliHLTComponent::ProcessEvent method, the method can prepare several block
   * descriptors up to the array size specified by iArraySize. The return value
   * is independent from the array size the number of block descriptors which
   * would have been prepared if there was enough space in the array<br>
   * The method is used by the consumer component.
   * @param pConsumer       the component which subscribes to the buffer
   * @param blockDescList   block descriptor vector to be filled
   * @return: number of matching data blocks, neg. error code if failed<br>
   *          -EACCESS      the consumer state can't be changed (activated)
   *          -EBADF        unresolved data segments <br>
   *          -ENOENT       consumer component not found <br>
   *          -ENODATA      data buffer does not have raw data <br>
   *          -EINVAL       invalid parameter <br>
   */
  int Subscribe(const AliHLTComponent* pConsumer,
		AliHLTComponentBlockDataList& blockDescList);

  /**
   * Release an instance of the data buffer.
   * Resets the variables of the block descriptor.
   * If all buffer segments are released, the Data Buffer is reseted
   * and the Raw Buffer released.<br>
   * The method is used by the consumer component.
   * @param pBlockDesc      descriptor of the data segment
   * @param pConsumer       the component which subscribes to the buffer
   * @param pOwnerTask      task owning this buffer
   * @return: >0 if success, negative error code if failed <br>
   *          -EACCESS      the consumer state can not be changed (de-activated)
   *          -ENOENT       consumer has not subscribed to the buffer <br>
   *          -EINVAL       invalid parameter <br>
   */
  int Release(AliHLTComponentBlockData* pBlockDesc, const AliHLTComponent* pConsumer,
	      const AliHLTTask* pOwnerTask);

  /**
   * Release a forwarded data block.
   */
  int ReleaseForwardedBlock(AliHLTComponentBlockData* pBlockDesc,
			     const AliHLTTask* pOwnerTask);

  /**
   * Register an input data block for forwarding.
   * Consumer of this data buffer subscribe to forwarded data blocks in te same way.
   * Forwarded data blocks are released when the last consumer has released the
   * blocks.
   * @param pSrcTask        original source task of the data block
   * @param pBlockDesc      descriptor of the data segment
   */
  int Forward(AliHLTTask* pSrcTask, AliHLTComponentBlockData* pBlockDesc);

  /**
   * Get a target buffer of minimum size iMinSize.
   * The method is used by the component which owns the Data Buffer to 
   * allocate a buffer for the data it is going to produce.
   * @param iMinSize        minumum size of the requested buffer
   * @return: pointer to target buffer if 
   */
  AliHLTUInt8_t* GetTargetBuffer(int iMinSize);

  /**
   * Set the segments for the data buffer.
   * This is usually done after the component has written the data to the buffer, 
   * which was requested by the @ref GetTargetBuffer method. The component might
   * produce different types of data, for each type a segment has to be defined
   * which describes the data inside the buffer.<br>
   * The @ref AliHLTComponentBlockData segment descriptor comes directly from
   * the @ref AliHLTComponent::ProcessEvent method.
   * @param pTgt            the target buffer which the segments refer to
   * @param arraySegments   the output block descriptors of the component
   * @param iSize           size of the array
   */
  int SetSegments(AliHLTUInt8_t* pTgt, AliHLTComponentBlockData* arraySegments, int iSize);

  /**
   * Check if the data buffer is empty.
   * @return 1 if empty, 0 if not
   */
  int IsEmpty();

  /**
   * Get the total and maximum size of the buffer.
   * Lets see if this is needed later
   */
  //int GetTotalSize();

  /**
   * Get the number of segments including the forwarded data blocks.
   * @return number of segments
   */
  int GetNofSegments() const;

  /**
   * Get the total number of consumers.
   * This gives the number of consumers regardless of their state.
   * @return number of consumers
   */
  int GetNofConsumers() const;

  /**
   * Get the number of consumers which still need to be processed during
   * the current event.
   * @return number of consumers
   */
  int GetNofPendingConsumers() const;

  /**
   * Get the number of consumers currently under processing.
   * @return number of active consumers
   */
  int GetNofActiveConsumers() const;

  /**
   * Check if a consumer is already in the list
   * @param pConsumer   pointer to consumer component
   * @param bAllLists   search in all lists if 1
   *                    search only in fConsumer list if 0
   * @return 1 if found, 0 if not
   */
  int FindConsumer(const AliHLTComponent* pConsumer, int bAllLists=1);

  /**
   * Public method to reset the buffer.
   * Eventually with some additional checks. In normal operation,
   * an external reset should not be necessary.
   */
  int Reset();

  /**
   * Print info about the buffer
   */
  virtual void Print(const char* option) const;

  /**
   * Set local logging level
   * logging filter for individual object
   */
  void SetLocalLoggingLevel(AliHLTComponentLogSeverity level)
  {fgLogging.SetLocalLoggingLevel(level); AliHLTLogging::SetLocalLoggingLevel(level);}

  /**
   * Print summary of the global buffer management.
   */
  static int PrintStatistics();

  /**
   * Set the global event count.
   * The event count is deployed to find buffers which have not been used
   * for a while. In such a case to policy to find an appropriate buffer is
   * adjusted.
   */
  static int SetGlobalEventCount(AliHLTUInt32_t eventCount) {fgEventCount=eventCount; return 0;}

  /**
   * @class AliHLTDataSegment
   * @brief  Descriptor of a data segment within the buffer.
   */
  class AliHLTDataSegment {
    friend class AliHLTDataBuffer; // TODO: implement some getters/setters
  public:
    AliHLTDataSegment()
      :
      fDataType(kAliHLTVoidDataType),
      fPtr(NULL),
      fSegmentOffset(0),
      fSegmentSize(0),
      fSpecification(0)
    {
    }

    AliHLTDataSegment(AliHLTUInt8_t* ptr, AliHLTUInt32_t offset, AliHLTUInt32_t size) 
      :
      fDataType(kAliHLTVoidDataType),
      fPtr(ptr),
      fSegmentOffset(offset),
      fSegmentSize(size),
      fSpecification(0)
    {
    }

    AliHLTDataSegment(void* ptr, AliHLTUInt32_t offset, AliHLTUInt32_t size) 
      :
      fDataType(kAliHLTVoidDataType),
      fPtr(reinterpret_cast<AliHLTUInt8_t*>(ptr)),
      fSegmentOffset(offset),
      fSegmentSize(size),
      fSpecification(0)
    {
    }

    AliHLTDataSegment(void* ptr, AliHLTUInt32_t offset, AliHLTUInt32_t size, AliHLTComponentDataType dt, AliHLTUInt32_t spec)
      :
      fDataType(dt),
      fPtr(reinterpret_cast<AliHLTUInt8_t*>(ptr)),
      fSegmentOffset(offset),
      fSegmentSize(size),
      fSpecification(spec)
    {
    }

    AliHLTDataSegment(const AliHLTDataSegment& src)
      :
      fDataType(src.fDataType),
      fPtr(src.fPtr),
      fSegmentOffset(src.fSegmentOffset),
      fSegmentSize(src.fSegmentSize),
      fSpecification(src.fSpecification)
    {
      // AliHLTDataSegment just stores external pointers and properties
    }

    AliHLTDataSegment& operator=(const AliHLTDataSegment& src)
    {
      // AliHLTDataSegment just stores external pointers and properties
      if (this==&src) return *this;
      fDataType=src.fDataType;
      fPtr=src.fPtr;
      fSegmentOffset=src.fSegmentOffset;
      fSegmentSize=src.fSegmentSize;
      fSpecification=src.fSpecification;
      return *this;
    }

    virtual ~AliHLTDataSegment() {}

    AliHLTUInt8_t* GetPtr() const {return (AliHLTUInt8_t*)*this;}

    AliHLTUInt32_t GetSize() const {return fSegmentSize;}
    
    int operator==(const AliHLTDataSegment& seg) const
    {
      return (fPtr+fSegmentOffset==seg.fPtr+seg.fSegmentOffset) && (fSegmentSize==seg.fSegmentSize);
    }
    operator AliHLTUInt8_t*() const {return fPtr+fSegmentOffset;}

    virtual void Print(const char* option) const;

  private:
    /** the data type of this segment */
    AliHLTComponentDataType fDataType;                             // see above
    /** pointer to the buffer */
    AliHLTUInt8Pointer_t fPtr;                                     //!transient
    /** offset in byte within the data buffer */
    AliHLTUInt32_t fSegmentOffset;                                 // see above
    /** size of the actual content */
    AliHLTUInt32_t fSegmentSize;                                   // see above
    /** data specification */
    AliHLTUInt32_t fSpecification;                                 // see above

  };

  /**
   * @class AliHLTForwardedDataSegment
   * @brief  Descriptor of a forwarded data segment.
   * Contains in addition information about the parent of this forwarded
   * block and the original data type and specification
   */
  class AliHLTForwardedDataSegment : public AliHLTDataSegment {
    friend class AliHLTDataBuffer; // TODO: implement some getters/setters
  public:
    AliHLTForwardedDataSegment()
      : AliHLTDataSegment()
      , fParentSegment()
      , fParentTask(NULL)
    {
    }

    AliHLTForwardedDataSegment(AliHLTDataSegment& mySegment, AliHLTDataSegment& parentSegment, AliHLTTask* parentTask)
      : AliHLTDataSegment(mySegment)
      , fParentSegment(parentSegment)
      , fParentTask(parentTask)
    {
    }

    AliHLTForwardedDataSegment(const AliHLTForwardedDataSegment& src)
      : AliHLTDataSegment(src),
      fParentSegment(src.fParentSegment),
      fParentTask(src.fParentTask)
    {
      // AliHLTForwardedDataSegment just stores external pointers and properties
    }

    AliHLTForwardedDataSegment& operator=(const AliHLTForwardedDataSegment& src)
    {
      // AliHLTForwardedDataSegment just stores external pointers and properties
      AliHLTDataSegment::operator=(src);
      fParentSegment=src.fParentSegment;
      fParentTask=src.fParentTask;
      return *this;
    }

    virtual ~AliHLTForwardedDataSegment() {}

    virtual void Print(const char* option) const;

  private:
    /// description of the original segment
    AliHLTDataSegment fParentSegment;                              // see above
    /// the parent task
    AliHLTTask* fParentTask;                                       //!transient
  };

  typedef vector<AliHLTDataBuffer::AliHLTDataSegment> AliHLTDataSegmentList;

  class AliHLTRawBuffer;
  typedef vector<AliHLTRawBuffer*>  AliHLTRawBufferPList;

  /**
   * @class AliHLTRawPage
   * Memory allocation is organized in pages of a fixed size. Within a
   * page, AliHLTRawBuffer chunks are created.
   */
  class AliHLTRawPage : public AliHLTLogging {
  public:
    /** standard constructor */
  AliHLTRawPage() : fSize(0), fPtr(NULL), fFreeBuffers(), fUsedBuffers() {}
    /** constructor */
    AliHLTRawPage(AliHLTUInt32_t pagesize);
    /** destructor */
    virtual ~AliHLTRawPage();

    /** alloc a buffer of specified size from the global pages*/
    static AliHLTRawBuffer* GlobalAlloc(AliHLTUInt32_t size, int verbosity=0);
    /** find buffer in the global pages */
    static AliHLTRawPage* FindPage(AliHLTRawBuffer* buffer);
    /** cleanup the global pages */
    static int GlobalClean();
    /** adjust global page size */
    static void SetGlobalPageSize(AliHLTUInt32_t size) {fgGlobalPageSize=size;}
    /** find next page after prev, or first page */
    static AliHLTRawPage* NextPage(const AliHLTRawPage* prev=NULL);

    /** alloc a buffer of specified size */
    AliHLTRawBuffer* Alloc(AliHLTUInt32_t size);
    /** free a buffer and merge consecutive free buffers */
    int Free(AliHLTRawBuffer* pBuffer);
    /** set the size of a raw buffer and release the remaining part */
    int SetSize(const AliHLTRawBuffer* pBuffer, AliHLTUInt32_t size);
    /// check if the buffer is in this page
    bool HasBuffer(const AliHLTRawBuffer* pBuffer);

    AliHLTUInt32_t Size() const {return fSize;}
    AliHLTUInt32_t Capacity() const;
    bool IsUsed() const {return fUsedBuffers.size()>0;}
    bool IsFragmented() const {return (fFreeBuffers.size()+fUsedBuffers.size())>1;}

    /**
     * Print page information
     */
    virtual void Print(const char* option);

  private:
    /** copy constructor prohibited */
    AliHLTRawPage(const AliHLTRawPage&);
    /** assignment operator prohibited */
    AliHLTRawPage& operator=(const AliHLTRawPage&);

    /// list of global pages
    static vector<AliHLTDataBuffer::AliHLTRawPage*> fgGlobalPages; //! transient
    /// pages size of global pages
    static AliHLTUInt32_t fgGlobalPageSize;                        //! transient

    /** page size */
    AliHLTUInt32_t fSize;                                          // see above
    /** the memory segment */
    AliHLTUInt8_t* fPtr;                                           //! transient

    /** list of free buffers */
    AliHLTRawBufferPList fFreeBuffers;                             //! transient
    /** list of used buffers */
    AliHLTRawBufferPList fUsedBuffers;                             //! transient
  };

  /**
   * @class AliHLTRawBuffer
   * @brief  Descriptor of the raw data buffer which can host several segments.
   */
  class AliHLTRawBuffer {
  public:
    /** standard constructor */
  AliHLTRawBuffer() : fSize(0), fTotalSize(0), fExternalPtr(NULL), fPtr(NULL), fLastEventCount(0) {}
    /** constructor */
    AliHLTRawBuffer(AliHLTUInt32_t size);
    /** constructor */
    AliHLTRawBuffer(AliHLTUInt32_t size, AliHLTUInt8_t* buffer);
    /** destructor */
    virtual ~AliHLTRawBuffer();

    /**
     * Use a fraction of the buffer.
     * @param size    size in bytes to be used
     * @return pointer to buffer
     */
    AliHLTUInt8_t* UseBuffer(AliHLTUInt32_t size);

    /**
     * split a buffer at specified size
     * only possible for buffers with external memory
     */
    AliHLTRawBuffer* Split(AliHLTUInt32_t size);

    /**
     * Check whether buffer fits for a request.
     * A buffer fits if it is at least of the requested size and at most
     * the requested size plus a margin. The margin increases with the
     * number of events the buffer has not been used.
     * @param size    size of the request in bytes
     * @return 1 if buffer is big enough, 0 if not
     */
    int CheckSize(AliHLTUInt32_t size) const;

    /**
     * Get used size of the buffer
     */
    AliHLTUInt32_t GetUsedSize() const {return fSize;}

    /**
     * Get total size of the buffer
     */
    AliHLTUInt32_t GetTotalSize() const {return fTotalSize;}

    /**
     * Get pointer of data buffer
     */
    AliHLTUInt8_t* GetPointer() const {return fPtr;}

    /**
     * Write check pattern
     */
    int WritePattern(const char* pattern, int size);

    /**
     * Check pattern
     */
    int CheckPattern(const char* pattern, int size) const;

    /**
     * Reset buffer.
     * Data buffer remains allocated, used size set to 0
     */
    int Reset();

    /*
     * Merge buffer with succeeding buffer.
     * Only possible if the buffers are consecutive with out any gap.
     */
    int Merge(const AliHLTRawBuffer& succ);

    /**
     * Print buffer information
     */
    virtual void Print(const char* option) const;

    int operator==(void* ptr) const;
    int operator==(AliHLTUInt8_t* ptr) const {return fPtr==ptr;}
    int operator<(void* ptr) const;
    int operator<=(void* ptr) const;
    int operator>(void* ptr) const;
    int operator-(void* ptr) const;
    int operator<(const AliHLTRawBuffer& op) const;
    int operator<=(const AliHLTRawBuffer& op) const;
    int operator>(const AliHLTRawBuffer& op) const;

    operator void*() const {return fPtr;}
    operator AliHLTUInt8_t*() const {return fPtr;}

  private:
    /** copy constructor prohibited */
    AliHLTRawBuffer(const AliHLTRawBuffer&);
    /** assignment operator prohibited */
    AliHLTRawBuffer& operator=(const AliHLTRawBuffer&);

    /** size of the currently occupied partition of the buffer */
    AliHLTUInt32_t fSize;                                          // see above
    /** total size of the buffer, including safety margin */
    AliHLTUInt32_t fTotalSize;                                     // see above
    /** optional external buffer */
    AliHLTUInt8_t* fExternalPtr;                                   //! transient
    /** the buffer, external or allocated */
    AliHLTUInt8_t* fPtr;                                           //! transient
    /** last event count where the buffer has been used */
    AliHLTUInt32_t fLastEventCount;                                //! transient
  };

 private:
  /** copy constructor prohibited */
  AliHLTDataBuffer(const AliHLTDataBuffer&);
  /** assignment operator prohibited */
  AliHLTDataBuffer& operator=(const AliHLTDataBuffer&);

  /* lets see if this is needed
     AliHLTDataSegment* FindDataSegment(AliHLTComponentDataType datatype);
  */

  /**
   * Find those data segments which match the input types of a component.
   * @param pConsumer       the component which subscribes to the buffer
   * @param tgtList         the list to receive the data segment descriptors
   * @return: number of data blocks which match the input data types 
   *          of the consumer, neg. error code if failed <br>
   *          -EINVAL       invalid parameter <br>
   */
  int FindMatchingDataSegments(const AliHLTComponent* pConsumer, 
			       AliHLTDataSegmentList& tgtList);

 protected:
  // 2010-02-01 make function protected in order to be used from unit test
  /**
   * Reset the data buffer.
   * Removes all consumers back to the @ref fConsumers list, deletes
   * segments and releases the Raw Buffer.
   */
  int ResetDataBuffer();
 private:

  //////////////////////////////////////////////////////////////////////////////

  // the data description

  // the data segments within this buffer
  vector<AliHLTDataSegment> fSegments;                             // see above

  // the list of all consumers which are going to subscribe to the buffer
  AliHLTConsumerDescriptorPList fConsumers;                         // see above
  // the list of all consumers which are currently subscribed to the buffer
  AliHLTConsumerDescriptorPList fActiveConsumers;                   // see above
  // the list of all consumers which are already released for the current event
  AliHLTConsumerDescriptorPList fReleasedConsumers;                 // see above

  // the buffer instance
  AliHLTRawBuffer* fpBuffer;                                       //! transient

  // flags indicating the state of the buffer
  AliHLTUInt32_t fFlags;                                           // see above

  /** list of tasks with forwarded data blocks */
  vector<AliHLTTask*> fForwardedSegmentSources;                    //! transient

  /** list of forwarded block descriptors */
  vector<AliHLTDataSegment> fForwardedSegments;                    //! transient

  //////////////////////////////////////////////////////////////////////////////
  // global buffer handling, internal use only

  /**
   * Create a raw buffer of a certain size.
   * The function tries to find a buffer of the given size (or a bit bigger by a 
   * certain margin @ref fgMargin) from the list of free buffers.
   * If no buffer is available, a new one is created and added to the buffer handling.
   * @param size            min. size of the requested buffer
   * @return pointer to raw buffer
   */
  static AliHLTRawBuffer* CreateRawBuffer(AliHLTUInt32_t size);

  /**
   * Set the data size of a raw buffer after it has been filled by
   * the component.
   */
  int SetRawBufferDataSize(AliHLTRawBuffer* pBuffer, AliHLTUInt32_t size) const;

  /**
   * Mark a buffer as free.
   * After the Data Buffer has finnished using the raw buffer, it is released
   * and added to the list of available buffers.
   * @param pBuffer         the raw buffer to release
   * @return >=0 if succeeded, neg. error code if failed
   */
  static int ReleaseRawBuffer(AliHLTRawBuffer* pBuffer);

  /**
   * Deletes all the raw buffers.
   * When the last Data Buffer object is destructed, all raw data buffers are
   * relesed.
   */
  static int DeleteRawBuffers();

  /**
   * Number of instances of AliHLTDataBuffer.
   * The statice variable is incremented and decremented in the constructor/
   * destructor. All internal data structures are cleaned up when the last
   * instance is exiting.
   */
  static int fgNofInstances;                                       // see above
  /** global list of free raw buffers */
  static vector<AliHLTRawBuffer*> fgFreeBuffers;                   // see above
  /** global list of currently active raw buffers */
  static vector<AliHLTRawBuffer*> fgActiveBuffers;                 // see above
  /** determines the raw buffer size margin at buffer requests */
  static AliHLTUInt32_t fgMargin;                                  // see above

  /** global instance to HLT logging class for static methods */
  static AliHLTLogging fgLogging;                                  // see above

  /** size of the safety pattern */
  static const Int_t fgkSafetyPatternSize;                         // see above

  /** the safety pattern */
  static const char fgkSafetyPattern[];                            //!transient

  static AliHLTUInt32_t fgEventCount;                              //!transient

  //////////////////////////////////////////////////////////////////////////////
  // internal helper functions

  /**
   * Find the consumer descriptor for a certain component and data type in 
   * a list of consumers.<br>
   * <b>Note:</b> There are three lists which contain the consumers in the
   * different states.
   * @param pConsumer       pointer to consumer component
   * @param list            list where to search for the consumer
   */
  AliHLTConsumerDescriptor* FindConsumer(const AliHLTComponent* pConsumer,
					 AliHLTConsumerDescriptorPList &list) const;

  /**
   * Change the state of a consumer.
   * The state of a consumer is determined by the list it is strored in, the
   * method moves a consumer from the source to the target list.
   * @param pDesc           pointer to consumer descriptor
   * @param srcList         list where the consumer is currently to be found
   * @param tgtList         list where to move the consumer
   */
  int ChangeConsumerState(AliHLTConsumerDescriptor* pDesc,
			  AliHLTConsumerDescriptorPList &srcList,
			  AliHLTConsumerDescriptorPList &tgtList);

  /**
   * Cleanup a consumer list.
   * Release all allocated data structures. <b>Note:</b> Not the component itself!
   */
  int CleanupConsumerList();

  ClassDef(AliHLTDataBuffer, 1)
};

#endif // ALIHLTDATABUFFER_H
 AliHLTDataBuffer.h:1
 AliHLTDataBuffer.h:2
 AliHLTDataBuffer.h:3
 AliHLTDataBuffer.h:4
 AliHLTDataBuffer.h:5
 AliHLTDataBuffer.h:6
 AliHLTDataBuffer.h:7
 AliHLTDataBuffer.h:8
 AliHLTDataBuffer.h:9
 AliHLTDataBuffer.h:10
 AliHLTDataBuffer.h:11
 AliHLTDataBuffer.h:12
 AliHLTDataBuffer.h:13
 AliHLTDataBuffer.h:14
 AliHLTDataBuffer.h:15
 AliHLTDataBuffer.h:16
 AliHLTDataBuffer.h:17
 AliHLTDataBuffer.h:18
 AliHLTDataBuffer.h:19
 AliHLTDataBuffer.h:20
 AliHLTDataBuffer.h:21
 AliHLTDataBuffer.h:22
 AliHLTDataBuffer.h:23
 AliHLTDataBuffer.h:24
 AliHLTDataBuffer.h:25
 AliHLTDataBuffer.h:26
 AliHLTDataBuffer.h:27
 AliHLTDataBuffer.h:28
 AliHLTDataBuffer.h:29
 AliHLTDataBuffer.h:30
 AliHLTDataBuffer.h:31
 AliHLTDataBuffer.h:32
 AliHLTDataBuffer.h:33
 AliHLTDataBuffer.h:34
 AliHLTDataBuffer.h:35
 AliHLTDataBuffer.h:36
 AliHLTDataBuffer.h:37
 AliHLTDataBuffer.h:38
 AliHLTDataBuffer.h:39
 AliHLTDataBuffer.h:40
 AliHLTDataBuffer.h:41
 AliHLTDataBuffer.h:42
 AliHLTDataBuffer.h:43
 AliHLTDataBuffer.h:44
 AliHLTDataBuffer.h:45
 AliHLTDataBuffer.h:46
 AliHLTDataBuffer.h:47
 AliHLTDataBuffer.h:48
 AliHLTDataBuffer.h:49
 AliHLTDataBuffer.h:50
 AliHLTDataBuffer.h:51
 AliHLTDataBuffer.h:52
 AliHLTDataBuffer.h:53
 AliHLTDataBuffer.h:54
 AliHLTDataBuffer.h:55
 AliHLTDataBuffer.h:56
 AliHLTDataBuffer.h:57
 AliHLTDataBuffer.h:58
 AliHLTDataBuffer.h:59
 AliHLTDataBuffer.h:60
 AliHLTDataBuffer.h:61
 AliHLTDataBuffer.h:62
 AliHLTDataBuffer.h:63
 AliHLTDataBuffer.h:64
 AliHLTDataBuffer.h:65
 AliHLTDataBuffer.h:66
 AliHLTDataBuffer.h:67
 AliHLTDataBuffer.h:68
 AliHLTDataBuffer.h:69
 AliHLTDataBuffer.h:70
 AliHLTDataBuffer.h:71
 AliHLTDataBuffer.h:72
 AliHLTDataBuffer.h:73
 AliHLTDataBuffer.h:74
 AliHLTDataBuffer.h:75
 AliHLTDataBuffer.h:76
 AliHLTDataBuffer.h:77
 AliHLTDataBuffer.h:78
 AliHLTDataBuffer.h:79
 AliHLTDataBuffer.h:80
 AliHLTDataBuffer.h:81
 AliHLTDataBuffer.h:82
 AliHLTDataBuffer.h:83
 AliHLTDataBuffer.h:84
 AliHLTDataBuffer.h:85
 AliHLTDataBuffer.h:86
 AliHLTDataBuffer.h:87
 AliHLTDataBuffer.h:88
 AliHLTDataBuffer.h:89
 AliHLTDataBuffer.h:90
 AliHLTDataBuffer.h:91
 AliHLTDataBuffer.h:92
 AliHLTDataBuffer.h:93
 AliHLTDataBuffer.h:94
 AliHLTDataBuffer.h:95
 AliHLTDataBuffer.h:96
 AliHLTDataBuffer.h:97
 AliHLTDataBuffer.h:98
 AliHLTDataBuffer.h:99
 AliHLTDataBuffer.h:100
 AliHLTDataBuffer.h:101
 AliHLTDataBuffer.h:102
 AliHLTDataBuffer.h:103
 AliHLTDataBuffer.h:104
 AliHLTDataBuffer.h:105
 AliHLTDataBuffer.h:106
 AliHLTDataBuffer.h:107
 AliHLTDataBuffer.h:108
 AliHLTDataBuffer.h:109
 AliHLTDataBuffer.h:110
 AliHLTDataBuffer.h:111
 AliHLTDataBuffer.h:112
 AliHLTDataBuffer.h:113
 AliHLTDataBuffer.h:114
 AliHLTDataBuffer.h:115
 AliHLTDataBuffer.h:116
 AliHLTDataBuffer.h:117
 AliHLTDataBuffer.h:118
 AliHLTDataBuffer.h:119
 AliHLTDataBuffer.h:120
 AliHLTDataBuffer.h:121
 AliHLTDataBuffer.h:122
 AliHLTDataBuffer.h:123
 AliHLTDataBuffer.h:124
 AliHLTDataBuffer.h:125
 AliHLTDataBuffer.h:126
 AliHLTDataBuffer.h:127
 AliHLTDataBuffer.h:128
 AliHLTDataBuffer.h:129
 AliHLTDataBuffer.h:130
 AliHLTDataBuffer.h:131
 AliHLTDataBuffer.h:132
 AliHLTDataBuffer.h:133
 AliHLTDataBuffer.h:134
 AliHLTDataBuffer.h:135
 AliHLTDataBuffer.h:136
 AliHLTDataBuffer.h:137
 AliHLTDataBuffer.h:138
 AliHLTDataBuffer.h:139
 AliHLTDataBuffer.h:140
 AliHLTDataBuffer.h:141
 AliHLTDataBuffer.h:142
 AliHLTDataBuffer.h:143
 AliHLTDataBuffer.h:144
 AliHLTDataBuffer.h:145
 AliHLTDataBuffer.h:146
 AliHLTDataBuffer.h:147
 AliHLTDataBuffer.h:148
 AliHLTDataBuffer.h:149
 AliHLTDataBuffer.h:150
 AliHLTDataBuffer.h:151
 AliHLTDataBuffer.h:152
 AliHLTDataBuffer.h:153
 AliHLTDataBuffer.h:154
 AliHLTDataBuffer.h:155
 AliHLTDataBuffer.h:156
 AliHLTDataBuffer.h:157
 AliHLTDataBuffer.h:158
 AliHLTDataBuffer.h:159
 AliHLTDataBuffer.h:160
 AliHLTDataBuffer.h:161
 AliHLTDataBuffer.h:162
 AliHLTDataBuffer.h:163
 AliHLTDataBuffer.h:164
 AliHLTDataBuffer.h:165
 AliHLTDataBuffer.h:166
 AliHLTDataBuffer.h:167
 AliHLTDataBuffer.h:168
 AliHLTDataBuffer.h:169
 AliHLTDataBuffer.h:170
 AliHLTDataBuffer.h:171
 AliHLTDataBuffer.h:172
 AliHLTDataBuffer.h:173
 AliHLTDataBuffer.h:174
 AliHLTDataBuffer.h:175
 AliHLTDataBuffer.h:176
 AliHLTDataBuffer.h:177
 AliHLTDataBuffer.h:178
 AliHLTDataBuffer.h:179
 AliHLTDataBuffer.h:180
 AliHLTDataBuffer.h:181
 AliHLTDataBuffer.h:182
 AliHLTDataBuffer.h:183
 AliHLTDataBuffer.h:184
 AliHLTDataBuffer.h:185
 AliHLTDataBuffer.h:186
 AliHLTDataBuffer.h:187
 AliHLTDataBuffer.h:188
 AliHLTDataBuffer.h:189
 AliHLTDataBuffer.h:190
 AliHLTDataBuffer.h:191
 AliHLTDataBuffer.h:192
 AliHLTDataBuffer.h:193
 AliHLTDataBuffer.h:194
 AliHLTDataBuffer.h:195
 AliHLTDataBuffer.h:196
 AliHLTDataBuffer.h:197
 AliHLTDataBuffer.h:198
 AliHLTDataBuffer.h:199
 AliHLTDataBuffer.h:200
 AliHLTDataBuffer.h:201
 AliHLTDataBuffer.h:202
 AliHLTDataBuffer.h:203
 AliHLTDataBuffer.h:204
 AliHLTDataBuffer.h:205
 AliHLTDataBuffer.h:206
 AliHLTDataBuffer.h:207
 AliHLTDataBuffer.h:208
 AliHLTDataBuffer.h:209
 AliHLTDataBuffer.h:210
 AliHLTDataBuffer.h:211
 AliHLTDataBuffer.h:212
 AliHLTDataBuffer.h:213
 AliHLTDataBuffer.h:214
 AliHLTDataBuffer.h:215
 AliHLTDataBuffer.h:216
 AliHLTDataBuffer.h:217
 AliHLTDataBuffer.h:218
 AliHLTDataBuffer.h:219
 AliHLTDataBuffer.h:220
 AliHLTDataBuffer.h:221
 AliHLTDataBuffer.h:222
 AliHLTDataBuffer.h:223
 AliHLTDataBuffer.h:224
 AliHLTDataBuffer.h:225
 AliHLTDataBuffer.h:226
 AliHLTDataBuffer.h:227
 AliHLTDataBuffer.h:228
 AliHLTDataBuffer.h:229
 AliHLTDataBuffer.h:230
 AliHLTDataBuffer.h:231
 AliHLTDataBuffer.h:232
 AliHLTDataBuffer.h:233
 AliHLTDataBuffer.h:234
 AliHLTDataBuffer.h:235
 AliHLTDataBuffer.h:236
 AliHLTDataBuffer.h:237
 AliHLTDataBuffer.h:238
 AliHLTDataBuffer.h:239
 AliHLTDataBuffer.h:240
 AliHLTDataBuffer.h:241
 AliHLTDataBuffer.h:242
 AliHLTDataBuffer.h:243
 AliHLTDataBuffer.h:244
 AliHLTDataBuffer.h:245
 AliHLTDataBuffer.h:246
 AliHLTDataBuffer.h:247
 AliHLTDataBuffer.h:248
 AliHLTDataBuffer.h:249
 AliHLTDataBuffer.h:250
 AliHLTDataBuffer.h:251
 AliHLTDataBuffer.h:252
 AliHLTDataBuffer.h:253
 AliHLTDataBuffer.h:254
 AliHLTDataBuffer.h:255
 AliHLTDataBuffer.h:256
 AliHLTDataBuffer.h:257
 AliHLTDataBuffer.h:258
 AliHLTDataBuffer.h:259
 AliHLTDataBuffer.h:260
 AliHLTDataBuffer.h:261
 AliHLTDataBuffer.h:262
 AliHLTDataBuffer.h:263
 AliHLTDataBuffer.h:264
 AliHLTDataBuffer.h:265
 AliHLTDataBuffer.h:266
 AliHLTDataBuffer.h:267
 AliHLTDataBuffer.h:268
 AliHLTDataBuffer.h:269
 AliHLTDataBuffer.h:270
 AliHLTDataBuffer.h:271
 AliHLTDataBuffer.h:272
 AliHLTDataBuffer.h:273
 AliHLTDataBuffer.h:274
 AliHLTDataBuffer.h:275
 AliHLTDataBuffer.h:276
 AliHLTDataBuffer.h:277
 AliHLTDataBuffer.h:278
 AliHLTDataBuffer.h:279
 AliHLTDataBuffer.h:280
 AliHLTDataBuffer.h:281
 AliHLTDataBuffer.h:282
 AliHLTDataBuffer.h:283
 AliHLTDataBuffer.h:284
 AliHLTDataBuffer.h:285
 AliHLTDataBuffer.h:286
 AliHLTDataBuffer.h:287
 AliHLTDataBuffer.h:288
 AliHLTDataBuffer.h:289
 AliHLTDataBuffer.h:290
 AliHLTDataBuffer.h:291
 AliHLTDataBuffer.h:292
 AliHLTDataBuffer.h:293
 AliHLTDataBuffer.h:294
 AliHLTDataBuffer.h:295
 AliHLTDataBuffer.h:296
 AliHLTDataBuffer.h:297
 AliHLTDataBuffer.h:298
 AliHLTDataBuffer.h:299
 AliHLTDataBuffer.h:300
 AliHLTDataBuffer.h:301
 AliHLTDataBuffer.h:302
 AliHLTDataBuffer.h:303
 AliHLTDataBuffer.h:304
 AliHLTDataBuffer.h:305
 AliHLTDataBuffer.h:306
 AliHLTDataBuffer.h:307
 AliHLTDataBuffer.h:308
 AliHLTDataBuffer.h:309
 AliHLTDataBuffer.h:310
 AliHLTDataBuffer.h:311
 AliHLTDataBuffer.h:312
 AliHLTDataBuffer.h:313
 AliHLTDataBuffer.h:314
 AliHLTDataBuffer.h:315
 AliHLTDataBuffer.h:316
 AliHLTDataBuffer.h:317
 AliHLTDataBuffer.h:318
 AliHLTDataBuffer.h:319
 AliHLTDataBuffer.h:320
 AliHLTDataBuffer.h:321
 AliHLTDataBuffer.h:322
 AliHLTDataBuffer.h:323
 AliHLTDataBuffer.h:324
 AliHLTDataBuffer.h:325
 AliHLTDataBuffer.h:326
 AliHLTDataBuffer.h:327
 AliHLTDataBuffer.h:328
 AliHLTDataBuffer.h:329
 AliHLTDataBuffer.h:330
 AliHLTDataBuffer.h:331
 AliHLTDataBuffer.h:332
 AliHLTDataBuffer.h:333
 AliHLTDataBuffer.h:334
 AliHLTDataBuffer.h:335
 AliHLTDataBuffer.h:336
 AliHLTDataBuffer.h:337
 AliHLTDataBuffer.h:338
 AliHLTDataBuffer.h:339
 AliHLTDataBuffer.h:340
 AliHLTDataBuffer.h:341
 AliHLTDataBuffer.h:342
 AliHLTDataBuffer.h:343
 AliHLTDataBuffer.h:344
 AliHLTDataBuffer.h:345
 AliHLTDataBuffer.h:346
 AliHLTDataBuffer.h:347
 AliHLTDataBuffer.h:348
 AliHLTDataBuffer.h:349
 AliHLTDataBuffer.h:350
 AliHLTDataBuffer.h:351
 AliHLTDataBuffer.h:352
 AliHLTDataBuffer.h:353
 AliHLTDataBuffer.h:354
 AliHLTDataBuffer.h:355
 AliHLTDataBuffer.h:356
 AliHLTDataBuffer.h:357
 AliHLTDataBuffer.h:358
 AliHLTDataBuffer.h:359
 AliHLTDataBuffer.h:360
 AliHLTDataBuffer.h:361
 AliHLTDataBuffer.h:362
 AliHLTDataBuffer.h:363
 AliHLTDataBuffer.h:364
 AliHLTDataBuffer.h:365
 AliHLTDataBuffer.h:366
 AliHLTDataBuffer.h:367
 AliHLTDataBuffer.h:368
 AliHLTDataBuffer.h:369
 AliHLTDataBuffer.h:370
 AliHLTDataBuffer.h:371
 AliHLTDataBuffer.h:372
 AliHLTDataBuffer.h:373
 AliHLTDataBuffer.h:374
 AliHLTDataBuffer.h:375
 AliHLTDataBuffer.h:376
 AliHLTDataBuffer.h:377
 AliHLTDataBuffer.h:378
 AliHLTDataBuffer.h:379
 AliHLTDataBuffer.h:380
 AliHLTDataBuffer.h:381
 AliHLTDataBuffer.h:382
 AliHLTDataBuffer.h:383
 AliHLTDataBuffer.h:384
 AliHLTDataBuffer.h:385
 AliHLTDataBuffer.h:386
 AliHLTDataBuffer.h:387
 AliHLTDataBuffer.h:388
 AliHLTDataBuffer.h:389
 AliHLTDataBuffer.h:390
 AliHLTDataBuffer.h:391
 AliHLTDataBuffer.h:392
 AliHLTDataBuffer.h:393
 AliHLTDataBuffer.h:394
 AliHLTDataBuffer.h:395
 AliHLTDataBuffer.h:396
 AliHLTDataBuffer.h:397
 AliHLTDataBuffer.h:398
 AliHLTDataBuffer.h:399
 AliHLTDataBuffer.h:400
 AliHLTDataBuffer.h:401
 AliHLTDataBuffer.h:402
 AliHLTDataBuffer.h:403
 AliHLTDataBuffer.h:404
 AliHLTDataBuffer.h:405
 AliHLTDataBuffer.h:406
 AliHLTDataBuffer.h:407
 AliHLTDataBuffer.h:408
 AliHLTDataBuffer.h:409
 AliHLTDataBuffer.h:410
 AliHLTDataBuffer.h:411
 AliHLTDataBuffer.h:412
 AliHLTDataBuffer.h:413
 AliHLTDataBuffer.h:414
 AliHLTDataBuffer.h:415
 AliHLTDataBuffer.h:416
 AliHLTDataBuffer.h:417
 AliHLTDataBuffer.h:418
 AliHLTDataBuffer.h:419
 AliHLTDataBuffer.h:420
 AliHLTDataBuffer.h:421
 AliHLTDataBuffer.h:422
 AliHLTDataBuffer.h:423
 AliHLTDataBuffer.h:424
 AliHLTDataBuffer.h:425
 AliHLTDataBuffer.h:426
 AliHLTDataBuffer.h:427
 AliHLTDataBuffer.h:428
 AliHLTDataBuffer.h:429
 AliHLTDataBuffer.h:430
 AliHLTDataBuffer.h:431
 AliHLTDataBuffer.h:432
 AliHLTDataBuffer.h:433
 AliHLTDataBuffer.h:434
 AliHLTDataBuffer.h:435
 AliHLTDataBuffer.h:436
 AliHLTDataBuffer.h:437
 AliHLTDataBuffer.h:438
 AliHLTDataBuffer.h:439
 AliHLTDataBuffer.h:440
 AliHLTDataBuffer.h:441
 AliHLTDataBuffer.h:442
 AliHLTDataBuffer.h:443
 AliHLTDataBuffer.h:444
 AliHLTDataBuffer.h:445
 AliHLTDataBuffer.h:446
 AliHLTDataBuffer.h:447
 AliHLTDataBuffer.h:448
 AliHLTDataBuffer.h:449
 AliHLTDataBuffer.h:450
 AliHLTDataBuffer.h:451
 AliHLTDataBuffer.h:452
 AliHLTDataBuffer.h:453
 AliHLTDataBuffer.h:454
 AliHLTDataBuffer.h:455
 AliHLTDataBuffer.h:456
 AliHLTDataBuffer.h:457
 AliHLTDataBuffer.h:458
 AliHLTDataBuffer.h:459
 AliHLTDataBuffer.h:460
 AliHLTDataBuffer.h:461
 AliHLTDataBuffer.h:462
 AliHLTDataBuffer.h:463
 AliHLTDataBuffer.h:464
 AliHLTDataBuffer.h:465
 AliHLTDataBuffer.h:466
 AliHLTDataBuffer.h:467
 AliHLTDataBuffer.h:468
 AliHLTDataBuffer.h:469
 AliHLTDataBuffer.h:470
 AliHLTDataBuffer.h:471
 AliHLTDataBuffer.h:472
 AliHLTDataBuffer.h:473
 AliHLTDataBuffer.h:474
 AliHLTDataBuffer.h:475
 AliHLTDataBuffer.h:476
 AliHLTDataBuffer.h:477
 AliHLTDataBuffer.h:478
 AliHLTDataBuffer.h:479
 AliHLTDataBuffer.h:480
 AliHLTDataBuffer.h:481
 AliHLTDataBuffer.h:482
 AliHLTDataBuffer.h:483
 AliHLTDataBuffer.h:484
 AliHLTDataBuffer.h:485
 AliHLTDataBuffer.h:486
 AliHLTDataBuffer.h:487
 AliHLTDataBuffer.h:488
 AliHLTDataBuffer.h:489
 AliHLTDataBuffer.h:490
 AliHLTDataBuffer.h:491
 AliHLTDataBuffer.h:492
 AliHLTDataBuffer.h:493
 AliHLTDataBuffer.h:494
 AliHLTDataBuffer.h:495
 AliHLTDataBuffer.h:496
 AliHLTDataBuffer.h:497
 AliHLTDataBuffer.h:498
 AliHLTDataBuffer.h:499
 AliHLTDataBuffer.h:500
 AliHLTDataBuffer.h:501
 AliHLTDataBuffer.h:502
 AliHLTDataBuffer.h:503
 AliHLTDataBuffer.h:504
 AliHLTDataBuffer.h:505
 AliHLTDataBuffer.h:506
 AliHLTDataBuffer.h:507
 AliHLTDataBuffer.h:508
 AliHLTDataBuffer.h:509
 AliHLTDataBuffer.h:510
 AliHLTDataBuffer.h:511
 AliHLTDataBuffer.h:512
 AliHLTDataBuffer.h:513
 AliHLTDataBuffer.h:514
 AliHLTDataBuffer.h:515
 AliHLTDataBuffer.h:516
 AliHLTDataBuffer.h:517
 AliHLTDataBuffer.h:518
 AliHLTDataBuffer.h:519
 AliHLTDataBuffer.h:520
 AliHLTDataBuffer.h:521
 AliHLTDataBuffer.h:522
 AliHLTDataBuffer.h:523
 AliHLTDataBuffer.h:524
 AliHLTDataBuffer.h:525
 AliHLTDataBuffer.h:526
 AliHLTDataBuffer.h:527
 AliHLTDataBuffer.h:528
 AliHLTDataBuffer.h:529
 AliHLTDataBuffer.h:530
 AliHLTDataBuffer.h:531
 AliHLTDataBuffer.h:532
 AliHLTDataBuffer.h:533
 AliHLTDataBuffer.h:534
 AliHLTDataBuffer.h:535
 AliHLTDataBuffer.h:536
 AliHLTDataBuffer.h:537
 AliHLTDataBuffer.h:538
 AliHLTDataBuffer.h:539
 AliHLTDataBuffer.h:540
 AliHLTDataBuffer.h:541
 AliHLTDataBuffer.h:542
 AliHLTDataBuffer.h:543
 AliHLTDataBuffer.h:544
 AliHLTDataBuffer.h:545
 AliHLTDataBuffer.h:546
 AliHLTDataBuffer.h:547
 AliHLTDataBuffer.h:548
 AliHLTDataBuffer.h:549
 AliHLTDataBuffer.h:550
 AliHLTDataBuffer.h:551
 AliHLTDataBuffer.h:552
 AliHLTDataBuffer.h:553
 AliHLTDataBuffer.h:554
 AliHLTDataBuffer.h:555
 AliHLTDataBuffer.h:556
 AliHLTDataBuffer.h:557
 AliHLTDataBuffer.h:558
 AliHLTDataBuffer.h:559
 AliHLTDataBuffer.h:560
 AliHLTDataBuffer.h:561
 AliHLTDataBuffer.h:562
 AliHLTDataBuffer.h:563
 AliHLTDataBuffer.h:564
 AliHLTDataBuffer.h:565
 AliHLTDataBuffer.h:566
 AliHLTDataBuffer.h:567
 AliHLTDataBuffer.h:568
 AliHLTDataBuffer.h:569
 AliHLTDataBuffer.h:570
 AliHLTDataBuffer.h:571
 AliHLTDataBuffer.h:572
 AliHLTDataBuffer.h:573
 AliHLTDataBuffer.h:574
 AliHLTDataBuffer.h:575
 AliHLTDataBuffer.h:576
 AliHLTDataBuffer.h:577
 AliHLTDataBuffer.h:578
 AliHLTDataBuffer.h:579
 AliHLTDataBuffer.h:580
 AliHLTDataBuffer.h:581
 AliHLTDataBuffer.h:582
 AliHLTDataBuffer.h:583
 AliHLTDataBuffer.h:584
 AliHLTDataBuffer.h:585
 AliHLTDataBuffer.h:586
 AliHLTDataBuffer.h:587
 AliHLTDataBuffer.h:588
 AliHLTDataBuffer.h:589
 AliHLTDataBuffer.h:590
 AliHLTDataBuffer.h:591
 AliHLTDataBuffer.h:592
 AliHLTDataBuffer.h:593
 AliHLTDataBuffer.h:594
 AliHLTDataBuffer.h:595
 AliHLTDataBuffer.h:596
 AliHLTDataBuffer.h:597
 AliHLTDataBuffer.h:598
 AliHLTDataBuffer.h:599
 AliHLTDataBuffer.h:600
 AliHLTDataBuffer.h:601
 AliHLTDataBuffer.h:602
 AliHLTDataBuffer.h:603
 AliHLTDataBuffer.h:604
 AliHLTDataBuffer.h:605
 AliHLTDataBuffer.h:606
 AliHLTDataBuffer.h:607
 AliHLTDataBuffer.h:608
 AliHLTDataBuffer.h:609
 AliHLTDataBuffer.h:610
 AliHLTDataBuffer.h:611
 AliHLTDataBuffer.h:612
 AliHLTDataBuffer.h:613
 AliHLTDataBuffer.h:614
 AliHLTDataBuffer.h:615
 AliHLTDataBuffer.h:616
 AliHLTDataBuffer.h:617
 AliHLTDataBuffer.h:618
 AliHLTDataBuffer.h:619
 AliHLTDataBuffer.h:620
 AliHLTDataBuffer.h:621
 AliHLTDataBuffer.h:622
 AliHLTDataBuffer.h:623
 AliHLTDataBuffer.h:624
 AliHLTDataBuffer.h:625
 AliHLTDataBuffer.h:626
 AliHLTDataBuffer.h:627
 AliHLTDataBuffer.h:628
 AliHLTDataBuffer.h:629
 AliHLTDataBuffer.h:630
 AliHLTDataBuffer.h:631
 AliHLTDataBuffer.h:632
 AliHLTDataBuffer.h:633
 AliHLTDataBuffer.h:634
 AliHLTDataBuffer.h:635
 AliHLTDataBuffer.h:636
 AliHLTDataBuffer.h:637
 AliHLTDataBuffer.h:638
 AliHLTDataBuffer.h:639
 AliHLTDataBuffer.h:640
 AliHLTDataBuffer.h:641
 AliHLTDataBuffer.h:642
 AliHLTDataBuffer.h:643
 AliHLTDataBuffer.h:644
 AliHLTDataBuffer.h:645
 AliHLTDataBuffer.h:646
 AliHLTDataBuffer.h:647
 AliHLTDataBuffer.h:648
 AliHLTDataBuffer.h:649
 AliHLTDataBuffer.h:650
 AliHLTDataBuffer.h:651
 AliHLTDataBuffer.h:652
 AliHLTDataBuffer.h:653
 AliHLTDataBuffer.h:654
 AliHLTDataBuffer.h:655
 AliHLTDataBuffer.h:656
 AliHLTDataBuffer.h:657
 AliHLTDataBuffer.h:658
 AliHLTDataBuffer.h:659
 AliHLTDataBuffer.h:660
 AliHLTDataBuffer.h:661
 AliHLTDataBuffer.h:662
 AliHLTDataBuffer.h:663
 AliHLTDataBuffer.h:664
 AliHLTDataBuffer.h:665
 AliHLTDataBuffer.h:666
 AliHLTDataBuffer.h:667
 AliHLTDataBuffer.h:668
 AliHLTDataBuffer.h:669
 AliHLTDataBuffer.h:670
 AliHLTDataBuffer.h:671
 AliHLTDataBuffer.h:672
 AliHLTDataBuffer.h:673
 AliHLTDataBuffer.h:674
 AliHLTDataBuffer.h:675
 AliHLTDataBuffer.h:676
 AliHLTDataBuffer.h:677
 AliHLTDataBuffer.h:678
 AliHLTDataBuffer.h:679
 AliHLTDataBuffer.h:680
 AliHLTDataBuffer.h:681
 AliHLTDataBuffer.h:682
 AliHLTDataBuffer.h:683
 AliHLTDataBuffer.h:684
 AliHLTDataBuffer.h:685
 AliHLTDataBuffer.h:686
 AliHLTDataBuffer.h:687
 AliHLTDataBuffer.h:688
 AliHLTDataBuffer.h:689
 AliHLTDataBuffer.h:690
 AliHLTDataBuffer.h:691
 AliHLTDataBuffer.h:692
 AliHLTDataBuffer.h:693
 AliHLTDataBuffer.h:694
 AliHLTDataBuffer.h:695
 AliHLTDataBuffer.h:696
 AliHLTDataBuffer.h:697
 AliHLTDataBuffer.h:698
 AliHLTDataBuffer.h:699
 AliHLTDataBuffer.h:700
 AliHLTDataBuffer.h:701
 AliHLTDataBuffer.h:702
 AliHLTDataBuffer.h:703
 AliHLTDataBuffer.h:704
 AliHLTDataBuffer.h:705
 AliHLTDataBuffer.h:706
 AliHLTDataBuffer.h:707
 AliHLTDataBuffer.h:708
 AliHLTDataBuffer.h:709
 AliHLTDataBuffer.h:710
 AliHLTDataBuffer.h:711
 AliHLTDataBuffer.h:712
 AliHLTDataBuffer.h:713
 AliHLTDataBuffer.h:714
 AliHLTDataBuffer.h:715
 AliHLTDataBuffer.h:716
 AliHLTDataBuffer.h:717
 AliHLTDataBuffer.h:718
 AliHLTDataBuffer.h:719
 AliHLTDataBuffer.h:720
 AliHLTDataBuffer.h:721
 AliHLTDataBuffer.h:722
 AliHLTDataBuffer.h:723
 AliHLTDataBuffer.h:724
 AliHLTDataBuffer.h:725
 AliHLTDataBuffer.h:726