Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::TransferIteratorIndirect< N, T > Class Template Reference

#include <transfer.h>

Inheritance diagram for Realm::TransferIteratorIndirect< N, T >:
Collaboration diagram for Realm::TransferIteratorIndirect< N, T >:

Public Member Functions

 TransferIteratorIndirect (Memory _addrs_mem, RegionInstanceImpl *_inst_impl, const std::vector< FieldID > &_fields, const std::vector< size_t > &_fld_offsets, const std::vector< size_t > &_fld_sizes)
 
virtual ~TransferIteratorIndirect (void)
 
virtual Event request_metadata (void)
 
virtual void set_indirect_input_port (XferDes *xd, int port_idx, TransferIterator *inner_iter)
 
virtual void reset (void)
 
template<typename S >
bool serialize (S &serializer) const
 
- Public Member Functions inherited from Realm::TransferIteratorBase< N, T >
 TransferIteratorBase (RegionInstanceImpl *_inst_impl, const int _dim_order[N])
 
virtual bool done (void)
 
virtual size_t step (size_t max_bytes, AddressInfo &info, unsigned flags, bool tentative=false)
 
virtual size_t step_custom (size_t max_bytes, AddressInfoCustom &info, bool tentative=false)
 
virtual void confirm_step (void)
 
virtual void cancel_step (void)
 
virtual size_t get_base_offset (void) const
 
virtual bool get_addresses (AddressList &addrlist, const InstanceLayoutPieceBase *&nonaffine)
 
- Public Member Functions inherited from Realm::TransferIterator
virtual ~TransferIterator (void)
 
virtual size_t get_address_size (void) const
 

Static Public Member Functions

template<typename S >
static TransferIteratordeserialize_new (S &deserializer)
 
- Static Public Member Functions inherited from Realm::TransferIterator
template<typename S >
static TransferIteratordeserialize_new (S &deserializer)
 

Static Public Attributes

static Serialization::PolymorphicSerdezSubclass< TransferIterator, TransferIteratorIndirect< N, T > > serdez_subclass
 

Protected Member Functions

 TransferIteratorIndirect (void)
 
virtual bool get_next_rect (Rect< N, T > &r, FieldID &fid, size_t &offset, size_t &fsize)
 
- Protected Member Functions inherited from Realm::TransferIteratorBase< N, T >
 TransferIteratorBase (void)
 

Protected Attributes

TransferIteratoraddrs_in {nullptr}
 
Memory addrs_mem {Memory::NO_MEMORY}
 
intptr_t addrs_mem_base {0}
 
bool can_merge {true}
 
Point< N, T > points [MAX_POINTS]
 
size_t point_pos {0}
 
size_t num_points {0}
 
std::vector< FieldIDfields
 
std::vector< size_t > fld_offsets
 
std::vector< size_t > fld_sizes
 
XferDesindirect_xd {nullptr}
 
int indirect_port_idx {-1}
 
- Protected Attributes inherited from Realm::TransferIteratorBase< N, T >
bool have_rect
 
bool is_done
 
Rect< N, T > cur_rect
 
FieldID cur_field_id
 
size_t cur_field_offset
 
size_t cur_field_size
 
Point< N, T > cur_point
 
Point< N, T > next_point
 
bool carry
 
RegionInstanceImplinst_impl
 
size_t inst_offset
 
bool tentative_valid
 
int dim_order [N]
 

Static Protected Attributes

static constexpr size_t MAX_POINTS = 64
 

Additional Inherited Members

- Public Types inherited from Realm::TransferIterator
enum  {
  SRC_PARTIAL_OK = (1 << 0) , SRC_LINES_OK = (1 << 1) , SRC_PLANES_OK = (1 << 2) , SRC_FLAGMASK = 0xff ,
  DST_PARTIAL_OK = (1 << 8) , DST_LINES_OK = (1 << 9) , DST_PLANES_OK = (1 << 10) , DST_FLAGMASK = 0xff00 ,
  PARTIAL_OK = SRC_PARTIAL_OK | DST_PARTIAL_OK , LINES_OK = SRC_LINES_OK | DST_LINES_OK , PLANES_OK = SRC_PLANES_OK | DST_PLANES_OK
}
 

Constructor & Destructor Documentation

