#ifndef RQRAWSCANPOOLS_H
#define RQRAWSCANPOOLS_H

#include "MemoryFactory.h"
#include "RawScan.h"

RAW_SCAN_API NDTS_Boolean CALL_CONV RawScan_InitRawScanMemoryPools() ;

// Functions used to retrieve the memory pools that are used to allocate memory for raw scans.
RAW_SCAN_API NDTS_Boolean CALL_CONV RawScan_AllocRawScanStaticMemoryPools() ;
RAW_SCAN_API NDTS_Boolean CALL_CONV RawScan_AllocRawScanAScanBodyMemoryPool(unsigned long setIndex, unsigned long aScanIndex, unsigned long size) ;
RAW_SCAN_API NDTS_Boolean CALL_CONV RawScan_AllocRawScanAllAScanBodyMemoryPool(unsigned long setIndex, unsigned long size) ;
RAW_SCAN_API NDTS_Boolean CALL_CONV RawScan_AllocRawScanBScanTrailerMemoryPool(unsigned long setIndex, unsigned long size) ;
RAW_SCAN_API NDTS_Boolean CALL_CONV RawScan_AllocRawScanGateValuesBodyMemoryPool(unsigned long setIndex, unsigned long size) ;
RAW_SCAN_API NDTS_Boolean CALL_CONV RawScan_AllocRawScanGateValuesTrailerMemoryPool(unsigned long setIndex, unsigned long size) ;

RAW_SCAN_API TPoolHandle CALL_CONV RawScan_ReturnRawScanMemoryBlockNodeMemoryPool() ;
RAW_SCAN_API TPoolHandle CALL_CONV RawScan_ReturnRawScanProtectedMemoryPool() ;
RAW_SCAN_API TPoolHandle CALL_CONV RawScan_ReturnRawScanDataAHeaderMemoryPool() ;
RAW_SCAN_API TPoolHandle CALL_CONV RawScan_ReturnRawScanDataBHeaderMemoryPool() ;
RAW_SCAN_API TPoolHandle CALL_CONV RawScan_ReturnRawScanAScanBodyMemoryPool(unsigned long setIndex, unsigned long aScanIndex) ;
RAW_SCAN_API TPoolHandle CALL_CONV RawScan_ReturnRawScanBScanTrailerMemoryPool(unsigned long setIndex) ;
RAW_SCAN_API TPoolHandle CALL_CONV RawScan_ReturnRawScanGateValuesBodyMemoryPool(unsigned long setIndex) ;
RAW_SCAN_API TPoolHandle CALL_CONV RawScan_ReturnRawScanGateValuesTrailerMemoryPool(unsigned long setIndex) ;

#endif