8class MemoryManagerBase {
 
   10    MemoryManagerBase() {}
 
   11    virtual ~MemoryManagerBase() {} 
 
   13    virtual void GarbageCollection() = 0; 
 
   15    virtual Effect* AllocEffect() = 0;          
 
   16    virtual void FreeEffect(
void* pObject) = 0; 
 
   17    virtual ulong GetNumAllocEffect() 
const = 0;  
 
   18    virtual ulong GetNumActiveEffect() 
const = 0; 
 
   19    virtual ulong GetNumFreeEffect() 
const = 0;   
 
   21    virtual Emitter* AllocEmitter() = 0;         
 
   22    virtual void FreeEmitter(
void* pObject) = 0; 
 
   23    virtual ulong GetNumAllocEmitter() 
const = 0;  
 
   24    virtual ulong GetNumActiveEmitter() 
const = 0; 
 
   25    virtual ulong GetNumFreeEmitter() 
const = 0;   
 
   28    virtual void FreeParticleManager(
void* pObject) = 0; 
 
   29    virtual ulong GetNumAllocParticleManager() 
const = 0;  
 
   30    virtual ulong GetNumActiveParticleManager() 
const = 0; 
 
   31    virtual ulong GetNumFreeParticleManager() 
const = 0;   
 
   33    virtual Particle* AllocParticle() = 0;        
 
   34    virtual void FreeParticle(
void* pObject) = 0; 
 
   35    virtual ulong GetNumAllocParticle() 
const = 0;  
 
   36    virtual ulong GetNumActiveParticle() 
const = 0; 
 
   37    virtual ulong GetNumFreeParticle() 
const = 0;   
 
   39    virtual void* AllocHeap(ulong size) = 0;