Realistic 3D camera system
3D camera system components
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
asio-1.10.6
src
tests
latency
allocator.hpp
Go to the documentation of this file.
1
//
2
// allocator.hpp
3
// ~~~~~~~~~~~~~
4
//
5
// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
//
7
// Distributed under the Boost Software License, Version 1.0. (See accompanying
8
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
//
10
11
#ifndef ALLOCATOR_HPP
12
#define ALLOCATOR_HPP
13
14
#include <boost/aligned_storage.hpp>
15
16
// Represents a single connection from a client.
17
class
allocator
18
{
19
public
:
20
allocator
()
21
: in_use_(false)
22
{
23
}
24
25
void
*
allocate
(std::size_t n)
26
{
27
if
(in_use_ || n >= 1024)
28
return ::operator
new
(n);
29
in_use_ =
true
;
30
return
static_cast<
void
*
>
(&space_);
31
}
32
33
void
deallocate
(
void
* p)
34
{
35
if
(p != static_cast<void*>(&space_))
36
::operator
delete
(p);
37
else
38
in_use_ =
false
;
39
}
40
41
private
:
42
allocator
(
const
allocator
&);
43
allocator
& operator=(
const
allocator
&);
44
45
// Whether the reusable memory space is currently in use.
46
bool
in_use_;
47
48
// The reusable memory space made available by the allocator.
49
boost::aligned_storage<1024>::type space_;
50
};
51
52
#endif // ALLOCATOR_HPP
allocator::allocate
void * allocate(std::size_t n)
Definition:
allocator.hpp:25
allocator::allocator
allocator()
Definition:
allocator.hpp:20
allocator
Definition:
allocator.hpp:17
allocator::deallocate
void deallocate(void *p)
Definition:
allocator.hpp:33
Generated by
1.8.11