◆ TransferIteratorIndirect() [1/2]

template<int N, typename T >
Realm::TransferIteratorIndirect< N, T >::TransferIteratorIndirect ( void  )
protected

◆ TransferIteratorIndirect() [2/2]

template<int N, typename T >
Realm::TransferIteratorIndirect< N, T >::TransferIteratorIndirect ( Memory  _addrs_mem,
RegionInstanceImpl _inst_impl,
const std::vector< FieldID > &  _fields,
const std::vector< size_t > &  _fld_offsets,
const std::vector< size_t > &  _fld_sizes 
)

◆ ~TransferIteratorIndirect()

template<int N, typename T >
virtual Realm::TransferIteratorIndirect< N, T >::~TransferIteratorIndirect ( void  )
virtual

Member Function Documentation

◆ deserialize_new()

template<int N, typename T >
template<typename S >
static TransferIterator * Realm::TransferIteratorIndirect< N, T >::deserialize_new ( S &  deserializer)
static

◆ get_next_rect()

template<int N, typename T >
virtual bool Realm::TransferIteratorIndirect< N, T >::get_next_rect ( Rect< N, T > &  r,
FieldID fid,
size_t &  offset,
size_t &  fsize 
)
protectedvirtual

◆ request_metadata()

template<int N, typename T >
virtual Event Realm::TransferIteratorIndirect< N, T >::request_metadata ( void  )
virtual

◆ reset()

template<int N, typename T >
virtual void Realm::TransferIteratorIndirect< N, T >::reset ( void  )
virtual

◆ serialize()

template<int N, typename T >
template<typename S >
bool Realm::TransferIteratorIndirect< N, T >::serialize ( S &  serializer) const

◆ set_indirect_input_port()

template<int N, typename T >
virtual void Realm::TransferIteratorIndirect< N, T >::set_indirect_input_port ( XferDes xd,
int  port_idx,
TransferIterator inner_iter 
)
virtual

Reimplemented from Realm::TransferIterator.

Member Data Documentation

◆ addrs_in

template<int N, typename T >
TransferIterator* Realm::TransferIteratorIndirect< N, T >::addrs_in {nullptr}
protected

◆ addrs_mem

template<int N, typename T >
Memory Realm::TransferIteratorIndirect< N, T >::addrs_mem {Memory::NO_MEMORY}
protected

◆ addrs_mem_base

template<int N, typename T >
intptr_t Realm::TransferIteratorIndirect< N, T >::addrs_mem_base {0}
protected

◆ can_merge

template<int N, typename T >
bool Realm::TransferIteratorIndirect< N, T >::can_merge {true}
protected

◆ fields

template<int N, typename T >
std::vector<FieldID> Realm::TransferIteratorIndirect< N, T >::fields
protected

◆ fld_offsets

template<int N, typename T >
std::vector<size_t> Realm::TransferIteratorIndirect< N, T >::fld_offsets
protected

◆ fld_sizes

template<int N, typename T >
std::vector<size_t> Realm::TransferIteratorIndirect< N, T >::fld_sizes
protected

◆ indirect_port_idx

template<int N, typename T >
int Realm::TransferIteratorIndirect< N, T >::indirect_port_idx {-1}
protected

◆ indirect_xd

template<int N, typename T >
XferDes* Realm::TransferIteratorIndirect< N, T >::indirect_xd {nullptr}
protected

◆ MAX_POINTS

template<int N, typename T >
constexpr size_t Realm::TransferIteratorIndirect< N, T >::MAX_POINTS = 64
staticconstexprprotected

◆ num_points

template<int N, typename T >
size_t Realm::TransferIteratorIndirect< N, T >::num_points {0}
protected

◆ point_pos

template<int N, typename T >
size_t Realm::TransferIteratorIndirect< N, T >::point_pos {0}
protected

◆ points

template<int N, typename T >
Point<N, T> Realm::TransferIteratorIndirect< N, T >::points[MAX_POINTS]
protected

◆ serdez_subclass

template<int N, typename T >
Serialization::PolymorphicSerdezSubclass<TransferIterator, TransferIteratorIndirect<N, T> > Realm::TransferIteratorIndirect< N, T >::serdez_subclass
static

The documentation for this class was generated from the following file: