Legion Runtime
 All Classes Namespaces Files Functions Variables Typedefs Macros Pages
Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
Legion::PhysicalRegion Class Reference

#include <legion.h>

Inheritance diagram for Legion::PhysicalRegion:
Legion::Unserializable< PhysicalRegion >

Public Member Functions

 PhysicalRegion (const PhysicalRegion &rhs)
 
 PhysicalRegion (PhysicalRegion &&rhs)
 
PhysicalRegionoperator= (const PhysicalRegion &rhs)
 
PhysicalRegionoperator= (PhysicalRegion &&rhs)
 
bool operator== (const PhysicalRegion &reg) const
 
bool operator< (const PhysicalRegion &reg) const
 
bool is_mapped (void) const
 
void wait_until_valid (bool silence_warnings=false, const char *warning_string=NULL)
 
bool is_valid (void) const
 
LogicalRegion get_logical_region (void) const
 
PrivilegeMode get_privilege (void) const
 
LegionRuntime::Accessor::RegionAccessor
< LegionRuntime::Accessor::AccessorType::Generic > 
get_accessor (bool silence_warnings=false) const
 
LegionRuntime::Accessor::RegionAccessor
< LegionRuntime::Accessor::AccessorType::Generic > 
get_field_accessor (FieldID field, bool silence_warnings=false) const
 
void get_memories (std::set< Memory > &memories, bool silence_warnings=false, const char *warning_string=NULL) const
 
void get_fields (std::vector< FieldID > &fields) const
 
template<int DIM, typename COORD_T >
DomainT< DIM, COORD_T > get_bounds (void) const
 
template<int DIM, typename COORD_T >
 operator DomainT< DIM, COORD_T > (void) const
 
template<int DIM, typename COORD_T >
 operator Rect< DIM, COORD_T > (void) const
 
- Public Member Functions inherited from Legion::Unserializable< PhysicalRegion >
size_t legion_buffer_size (void)
 
size_t legion_serialize (void *buffer)
 
size_t legion_deserialize (const void *buffer)
 

Protected Member Functions

FRIEND_ALL_RUNTIME_CLASSES PhysicalRegion (Internal::PhysicalRegionImpl *impl)
 
Realm::RegionInstance get_instance_info (PrivilegeMode mode, FieldID fid, size_t field_size, void *realm_is, TypeTag type_tag, const char *warning_string, bool silence_warnings, bool generic_accessor, bool check_field_size, ReductionOpID redop=0) const
 
Realm::RegionInstance get_instance_info (PrivilegeMode mode, const std::vector< PhysicalRegion > &other_regions, FieldID fid, size_t field_size, void *realm_is, TypeTag type_tag, const char *warning_string, bool silence_warnings, bool generic_accessor, bool check_field_size, bool need_bounds, ReductionOpID redop=0) const
 
void report_incompatible_accessor (const char *accessor_kind, Realm::RegionInstance instance, FieldID fid) const
 
void report_incompatible_multi_accessor (unsigned index, FieldID fid, Realm::RegionInstance inst1, Realm::RegionInstance inst2) const
 
void report_colocation_violation (const char *accessor_kind, FieldID fid, Realm::RegionInstance inst1, Realm::RegionInstance inst2, const PhysicalRegion &other, bool reduction=false) const
 
void get_bounds (void *realm_is, TypeTag type_tag) const
 

Static Protected Member Functions

static void empty_colocation_regions (const char *accessor_kind, FieldID fid, bool reduction=false)
 
static void fail_bounds_check (DomainPoint p, FieldID fid, PrivilegeMode mode, bool multi=false)
 
static void fail_bounds_check (Domain d, FieldID fid, PrivilegeMode mode, bool multi=false)
 
static void fail_privilege_check (DomainPoint p, FieldID fid, PrivilegeMode mode)
 
static void fail_privilege_check (Domain d, FieldID fid, PrivilegeMode mode)
 

Detailed Description

Physical region objects are used to manage access to the physical instances that hold data. They are lightweight handles that can be stored in data structures and passed by value. They should never escape the context in which they are created.

Member Function Documentation

LegionRuntime::Accessor::RegionAccessor< LegionRuntime::Accessor::AccessorType::Generic> Legion::PhysicalRegion::get_accessor ( bool  silence_warnings = false) const
Deprecated:
Return a generic accessor for the entire physical region. This method is now deprecated. Please use the 'get_field_accessor' method instead. You can silence warnings about this blocking call with the 'silence_warnings' parameter.
LegionRuntime::Accessor::RegionAccessor< LegionRuntime::Accessor::AccessorType::Generic> Legion::PhysicalRegion::get_field_accessor ( FieldID  field,
bool  silence_warnings = false 
) const
Deprecated:
You should be able to create accessors by passing this object directly to the constructor of an accessor Return a field accessor for a specific field within the region. You can silence warnings regarding this blocking call with the 'silence_warnings' parameter.
void Legion::PhysicalRegion::get_fields ( std::vector< FieldID > &  fields) const

Return a list of fields that the physical region contains.

LogicalRegion Legion::PhysicalRegion::get_logical_region ( void  ) const
Returns
the logical region for this physical region
void Legion::PhysicalRegion::get_memories ( std::set< Memory > &  memories,
bool  silence_warnings = false,
const char *  warning_string = NULL 
) const

Return the memories where the underlying physical instances locate.

PrivilegeMode Legion::PhysicalRegion::get_privilege ( void  ) const
Returns
the privilege mode for this physical region
bool Legion::PhysicalRegion::is_mapped ( void  ) const

Check to see if this represents a mapped physical region.

bool Legion::PhysicalRegion::is_valid ( void  ) const

For physical regions returned from inline mappings, this call will query if the instance contains valid data yet.

Returns
whether the region has valid data
void Legion::PhysicalRegion::wait_until_valid ( bool  silence_warnings = false,
const char *  warning_string = NULL 
)

For physical regions returned as the result of an inline mapping, this call will block until the physical instance has a valid copy of the data. You can silence warnings about this blocking call with the 'silence_warnings' parameter.


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