summaryrefslogtreecommitdiff
path: root/src/core/common/Rtti.hpp
diff options
context:
space:
mode:
authorBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-01-23 15:47:59 +0100
committerBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-01-23 15:47:59 +0100
commit18d3637ca02ab69f1ee744fa94c43c243de0f571 (patch)
tree42c859f014ab7dbb7d31a747e0ef3839c77c60fa /src/core/common/Rtti.hpp
parent85d72823ef18711fe7a29f5b23cc37b318766332 (diff)
parentaa817d3bfd90aa39b6fd8a915bc78a8bb210cd3d (diff)
Merge branch 'master' of somweyr.de:ousia
Diffstat (limited to 'src/core/common/Rtti.hpp')
-rw-r--r--src/core/common/Rtti.hpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/core/common/Rtti.hpp b/src/core/common/Rtti.hpp
index 8350cb5..05cc728 100644
--- a/src/core/common/Rtti.hpp
+++ b/src/core/common/Rtti.hpp
@@ -378,10 +378,31 @@ public:
*
* @param other is the other type for which the relation to this type
* should be checked.
+ * @return true if this type (directly or indirectly) has the given other
+ * type as parent or equals the other type.
*/
bool isa(const Rtti &other) const;
/**
+ * Returns true if this Rtti instance is one of the given types.
+ *
+ * @param others is a set of other types to be checked.
+ * @return true if this type (directly or indirectly) has once of the given
+ * other types as parent or equals one of the other types.
+ */
+ bool isOneOf(const RttiSet &others) const;
+
+ /**
+ * Checks whether any type in the first set is one type in the second set.
+ *
+ * @param s1 is the first set. For each type in this set we check whether
+ * it is one of the types in s2.
+ * @param s2 is the second set.
+ * @return true if the above condition is fulfilled, false otherwise.
+ */
+ static bool setIsOneOf(const RttiSet &s1, const RttiSet &s2);
+
+ /**
* Returns true if an instance of this type may have references to the other
* given type. This mechanism is used to prune impossible paths when
* resolving objects of a certain type by name in an object graph.