summaryrefslogtreecommitdiff
path: root/CIAO/CCF/CCF/CIDL/Traversal
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/CCF/CCF/CIDL/Traversal')
-rw-r--r--CIAO/CCF/CCF/CIDL/Traversal/Composition.hpp60
-rw-r--r--CIAO/CCF/CCF/CIDL/Traversal/Composition.tpp41
-rw-r--r--CIAO/CCF/CCF/CIDL/Traversal/Elements.hpp36
-rw-r--r--CIAO/CCF/CCF/CIDL/Traversal/Executor.cpp195
-rw-r--r--CIAO/CCF/CCF/CIDL/Traversal/Executor.hpp125
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