20#ifndef REALM_NODESET_H
21#define REALM_NODESET_H
33#ifdef DEBUG_REALM_NODESET
160 static const short MAX_VALUES = 4;
161 static const short MAX_RANGES = 2;
166 } ranges[MAX_RANGES];
170#ifdef DEBUG_REALM_NODESET
171 std::set<NodeID> reference_set;
179#include "realm/nodeset.inl"
static uintptr_t alloc_chain_head
Definition nodeset.h:113
void l2_set(int elmt_idx)
uint64_t bitmask_elem_t
Definition nodeset.h:104
size_t set_range(NodeID lo, NodeID hi)
size_t set_bit(NodeID id)
static size_t bitset_elements
Definition nodeset.h:111
static void free_allocations()
static void release_bitmask(NodeSetBitmask *bitmask, bool already_empty)
NodeID next_set(NodeID after) const
size_t clear_bit(NodeID id)
static NodeSetBitmask * clone_bitmask(const NodeSetBitmask *clone_from)
size_t clear_range(NodeID lo, NodeID hi)
static Mutex free_list_mutex
Definition nodeset.h:114
static size_t bitset_twolevel
Definition nodeset.h:112
static void configure_allocator(NodeID _max_node_id, size_t _bitsets_per_chunk, bool _use_twolevel)
static NodeID max_node_id
Definition nodeset.h:110
bool is_set(NodeID id) const
void copy(const NodeSetBitmask *copy_from)
void l2_clear(int elmt_idx)
int l2_find(int first_idx) const
static NodeSetBitmask * acquire_bitmask()
NodeSetIterator & operator++()
NodeSetIterator(const NodeSet &_nodeset)
std::input_iterator_tag iterator_category
Definition nodeset.h:48
const NodeSet * nodeset
Definition nodeset.h:67
bool operator==(const NodeSetIterator &compare_to) const
const NodeID * operator->() const
NodeID cur_node
Definition nodeset.h:68
bool operator!=(const NodeSetIterator &compare_to) const
NodeID & reference
Definition nodeset.h:52
short iter_pos
Definition nodeset.h:69
std::ptrdiff_t difference_type
Definition nodeset.h:50
NodeID * pointer
Definition nodeset.h:51
NodeID value_type
Definition nodeset.h:49
NodeSetIterator operator++(int)
const_iterator end() const
NodeSet(const NodeSet ©_from)
short range_count
Definition nodeset.h:159
NodeSet & operator=(const NodeSet ©_from)
bool contains(NodeID id) const
EncodingUnion data
Definition nodeset.h:169
void add_range(NodeID lo, NodeID hi)
const_iterator begin() const
NodeSetIterator const_iterator
Definition nodeset.h:141
void convert_to_bitmask()
unsigned char enc_format
Definition nodeset.h:158
void remove_range(NodeID lo, NodeID hi)
@ ENC_VALS
Definition nodeset.h:154
@ ENC_RANGES
Definition nodeset.h:155
@ ENC_BITMASK
Definition nodeset.h:156
@ ENC_EMPTY
Definition nodeset.h:153
void swap(NodeSet &swap_with)
unsigned count
Definition nodeset.h:149
#define REALM_INTERNAL_API_EXTERNAL_LINKAGE
Definition compiler_support.h:218
Definition activemsg.h:38
int NodeID
Definition nodeset.h:40
NodeSetBitmask * bitmask
Definition nodeset.h:167
NodeID hi
Definition nodeset.h:165