diff options
Diffstat (limited to 'CIAO/CCF/CCF/CIDL/Traversal')
-rw-r--r-- | CIAO/CCF/CCF/CIDL/Traversal/Composition.hpp | 60 | ||||
-rw-r--r-- | CIAO/CCF/CCF/CIDL/Traversal/Composition.tpp | 41 | ||||
-rw-r--r-- | CIAO/CCF/CCF/CIDL/Traversal/Elements.hpp | 36 | ||||
-rw-r--r-- | CIAO/CCF/CCF/CIDL/Traversal/Executor.cpp | 195 | ||||
-rw-r--r-- | CIAO/CCF/CCF/CIDL/Traversal/Executor.hpp | 125 |
5 files changed, 457 insertions, 0 deletions
diff --git a/CIAO/CCF/CCF/CIDL/Traversal/Composition.hpp b/CIAO/CCF/CCF/CIDL/Traversal/Composition.hpp new file mode 100644 index 00000000000..e93fa976e7e --- /dev/null +++ b/CIAO/CCF/CCF/CIDL/Traversal/Composition.hpp @@ -0,0 +1,60 @@ +// file : CCF/CIDL/Traversal/Composition.hpp +// author : Boris Kolpackov <boris@dre.vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef CCF_CIDL_TRAVERSAL_COMPOSITION_HPP +#define CCF_CIDL_TRAVERSAL_COMPOSITION_HPP + +#include "CCF/CIDL/SemanticGraph/Composition.hpp" +#include "CCF/CIDL/Traversal/Elements.hpp" + +namespace CCF +{ + namespace CIDL + { + namespace Traversal + { + template <typename T> + struct CompositionTemplate : ScopeTemplate<T> + { + virtual void + traverse (T&); + + virtual void + pre (T&); + + virtual void + name (T&); + + virtual void + post (T&); + }; + + + typedef + CompositionTemplate <SemanticGraph::Composition> + Composition; + + typedef + CompositionTemplate <SemanticGraph::EntityComposition> + EntityComposition; + + typedef + CompositionTemplate <SemanticGraph::ProcessComposition> + ProcessComposition; + + typedef + CompositionTemplate <SemanticGraph::ServiceComposition> + ServiceComposition; + + + typedef + CompositionTemplate <SemanticGraph::SessionComposition> + SessionComposition; + } + } +} + +#include "CCF/CIDL/Traversal/Composition.tpp" + +#endif // CCF_CIDL_TRAVERSAL_COMPOSITION_HPP diff --git a/CIAO/CCF/CCF/CIDL/Traversal/Composition.tpp b/CIAO/CCF/CCF/CIDL/Traversal/Composition.tpp new file mode 100644 index 00000000000..8a6ff03e496 --- /dev/null +++ b/CIAO/CCF/CCF/CIDL/Traversal/Composition.tpp @@ -0,0 +1,41 @@ +// file : CCF/CIDL/Traversal/Composition.tpp +// author : Boris Kolpackov <boris@dre.vanderbilt.edu> +// cvs-id : $Id$ + +namespace CCF +{ + namespace CIDL + { + namespace Traversal + { + + template <typename T> + void CompositionTemplate<T>:: + traverse (T& c) + { + pre (c); + name (c); + names (c); + post (c); + } + + template <typename T> + void CompositionTemplate<T>:: + pre (T&) + { + } + + template <typename T> + void CompositionTemplate<T>:: + name (T&) + { + } + + template <typename T> + void CompositionTemplate<T>:: + post (T&) + { + } + } + } +} diff --git a/CIAO/CCF/CCF/CIDL/Traversal/Elements.hpp b/CIAO/CCF/CCF/CIDL/Traversal/Elements.hpp new file mode 100644 index 00000000000..72ffd2613db --- /dev/null +++ b/CIAO/CCF/CCF/CIDL/Traversal/Elements.hpp @@ -0,0 +1,36 @@ +// file : CCF/CIDL/Traversal/Elements.hpp +// author : Boris Kolpackov <boris@dre.vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef CCF_CIDL_TRAVERSAL_ELEMENTS_HPP +#define CCF_CIDL_TRAVERSAL_ELEMENTS_HPP + +#include "CCF/IDL3/Traversal/Elements.hpp" + +#include "CCF/CIDL/SemanticGraph/Elements.hpp" + +namespace CCF +{ + namespace CIDL + { + namespace Traversal + { + using namespace IDL3::Traversal; + + // + // + // + struct Implements : Edge<SemanticGraph::Implements> + { + virtual void + traverse (Type& e) + { + node_traverser ().traverse (e.implementee ()); + } + }; + + } + } +} + +#endif // CCF_CIDL_TRAVERSAL_ELEMENTS_HPP diff --git a/CIAO/CCF/CCF/CIDL/Traversal/Executor.cpp b/CIAO/CCF/CCF/CIDL/Traversal/Executor.cpp new file mode 100644 index 00000000000..efcb9681d66 --- /dev/null +++ b/CIAO/CCF/CCF/CIDL/Traversal/Executor.cpp @@ -0,0 +1,195 @@ +// file : CCF/CIDL/Traversal/Executor.cpp +// author : Boris Kolpackov <boris@dre.vanderbilt.edu> +// cvs-id : $Id$ + +#include "CCF/CIDL/Traversal/Executor.hpp" + +namespace CCF +{ + namespace CIDL + { + namespace Traversal + { + // Executor + // + // + void Executor:: + traverse (Type& e) + { + pre (e); + name (e); + implements (e); + post (e); + } + + void Executor:: + pre (Type&) + { + } + + void Executor:: + name (Type&) + { + } + + void Executor:: + implements (Type& e, EdgeDispatcherBase& d) + { + d.traverse (e.implements ()); + } + + void Executor:: + implements (Type& e) + { + implements_pre (e); + implements (e, edge_traverser ()); + implements_post (e); + } + + void Executor:: + implements_pre (Type&) + { + } + + void Executor:: + implements_post (Type&) + { + } + + void Executor:: + post (Type&) + { + } + + + // ComponentExecutor + // + // + void ComponentExecutor:: + traverse (Type& e) + { + pre (e); + name (e); + implements (e); + post (e); + } + + void ComponentExecutor:: + pre (Type&) + { + } + + void ComponentExecutor:: + name (Type&) + { + } + + void ComponentExecutor:: + implements (Type& e, EdgeDispatcherBase& d) + { + d.traverse (e.implements ()); + } + + void ComponentExecutor:: + implements (Type& e) + { + implements_pre (e); + implements (e, edge_traverser ()); + implements_post (e); + } + + void ComponentExecutor:: + implements_pre (Type&) + { + } + + void ComponentExecutor:: + implements_post (Type&) + { + } + + void ComponentExecutor:: + post (Type&) + { + } + + + + // HomeExecutor + // + // + void HomeExecutor:: + traverse (Type& e) + { + pre (e); + name (e); + implements (e); + manages (e); + post (e); + } + + void HomeExecutor:: + pre (Type&) + { + } + + void HomeExecutor:: + name (Type&) + { + } + + void HomeExecutor:: + implements (Type& e, EdgeDispatcherBase& d) + { + d.traverse (e.implements ()); + } + + void HomeExecutor:: + implements (Type& e) + { + implements_pre (e); + implements (e, edge_traverser ()); + implements_post (e); + } + + void HomeExecutor:: + implements_pre (Type&) + { + } + + void HomeExecutor:: + implements_post (Type&) + { + } + + void HomeExecutor:: + manages (Type& e, EdgeDispatcherBase& d) + { + d.traverse (e.manages ()); + } + + void HomeExecutor:: + manages (Type& e) + { + manages_pre (e); + manages (e, edge_traverser ()); + manages_post (e); + } + + void HomeExecutor:: + manages_pre (Type&) + { + } + + void HomeExecutor:: + manages_post (Type&) + { + } + + void HomeExecutor:: + post (Type&) + { + } + } + } +} diff --git a/CIAO/CCF/CCF/CIDL/Traversal/Executor.hpp b/CIAO/CCF/CCF/CIDL/Traversal/Executor.hpp new file mode 100644 index 00000000000..6bb543aee9d --- /dev/null +++ b/CIAO/CCF/CCF/CIDL/Traversal/Executor.hpp @@ -0,0 +1,125 @@ +// file : CCF/CIDL/Traversal/Executor.hpp +// author : Boris Kolpackov <boris@dre.vanderbilt.edu> +// cvs-id : $Id$ + +#ifndef CCF_CIDL_TRAVERSAL_EXECUTOR_HPP +#define CCF_CIDL_TRAVERSAL_EXECUTOR_HPP + +#include "CCF/CIDL/SemanticGraph/Executor.hpp" + +#include "CCF/CIDL/Traversal/Elements.hpp" + +namespace CCF +{ + namespace CIDL + { + namespace Traversal + { + // + // + // + struct Executor : Node<SemanticGraph::Executor> + { + virtual void + traverse (Type& e); + + virtual void + pre (Type&); + + virtual void + name (Type&); + + virtual void + implements (Type&, EdgeDispatcherBase&); + + virtual void + implements (Type&); + + virtual void + implements_pre (Type&); + + virtual void + implements_post (Type&); + + virtual void + post (Type&); + }; + + + // + // + // + struct ComponentExecutor : Node<SemanticGraph::ComponentExecutor> + { + virtual void + traverse (Type& e); + + virtual void + pre (Type&); + + virtual void + name (Type&); + + virtual void + implements (Type&, EdgeDispatcherBase&); + + virtual void + implements (Type&); + + virtual void + implements_pre (Type&); + + virtual void + implements_post (Type&); + + virtual void + post (Type&); + }; + + + // + // + // + struct HomeExecutor : Node<SemanticGraph::HomeExecutor> + { + virtual void + traverse (Type& e); + + virtual void + pre (Type&); + + virtual void + name (Type&); + + virtual void + implements (Type&, EdgeDispatcherBase&); + + virtual void + implements (Type&); + + virtual void + implements_pre (Type&); + + virtual void + implements_post (Type&); + + virtual void + manages (Type&, EdgeDispatcherBase&); + + virtual void + manages (Type&); + + virtual void + manages_pre (Type&); + + virtual void + manages_post (Type&); + + virtual void + post (Type&); + }; + } + } +} + +#endif // CCF_CIDL_TRAVERSAL_EXECUTOR_HPP |