/
traits.hpp
162 lines (119 loc) · 5.39 KB
/
traits.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
// Copyright (c) 2007-2014 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#if !defined(HPX_TRAITS_OCT_26_2011_0838AM)
#define HPX_TRAITS_OCT_26_2011_0838AM
namespace hpx { namespace traits
{
///////////////////////////////////////////////////////////////////////////
template <typename Result, typename Enable = void>
struct promise_remote_result;
template <typename Result, typename Enable = void>
struct promise_local_result;
///////////////////////////////////////////////////////////////////////////
template <typename Result, typename RemoteResult, typename Enable = void>
struct get_remote_result;
///////////////////////////////////////////////////////////////////////////
template <typename Component, typename Enable = void>
struct is_component;
template <typename Component, typename Enable = void>
struct is_component_or_component_array;
template <typename Component, typename Enable = void>
struct component_type_database;
template <typename Component, typename Enable = void>
struct component_type_is_compatible;
///////////////////////////////////////////////////////////////////////////
// control the way managed_components are constructed
struct construct_with_back_ptr {};
struct construct_without_back_ptr {};
template <typename T, typename Enable = void>
struct managed_component_ctor_policy
{
typedef construct_without_back_ptr type;
};
///////////////////////////////////////////////////////////////////////////
// control the way managed_components are destructed
struct managed_object_is_lifetime_controlled {};
struct managed_object_controls_lifetime {};
template <typename T, typename Enable = void>
struct managed_component_dtor_policy
{
typedef managed_object_controls_lifetime type;
};
///////////////////////////////////////////////////////////////////////////
template <typename Action, typename Enable = void>
struct is_action;
// Customization point for action priority
template <typename Action, typename Enable = void>
struct action_priority;
// Customization point for action stack size
template <typename Action, typename Enable = void>
struct action_stacksize;
// Customization for action serialization filter
template <typename Action, typename Enable = void>
struct action_serialization_filter;
template <typename Action, typename Enable = void>
struct action_message_handler;
#if defined(HPX_HAVE_SECURITY)
template <typename Action, typename Enable = void>
struct action_capability_provider;
#endif
template <typename Action, typename Enable = void>
struct action_is_target_valid;
template <typename Action, typename Enable = void>
struct action_does_termination_detection;
template <typename Action, typename Enable = void>
struct action_decorate_function;
template <typename Action, typename Enable = void>
struct action_decorate_continuation;
template <typename Action, typename Enable = void>
struct action_schedule_thread;
///////////////////////////////////////////////////////////////////////////
template <typename A, typename Enable = void>
struct is_chunk_allocator;
template <typename A, typename Enable = void>
struct default_chunk_size;
///////////////////////////////////////////////////////////////////////////
template <typename Future, typename Enable = void>
struct is_future;
template <typename Future, typename Enable = void>
struct future_traits;
template <typename Future, typename Enable = void>
struct future_access;
template <typename Range, typename Enable = void>
struct is_future_range;
template <typename Range, typename Enable = void>
struct future_range_traits;
template <typename Tuple, typename Enable = void>
struct is_future_tuple;
template <typename Future, typename Enable = void>
struct serialize_as_future;
template <typename Future, typename Enable = void>
struct acquire_future;
template <typename Future, typename Enable = void>
struct acquire_shared_state;
template <typename T, typename Enable = void>
struct is_shared_state;
///////////////////////////////////////////////////////////////////////////
template <typename Plugin, typename Enable = void>
struct component_config_data;
///////////////////////////////////////////////////////////////////////////
template <typename Plugin, typename Enable = void>
struct plugin_config_data;
///////////////////////////////////////////////////////////////////////////
// Customization point for streaming with util::any
template <typename T, typename Enable = void>
struct supports_streaming_with_any;
///////////////////////////////////////////////////////////////////////////
template <typename Iterator, typename Enable = void>
struct segmented_iterator_traits;
template <typename Iterator, typename Enable = void>
struct segmented_local_iterator_traits;
///////////////////////////////////////////////////////////////////////////
template <typename T, typename Enable = void>
struct is_distribution_policy;
template <typename T, typename Enable = void>
struct is_executor;
}}
#endif