#ifndef RQMEMORYFACTORYINTERNAL_H
#define RQMEMORYFACTORYINTERNAL_H

#include "RQConstants.h"

#ifdef __cplusplus
extern "C" {
#endif

	typedef void * TPoolHandle ;

	TPoolHandle CALL_CONV	RQ_AllocPool(unsigned long size) ;
	void CALL_CONV			RQ_FreePool(TPoolHandle handle) ;
	void CALL_CONV			RQ_GarbageCollectPools() ;
	void CALL_CONV			RQ_FreePools(); 

	void * CALL_CONV		RQ_AllocFromPool(TPoolHandle handle) ;
	void CALL_CONV			RQ_FreeToPool(TPoolHandle handle, void *pMemory) ;
	TPoolHandle CALL_CONV	RQ_FindPool(void *pMemory) ;

	void * CALL_CONV		RQ_Alloc(unsigned long size) ;
	void CALL_CONV			RQ_Free(void *pMemory) ;

	void CALL_CONV			RQ_PurgeMemoryPool(TPoolHandle handle) ;

#ifdef __cplusplus
}
#endif


#endif