Botan: Botan::Allocator Class Reference

Botan 1.10.16

Public Member Functions | Static Public Member Functions | List of all members
Botan::Allocator Class Referenceabstract

`#include <allocate.h>`

Inheritance diagram for Botan::Allocator:

## Public Member Functions
virtual void * | allocate (size_t n)=0
virtual void | deallocate (void *ptr, size_t n)=0
virtual void | destroy ()
virtual void | init ()
virtual std::string | type () const =0
virtual | ~Allocator ()

## Static Public Member Functions
static Allocator * | get (bool locking)

## Detailed Description

Allocator Interface

Definition at line 19 of file allocate.h.

## Constructor & Destructor Documentation

## ◆ ~Allocator()

virtual Botan::Allocator::~Allocator | ( |  | ) |
| inlinevirtual

Definition at line 60 of file allocate.h.

60 {}

## Member Function Documentation

## ◆ allocate()

virtual void* Botan::Allocator::allocate | ( | size_t | n | ) |
| pure virtual

Allocate a block of memory

Parameters

  n | how many bytes to allocate

Returns
  pointer to n bytes of memory

Implemented in Botan::Pooling_Allocator, and Botan::Malloc_Allocator.

Referenced by Botan::MemoryRegion< word >::init().

## ◆ deallocate()

virtual void Botan::Allocator::deallocate | ( | void * | ptr,
|  | size_t | n
| ) |  |
| pure virtual

Deallocate memory allocated with allocate()

Parameters

  ptr | the pointer returned by allocate()
  n | the size of the block pointed to by ptr

Implemented in Botan::Pooling_Allocator, and Botan::Malloc_Allocator.

Referenced by Botan::MemoryRegion< word >::init().

## ◆ destroy()

virtual void Botan::Allocator::destroy | ( |  | ) |
| inlinevirtual

Shutdown the allocator

Reimplemented in Botan::Pooling_Allocator.

Definition at line 58 of file allocate.h.

58 {}

## ◆ get()

Allocator * Botan::Allocator::get | ( | bool | locking | ) |
| static

Acquire a pointer to an allocator

Parameters

  locking | is true if the allocator should attempt to secure the memory (eg for using to store keys)

Returns
  pointer to an allocator; ownership remains with library, so do not delete

Definition at line 90 of file defalloc.cpp.

References alloc, Botan::Library_State::get_allocator(), Botan::Global_State_Management::global_state(), and Botan::Malloc_Allocator::type().

Referenced by Botan::GMP_Engine::GMP_Engine(), and Botan::MemoryRegion< word >::init().

91 {
92 std::string type = "";
93 if(!locking)
94 type = "malloc";
95
96 Allocator* alloc = global_state().get_allocator(type);
97 if(alloc)
98 return alloc;
99
100 throw Internal_Error("Couldn't find an allocator to use in get_allocator");
101 }
Botan::Library_State::get_allocator
Allocator * get_allocator(const std::string &name="") const
Definition: libstate.cpp:67
Botan::Global_State_Management::global_state
Library_State & global_state()
Definition: global_state.cpp:32
Botan::Allocator::type
virtual std::string type() const =0
alloc
Allocator * alloc
Definition: bzip2.cpp:29

## ◆ init()

virtual void Botan::Allocator::init | ( |  | ) |
| inlinevirtual

Initialize the allocator

Definition at line 53 of file allocate.h.

Referenced by Botan::Library_State::add_allocator().

53 {}

## ◆ type()

virtual std::string Botan::Allocator::type | ( |  | ) | const
| pure virtual

Returns
  name of this allocator type

Implemented in Botan::Locking_Allocator, Botan::MemoryMapping_Allocator, and Botan::Malloc_Allocator.

Referenced by Botan::Library_State::add_allocator().

The documentation for this class was generated from the following files:

- src/alloc/allocate.h
- src/alloc/system_alloc/defalloc.cpp