16#ifndef __LEGION_FUNCTORS_H__
17#define __LEGION_FUNCTORS_H__
19#include "legion/api/geometry.h"
89 const Domain& launch_domain);
103 const Domain& launch_domain);
119 const Domain& launch_domain,
const void* args,
size_t size);
135 const Domain& launch_domain,
const void* args,
size_t size);
149 "The interface for projection functors has been "
150 "updated. Please use the new 'project' methods.")
166 "The interface for projection functors has been "
167 "updated. Please use the new '
project' methods.")
218 const
Domain& launch_domain);
221 const
Domain& launch_domain);
238 virtual bool is_functional(
void)
const {
return false; }
260 friend class Internal::Runtime;
263 inline void set_runtime(
Runtime* rt) { runtime = rt; }
288 virtual bool use_points(
void)
const {
return false; }
291 virtual ShardID shard(
293 const size_t total_shards);
297 const std::vector<DomainPoint>& shard_points,
298 const Domain& shard_domain);
300 virtual bool is_invertible(
void)
const {
return false; }
303 ShardID shard,
const Domain& sharding_domain,
304 const Domain& index_domain,
const size_t total_shards,
305 std::vector<DomainPoint>& points);
307 virtual void invert_points(
309 const std::vector<DomainPoint>& shard_points,
311 const Domain& sharding_domain, std::vector<DomainPoint>& index_points);
334 virtual bool supports_max_color(
void) {
return false; }
335 virtual Color max_color(
const Domain& index_domain)
337 return std::numeric_limits<Color>::max();
360 virtual const void* callback_get_future(
361 size_t& size,
bool& owned,
362 const Realm::ExternalInstanceResource*& resource,
363 void (*&freefunc)(
const Realm::ExternalInstanceResource&),
364 const void*& metadata,
size_t& metasize) = 0;
365 virtual void callback_release_future(
void) = 0;
380 virtual bool is_invertible(
void)
const {
return false; }
Definition functors.h:323
Definition geometry.h:154
Definition functors.h:356
virtual unsigned get_depth(void) const =0
virtual LogicalRegion project(const Mappable *mappable, unsigned index, LogicalPartition upper_bound, const DomainPoint &point)
virtual void invert(LogicalRegion region, LogicalRegion upper_bound, const Domain &launch_domain, std::vector< DomainPoint > &ordered_points)
virtual LogicalRegion project(LogicalPartition upper_bound, const DomainPoint &point, const Domain &launch_domain, const void *args, size_t size)
virtual LogicalRegion project(const Mappable *mappable, unsigned index, LogicalRegion upper_bound, const DomainPoint &point)
virtual LogicalRegion project(LogicalRegion upper_bound, const DomainPoint &point, const Domain &launch_domain)
virtual bool is_exclusive(void) const
Definition functors.h:230
virtual bool is_complete(LogicalRegion upper_bound, const Domain &launch_domain)
virtual bool is_invertible(void) const
Definition functors.h:245
virtual LogicalRegion project(LogicalPartition upper_bound, const DomainPoint &point, const Domain &launch_domain)
virtual LogicalRegion project(LogicalRegion upper_bound, const DomainPoint &point, const Domain &launch_domain, const void *args, size_t size)
Definition functors.h:281