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

#include <inst_layout.h>

Inheritance diagram for Realm::GenericAccessor< FT, N, T >:
Collaboration diagram for Realm::GenericAccessor< FT, N, T >:

Public Member Functions

 GenericAccessor (void)
 
 GenericAccessor (RegionInstance inst, FieldID field_id, size_t subfield_offset=0)
 
 GenericAccessor (RegionInstance inst, FieldID field_id, const Rect< N, T > &subrect, size_t subfield_offset=0)
 
 ~GenericAccessor (void)
 
FT read (const Point< N, T > &p)
 
void write (const Point< N, T > &p, FT newval)
 
AccessorRefHelper< FT > operator[] (const Point< N, T > &p)
 
size_t get_offset (const Point< N, T > &p)
 

Static Public Member Functions

static bool is_compatible (RegionInstance inst, size_t field_offset)
 
static bool is_compatible (RegionInstance inst, size_t field_offset, const Rect< N, T > &subrect)
 
template<typename INST >
static bool is_compatible (const INST &instance, unsigned field_id)
 
template<typename INST >
static bool is_compatible (const INST &instance, unsigned field_id, const Rect< N, T > &subrect)
 

Public Attributes

RegionInstance inst
 
const InstancePieceList< N, T > * piece_list
 
size_t rel_offset
 
const InstanceLayoutPiece< N, T > * prev_piece
 

Detailed Description

template<typename FT, int N, typename T = int>
class Realm::GenericAccessor< FT, N, T >

A generic accessor that works for any instance layout. GenericAccessors. While useful, these accessors are generally more expensive and should be used with caution. A read/write operation via this accessor could potentially result in a network transaction, assuming the data is stored on a remote node

Constructor & Destructor Documentation

◆ GenericAccessor() [1/3]

template<typename FT , int N, typename T = int>
Realm::GenericAccessor< FT, N, T >::GenericAccessor ( void  )

◆ GenericAccessor() [2/3]

template<typename FT , int N, typename T = int>
Realm::GenericAccessor< FT, N, T >::GenericAccessor ( RegionInstance  inst,
FieldID  field_id,
size_t  subfield_offset = 0 
)

Construct a GenericAccessor for the specified instance and field. Implicitly tries to cover the entire instance's domain.

Parameters
instRegionInstance to construct accessor for.
field_idFieldID of field to construct accessor for.
subfield_offsetOffset of subfield to construct accessor for.

◆ GenericAccessor() [3/3]

template<typename FT , int N, typename T = int>
Realm::GenericAccessor< FT, N, T >::GenericAccessor ( RegionInstance  inst,
FieldID  field_id,
const Rect< N, T > &  subrect,
size_t  subfield_offset = 0 
)

Construct a GenericAccessor for the specified instance and field. Limits the domain to the specified subrectangle.

Parameters
instRegionInstance to construct accessor for.
field_idFieldID of field to construct accessor for.
subrectSubrectangle to limit domain to.
subfield_offsetOffset of subfield to construct accessor for.

◆ ~GenericAccessor()

template<typename FT , int N, typename T = int>
Realm::GenericAccessor< FT, N, T >::~GenericAccessor ( void  )

Member Function Documentation

◆ get_offset()

template<typename FT , int N, typename T = int>
size_t Realm::GenericAccessor< FT, N, T >::get_offset ( const Point< N, T > &  p)

◆ is_compatible() [1/4]

template<typename FT , int N, typename T = int>
template<typename INST >
static bool Realm::GenericAccessor< FT, N, T >::is_compatible ( const INST &  instance,
unsigned  field_id 
)
static

◆ is_compatible() [2/4]

template<typename FT , int N, typename T = int>
template<typename INST >
static bool Realm::GenericAccessor< FT, N, T >::is_compatible ( const INST &  instance,
unsigned  field_id,
const Rect< N, T > &  subrect 
)
static

◆ is_compatible() [3/4]

template<typename FT , int N, typename T = int>
static bool Realm::GenericAccessor< FT, N, T >::is_compatible ( RegionInstance  inst,
size_t  field_offset 
)
static

◆ is_compatible() [4/4]

template<typename FT , int N, typename T = int>
static bool Realm::GenericAccessor< FT, N, T >::is_compatible ( RegionInstance  inst,
size_t  field_offset,
const Rect< N, T > &  subrect 
)
static

◆ operator[]()

template<typename FT , int N, typename T = int>
AccessorRefHelper< FT > Realm::GenericAccessor< FT, N, T >::operator[] ( const Point< N, T > &  p)

Return a reference that can be used to read or write a single element.

Parameters
pPoint to read/write.
Returns
Reference to element at p.

◆ read()

template<typename FT , int N, typename T = int>
FT Realm::GenericAccessor< FT, N, T >::read ( const Point< N, T > &  p)

◆ write()

template<typename FT , int N, typename T = int>
void Realm::GenericAccessor< FT, N, T >::write ( const Point< N, T > &  p,
FT  newval 
)

Member Data Documentation

◆ inst

template<typename FT , int N, typename T = int>
RegionInstance Realm::GenericAccessor< FT, N, T >::inst

◆ piece_list

template<typename FT , int N, typename T = int>
const InstancePieceList<N, T>* Realm::GenericAccessor< FT, N, T >::piece_list

◆ prev_piece

template<typename FT , int N, typename T = int>
const InstanceLayoutPiece<N, T>* Realm::GenericAccessor< FT, N, T >::prev_piece

◆ rel_offset

template<typename FT , int N, typename T = int>
size_t Realm::GenericAccessor< FT, N, T >::rel_offset

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