Legion Runtime
Loading...
Searching...
No Matches
predicate.h
Go to the documentation of this file.
1/* Copyright 2026 Stanford University, NVIDIA Corporation
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#ifndef __LEGION_PREDICATE_H__
17#define __LEGION_PREDICATE_H__
18
24#include "legion/api/types.h"
25
26namespace Legion {
27
38 class Predicate : public Unserializable {
39 public:
40 static const Predicate TRUE_PRED;
41 static const Predicate FALSE_PRED;
42 public:
43 Predicate(void);
44 Predicate(const Predicate& p);
45 Predicate(Predicate&& p) noexcept;
46 explicit Predicate(bool value);
47 ~Predicate(void);
48 protected:
49 FRIEND_ALL_RUNTIME_CLASSES
50 Internal::PredicateImpl* impl;
51 // Only the runtime should be allowed to make these
52 explicit Predicate(Internal::PredicateImpl* impl);
53 public:
54 Predicate& operator=(const Predicate& p);
55 Predicate& operator=(Predicate&& p) noexcept;
56 inline bool operator==(const Predicate& p) const;
57 inline bool operator<(const Predicate& p) const;
58 inline bool operator!=(const Predicate& p) const;
59 inline bool exists(void) const { return (impl != nullptr); }
60 private:
61 bool const_value;
62 };
63
64} // namespace Legion
65
66#include "legion/api/predicate.inl"
67
68#endif // __LEGION_PREDICATE_H__
Definition predicate.h:38
Definition types.h:343
Definition accessors.h:29