From 2127848d4744a17c0368e16793fa1014a4fbb0bb Mon Sep 17 00:00:00 2001 From: triton Date: Tue, 14 May 2013 18:36:52 +0100 Subject: [PATCH] Added an helper method to find declarations hierarchically. --- src/Bridge/Class.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Bridge/Class.cs b/src/Bridge/Class.cs index 59e5b717..7ad991a9 100644 --- a/src/Bridge/Class.cs +++ b/src/Bridge/Class.cs @@ -201,6 +201,20 @@ namespace CppSharp .Cast(); } + public IEnumerable FindHierarchy(Func> func) + where T : Declaration + { + foreach (var @base in Bases) + { + if (!@base.IsClass) continue; + foreach(var elem in @base.Class.FindHierarchy(func)) + yield return elem; + } + + foreach (var elem in func(this)) + yield return elem; + } + public override T Visit(IDeclVisitor visitor) { return visitor.VisitClassDecl(this);