Botan 2.19.3
Crypto and TLS for C&
locking_allocator.h
Go to the documentation of this file.
1/*
2* Mlock Allocator
3* (C) 2012 Jack Lloyd
4*
5* Botan is released under the Simplified BSD License (see license.txt)
6*/
7
8#ifndef BOTAN_MLOCK_ALLOCATOR_H_
9#define BOTAN_MLOCK_ALLOCATOR_H_
10
11#include <botan/types.h>
12#include <vector>
13#include <memory>
14
15BOTAN_FUTURE_INTERNAL_HEADER(locking_allocator.h)
16
17namespace Botan {
18
19class Memory_Pool;
20
22 {
23 public:
24 static mlock_allocator& instance();
25
26 void* allocate(size_t num_elems, size_t elem_size);
27
28 bool deallocate(void* p, size_t num_elems, size_t elem_size) noexcept;
29
31
33
34 private:
36
38
39 std::unique_ptr<Memory_Pool> m_pool;
40 std::vector<void*> m_locked_pages;
41 };
42
43}
44
45#endif
mlock_allocator & operator=(const mlock_allocator &)=delete
mlock_allocator(const mlock_allocator &)=delete
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
Definition compiler.h:31
#define BOTAN_FUTURE_INTERNAL_HEADER(hdr)
Definition compiler.h:136