1 #ifndef __JLANG__JALLOCATOR__ 
    2 #define __JLANG__JALLOCATOR__ 
   16 namespace JPP { 
using namespace JLANG; }
 
   40       buffer = 
new unsigned char[block_size * number_of_blocks];
 
   43         THROW(
JException, 
"JAllocatorBuffer::init(): not enough space in memory.");
 
   50       for (
JBlock_t i = 0; i != number_of_blocks; p += block_size) {
 
   65     inline void* 
allocate(
const std::size_t block_size)
 
   83     void free(
void* p, 
const std::size_t block_size)
 
   85       unsigned char* q = 
static_cast<unsigned char*
>(p);
 
   96         THROW(
JException, 
"JAllocatorBuffer::free(): failed truncation check.");
 
  137                const JBlock_t      number_of_blocks = std::numeric_limits<JBlock_t>::max()) :
 
  166       for (const_iterator i = this->begin(); i != this->end(); ++i) {
 
  167         n += i->numberOfFreeBlocks;
 
  183         for (iterator i = this->begin(); ; ++i) {
 
  185           if (i == this->end()) {
 
  194           if (i->numberOfFreeBlocks != 0) {
 
  221       if (this->size() != 1) {
 
  223         if (p <  pDealloc->buffer ||
 
  228             if (p >= i->buffer && 
 
  251           if (i != this->rend()) {
 
  253             delete [] this->rbegin()->buffer;
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
 
Memory management for small objects.
 
JAllocatorBuffer * pDealloc
 
long long int getTotalRAM()
Get total used RAM.
 
JAllocator(const std::size_t block_size, const JBlock_t number_of_blocks=std::numeric_limits< JBlock_t >::max())
Constructor.
 
JAllocatorBuffer::JBlock_t JBlock_t
 
void * allocate()
Allocate memory.
 
void free(void *p)
Deallocate memory.
 
long long int getFreeRAM()
Get total free RAM.
 
JAllocatorBuffer * pAlloc
 
Auxiliary classes and methods for language specific functionality.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Low-level memory management.
 
JBlock_t firstAvailableBlock
 
JAllocatorBuffer(const std::size_t block_size, const JBlock_t number_of_blocks)
Constructor.
 
JBlock_t numberOfFreeBlocks
 
void * allocate(const std::size_t block_size)
Allocate memory.
 
void free(void *p, const std::size_t block_size)
Deallocate memory.