27#include <unordered_map>
31 template <
typename FieldID>
37 template <
typename Heap>
42 void *mem = heap.alloc_obj(bytes, align);
44 field_block->
count = n;
62 const std::unordered_map<
int, std::pair<size_t, size_t>> &count_strides,
63 bool wrap_around =
false);
65 [[nodiscard]]
size_t *
begin_entry(
int max_dim,
bool wrap_around =
true);
113 void advance(
int dim,
size_t amount,
int f = 1);
127 std::array<size_t, REALM_MAX_DIM + 1>
pos{};
Definition address_list.h:100
size_t partial_fields
Definition address_list.h:126
int partial_dim
Definition address_list.h:125
size_t remaining(int dim) const
uintptr_t get_offset() const
std::array< size_t, REALM_MAX_DIM+1 > pos
Definition address_list.h:127
void skip_bytes(size_t bytes)
void set_addrlist(AddressList *_addrlist)
size_t remaining_fields() const
const FieldBlock * field_block() const
void advance(int dim, size_t amount, int f=1)
uintptr_t get_stride(int dim) const
AddressList * addrlist
Definition address_list.h:121
bool partial
Definition address_list.h:122
const FieldID * fields_data() const
Definition address_list.h:55
size_t * begin_entry(int max_dim, bool wrap_around=true)
size_t max_entries
Definition address_list.h:93
bool append_entry(int dims, size_t contig_bytes, size_t total_bytes, size_t base_offset, const std::unordered_map< int, std::pair< size_t, size_t > > &count_strides, bool wrap_around=false)
std::vector< size_t > data
Definition address_list.h:94
size_t total_bytes
Definition address_list.h:90
void attach_field_block(const FieldBlock *_field_block)
static size_t pack_entry_header(size_t contig_bytes, int dims)
static constexpr size_t DIM_SLOTS
Definition address_list.h:80
void commit_entry(int act_dim, size_t bytes)
static constexpr size_t SLOT_BASE
Definition address_list.h:79
size_t full_field_bytes()
const FieldBlock * field_block
Definition address_list.h:88
static constexpr size_t SLOT_HEADER
Definition address_list.h:78
size_t read_pointer
Definition address_list.h:92
AddressList(size_t _max_entries=1000)
size_t write_pointer
Definition address_list.h:91
const size_t * read_entry()
static constexpr size_t CONTIG_SHIFT
Definition address_list.h:82
static constexpr size_t DIM_MASK
Definition address_list.h:81
size_t bytes_pending() const
Definition activemsg.h:38
realm_field_id_t FieldID
Definition instance.h:45
std::ostream & operator<<(std::ostream &os, const DenseRectangleList< N, T > &drl)
Definition address_list.h:32
static FieldBlockBase< FieldID > * create(Heap &heap, const FieldID *src, size_t n, size_t align=16)
Definition address_list.h:38
std::size_t count
Definition address_list.h:33
FieldID fields[1]
Definition address_list.h:34
NodeID src
Definition ucp_internal.h:1