/*****************************************************************************/
/*!
* \file memory_manager_malloc.h
*
* Author: Sergey Berezin
*
* Created: Tue Apr 19 14:30:36 2005
*
*
*
* License to use, copy, modify, sell and/or distribute this software
* and its documentation for any purpose is hereby granted without
* royalty, subject to the terms and conditions defined in the \ref
* LICENSE file provided with this distribution.
*
*
*
* Class MemoryManagerMalloc: default implementation of MemoryManager
* using malloc().
*
* Typical use of this class is to create
* MemoryManager* mm = new MemoryManager(sizeof(YourClass));
* where YourClass has operators new and delete redefined:
* void* YourClass::operator new(size_t, MemoryManager* mm)
* { return mm->newData(); }
* void YourClass::delete(void*) { } // do not deallocate memory here
* Then, create objects with obj = new(mm) YourClass(), and destroy them with
* delete obj; mm->deleteData(obj);
*/
/*****************************************************************************/
#ifndef _cvc3__memory_manager_malloc_h
#define _cvc3__memory_manager_malloc_h
#include "memory_manager.h"
namespace CVC3 {
class MemoryManagerMalloc: public MemoryManager {
public:
// Constructor
MemoryManagerMalloc() { }
// Destructor
~MemoryManagerMalloc() { }
void* newData(size_t size) {
return malloc(size);
}
void deleteData(void* d) {
free(d);
}
}; // end of class MemoryManager
}
#endif