Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::IndexSpaceGeneric Class Reference

#include <indexspace.h>

Inheritance diagram for Realm::IndexSpaceGeneric:
Collaboration diagram for Realm::IndexSpaceGeneric:

Public Member Functions

 IndexSpaceGeneric ()
 
 IndexSpaceGeneric (const IndexSpaceGeneric &copy_from)
 
template<int N, typename T >
 IndexSpaceGeneric (const IndexSpace< N, T > &copy_from)
 
template<int N, typename T >
 IndexSpaceGeneric (const Rect< N, T > &copy_from)
 
 ~IndexSpaceGeneric ()
 
IndexSpaceGenericoperator= (const IndexSpaceGeneric &copy_from)
 
template<int N, typename T >
IndexSpaceGenericoperator= (const IndexSpace< N, T > &copy_from)
 
template<int N, typename T >
IndexSpaceGenericoperator= (const Rect< N, T > &copy_from)
 
void destroy (Event wait_on=Event::NO_EVENT)
 
template<int N, typename T >
const IndexSpace< N, T > & as_index_space () const
 
Event copy (const std::vector< CopySrcDstField > &srcs, const std::vector< CopySrcDstField > &dsts, const ProfilingRequestSet &requests, Event wait_on=Event::NO_EVENT, int priority=0) const
 
template<int N, typename T >
Event copy (const std::vector< CopySrcDstField > &srcs, const std::vector< CopySrcDstField > &dsts, const std::vector< const typename CopyIndirection< N, T >::Base * > &indirects, const ProfilingRequestSet &requests, Event wait_on=Event::NO_EVENT, int priority=0) const
 

Public Attributes

IndexSpaceGenericImplimpl
 

Protected Types

typedef char Storage_unaligned[STORAGE_BYTES]
 

Protected Member Functions

 REALM_ALIGNED_TYPE_SAMEAS (Storage_aligned, Storage_unaligned, DIMTYPES::MaxSizeType< MAX_TYPE_SIZE >::TYPE)
 

Protected Attributes

Storage_aligned raw_storage
 

Static Protected Attributes

static constexpr size_t MAX_TYPE_SIZE = DIMTYPES::MaxSize::value
 
static constexpr size_t STORAGE_BYTES = (2 * REALM_MAX_DIM + 2) * MAX_TYPE_SIZE
 

Detailed Description

A type-erased IndexSpace that can be used to avoid template explosion at the cost of run-time indirection - avoid using this in performance-critical code.

Member Typedef Documentation

◆ Storage_unaligned

typedef char Realm::IndexSpaceGeneric::Storage_unaligned[STORAGE_BYTES]
protected

Constructor & Destructor Documentation

◆ IndexSpaceGeneric() [1/4]

Realm::IndexSpaceGeneric::IndexSpaceGeneric ( )

◆ IndexSpaceGeneric() [2/4]

Realm::IndexSpaceGeneric::IndexSpaceGeneric ( const IndexSpaceGeneric copy_from)

◆ IndexSpaceGeneric() [3/4]

template<int N, typename T >
Realm::IndexSpaceGeneric::IndexSpaceGeneric ( const IndexSpace< N, T > &  copy_from)

◆ IndexSpaceGeneric() [4/4]

template<int N, typename T >
Realm::IndexSpaceGeneric::IndexSpaceGeneric ( const Rect< N, T > &  copy_from)

◆ ~IndexSpaceGeneric()

Realm::IndexSpaceGeneric::~IndexSpaceGeneric ( )

Member Function Documentation

◆ as_index_space()

template<int N, typename T >
const IndexSpace< N, T > & Realm::IndexSpaceGeneric::as_index_space ( ) const

◆ copy() [1/2]

Event Realm::IndexSpaceGeneric::copy ( const std::vector< CopySrcDstField > &  srcs,
const std::vector< CopySrcDstField > &  dsts,
const ProfilingRequestSet requests,
Event  wait_on = Event::NO_EVENT,
int  priority = 0 
) const

◆ copy() [2/2]

template<int N, typename T >
Event Realm::IndexSpaceGeneric::copy ( const std::vector< CopySrcDstField > &  srcs,
const std::vector< CopySrcDstField > &  dsts,
const std::vector< const typename CopyIndirection< N, T >::Base * > &  indirects,
const ProfilingRequestSet requests,
Event  wait_on = Event::NO_EVENT,
int  priority = 0 
) const

◆ destroy()

void Realm::IndexSpaceGeneric::destroy ( Event  wait_on = Event::NO_EVENT)

◆ operator=() [1/3]

template<int N, typename T >
IndexSpaceGeneric & Realm::IndexSpaceGeneric::operator= ( const IndexSpace< N, T > &  copy_from)

◆ operator=() [2/3]

IndexSpaceGeneric & Realm::IndexSpaceGeneric::operator= ( const IndexSpaceGeneric copy_from)

◆ operator=() [3/3]

template<int N, typename T >
IndexSpaceGeneric & Realm::IndexSpaceGeneric::operator= ( const Rect< N, T > &  copy_from)

◆ REALM_ALIGNED_TYPE_SAMEAS()

Realm::IndexSpaceGeneric::REALM_ALIGNED_TYPE_SAMEAS ( Storage_aligned  ,
Storage_unaligned  ,
DIMTYPES::MaxSizeType< MAX_TYPE_SIZE >::TYPE   
)
protected

Member Data Documentation

◆ impl

IndexSpaceGenericImpl* Realm::IndexSpaceGeneric::impl

◆ MAX_TYPE_SIZE

constexpr size_t Realm::IndexSpaceGeneric::MAX_TYPE_SIZE = DIMTYPES::MaxSize::value
staticconstexprprotected

◆ raw_storage

Storage_aligned Realm::IndexSpaceGeneric::raw_storage
protected

◆ STORAGE_BYTES

constexpr size_t Realm::IndexSpaceGeneric::STORAGE_BYTES = (2 * REALM_MAX_DIM + 2) * MAX_TYPE_SIZE
staticconstexprprotected

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