16#ifndef __LEGION_FUNCTORS_H__
17#define __LEGION_FUNCTORS_H__
94 const Domain& launch_domain);
108 const Domain& launch_domain);
124 const Domain& launch_domain,
const void* args,
size_t size);
140 const Domain& launch_domain,
const void* args,
size_t size);
154 "The interface for projection functors has been "
155 "updated. Please use the new 'project' methods.")
171 "The interface for projection functors has been "
172 "updated. Please use the new '
project' methods.")
223 const
Domain& launch_domain);
226 const
Domain& launch_domain);
243 virtual bool is_functional(
void)
const {
return false; }
265 friend class Internal::Runtime;
268 inline void set_runtime(
Runtime* rt) { runtime = rt; }
293 virtual bool use_points(
void)
const {
return false; }
296 virtual ShardID shard(
298 const size_t total_shards);
302 const std::vector<DomainPoint>& shard_points,
303 const Domain& shard_domain);
305 virtual bool is_invertible(
void)
const {
return false; }
308 ShardID shard,
const Domain& sharding_domain,
309 const Domain& index_domain,
const size_t total_shards,
310 std::vector<DomainPoint>& points);
312 virtual void invert_points(
314 const std::vector<DomainPoint>& shard_points,
316 const Domain& sharding_domain, std::vector<DomainPoint>& index_points);
339 virtual bool supports_max_color(
void) {
return false; }
340 virtual Color max_color(
const Domain& index_domain)
342 return std::numeric_limits<Color>::max();
365 virtual const void* callback_get_future(
366 size_t& size,
bool& owned,
367 const Realm::ExternalInstanceResource*& resource,
368 void (*&freefunc)(
const Realm::ExternalInstanceResource&),
369 const void*& metadata,
size_t& metasize) = 0;
370 virtual void callback_release_future(
void) = 0;
385 virtual bool is_invertible(
void)
const {
return false; }
Definition functors.h:328
Definition geometry.h:159
Definition functors.h:361
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:235
virtual bool is_complete(LogicalRegion upper_bound, const Domain &launch_domain)
virtual bool is_invertible(void) const
Definition functors.h:250
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:286
Definition accessors.h:29