#ifndef RQRAWSCANPOOLS_H
#define RQRAWSCANPOOLS_H

#include "RQConstants.h"
#include "RQMemoryFactoryInternal.h"

NDTS_Boolean CALL_CONV RQ_InitRawScanMemoryPools() ;

// Functions used to retrieve the memory pools that are used to allocate memory for raw scans.
NDTS_Boolean CALL_CONV RQ_AllocRawScanStaticMemoryPools() ;
NDTS_Boolean CALL_CONV RQ_AllocRawScanAScanBodyMemoryPool(unsigned long setIndex, unsigned long aScanIndex, unsigned long size) ;
NDTS_Boolean CALL_CONV RQ_AllocRawScanAllAScanBodyMemoryPool(unsigned long setIndex, unsigned long size) ;
NDTS_Boolean CALL_CONV RQ_AllocRawScanBScanTrailerMemoryPool(unsigned long setIndex, unsigned long size) ;
NDTS_Boolean CALL_CONV RQ_AllocRawScanGateValuesBodyMemoryPool(unsigned long setIndex, unsigned long size) ;
NDTS_Boolean CALL_CONV RQ_AllocRawScanGateValuesTrailerMemoryPool(unsigned long setIndex, unsigned long size) ;

TPoolHandle CALL_CONV RQ_ReturnRawScanMemoryBlockNodeMemoryPool() ;
TPoolHandle CALL_CONV RQ_ReturnRawScanProtectedMemoryPool() ;
TPoolHandle CALL_CONV RQ_ReturnRawScanDataAHeaderMemoryPool() ;
TPoolHandle CALL_CONV RQ_ReturnRawScanDataBHeaderMemoryPool() ;
TPoolHandle CALL_CONV RQ_ReturnRawScanAScanBodyMemoryPool(unsigned long setIndex, unsigned long aScanIndex) ;
TPoolHandle CALL_CONV RQ_ReturnRawScanBScanTrailerMemoryPool(unsigned long setIndex) ;
TPoolHandle CALL_CONV RQ_ReturnRawScanGateValuesBodyMemoryPool(unsigned long setIndex) ;
TPoolHandle CALL_CONV RQ_ReturnRawScanGateValuesTrailerMemoryPool(unsigned long setIndex) ;

#endif