DASH
0.3.0
HBWSpace.h
1
#ifndef DASH__MEMORY__HBW_SPACE_H__INCLUDED
2
#define DASH__MEMORY__HBW_SPACE_H__INCLUDED
3
4
#include <dash/memory/MemorySpaceBase.h>
5
6
#ifdef DASH_ENABLE_MEMKIND
7
#include <hbwmalloc.h>
8
#else
9
#include <cstdlib>
10
#endif
11
12
namespace
dash
{
13
14
class
HBWSpace
15
:
public
dash::MemorySpace
<memory_domain_local, memory_space_hbw_tag> {
16
#ifdef DASH_ENABLE_MEMKIND
17
static_assert(
alignof
(
void
*) ==
sizeof
(
void
*),
"Required by Memkind"
);
18
#endif
19
20
public
:
21
using
void_pointer =
void
*;
22
using
const_void_pointer =
const
void
*;
23
24
public
:
25
HBWSpace
() =
default
;
26
HBWSpace
(
HBWSpace
const
& other) =
default
;
27
HBWSpace
(
HBWSpace
&& other) =
default
;
28
HBWSpace
& operator=(
HBWSpace
const
& other) =
default
;
29
HBWSpace
& operator=(
HBWSpace
&& other) =
default
;
30
~
HBWSpace
()
31
{
32
}
33
34
protected
:
35
void
* do_allocate(
size_t
bytes,
size_t
alignment)
override
;
36
void
do_deallocate(
void
* p,
size_t
bytes,
size_t
alignment)
override
;
37
bool
do_is_equal(
std::pmr::memory_resource
const
& other)
const
38
noexcept
override
;
39
40
public
:
41
static
inline
bool
check_hbw_available(
void
);
42
};
43
44
}
// namespace dash
45
#endif // DASH__MEMORY__HBW_SPACE_H__INCLUDED
dash
This class is a simple memory pool which holds allocates elements of size ValueType.
Definition:
AllOf.h:8
std::pmr::memory_resource
Definition:
polymorphic_allocator.h:28
dash::MemorySpace
Definition:
MemorySpaceBase.h:283
dash::HBWSpace
Definition:
HBWSpace.h:14
tmp
tmporruphar
dash
include
dash
memory
HBWSpace.h
Generated by
1.8.13