summaryrefslogtreecommitdiff
path: root/TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.cpp')
-rw-r--r--TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.cpp70
1 files changed, 65 insertions, 5 deletions
diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.cpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.cpp
index bc06e04a8fe..c781cdcfb97 100644
--- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.cpp
+++ b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Sequence.cpp
@@ -11,11 +11,14 @@ namespace CCF
namespace Traversal
{
+ // UnboundedSequence
+ //
+
void UnboundedSequence::
traverse (Type& us)
{
pre (us);
- specialized (us);
+ arguments_with_type (us);
name (us);
post (us);
}
@@ -26,15 +29,15 @@ namespace CCF
}
void UnboundedSequence::
- specialized (Type& us, EdgeDispatcherBase& d)
+ arguments_with_type (Type& us, EdgeDispatcherBase& d)
{
- d.traverse (us.specialized ());
+ d.traverse (**us.arguments_begin ());
}
void UnboundedSequence::
- specialized (Type& us)
+ arguments_with_type (Type& us)
{
- specialized (us, edge_traverser ());
+ arguments_with_type (us, edge_traverser ());
}
void UnboundedSequence::
@@ -46,6 +49,63 @@ namespace CCF
post (Type&)
{
}
+
+
+ // BoundedSequence
+ //
+
+ void BoundedSequence::
+ traverse (Type& bs)
+ {
+ pre (bs);
+ arguments_with_type (bs);
+ arguments_with_value (bs);
+ name (bs);
+ post (bs);
+ }
+
+ void BoundedSequence::
+ pre (Type&)
+ {
+ }
+
+ void BoundedSequence::
+ arguments_with_type (Type& bs, EdgeDispatcherBase& d)
+ {
+ d.traverse (**bs.arguments_begin ());
+ }
+
+ void BoundedSequence::
+ arguments_with_type (Type& bs)
+ {
+ arguments_with_type (bs, edge_traverser ());
+ }
+
+ void BoundedSequence::
+ arguments_with_value (Type& bs, EdgeDispatcherBase& d)
+ {
+ Type::ArgumentsIterator i (bs.arguments_begin ());
+
+ ++i; // Bound is always second to the type.
+
+ d.traverse (**i);
+ }
+
+ void BoundedSequence::
+ arguments_with_value (Type& bs)
+ {
+ arguments_with_value (bs, edge_traverser ());
+ }
+
+ void BoundedSequence::
+ name (Type&)
+ {
+ }
+
+ void BoundedSequence::
+ post (Type&)
+ {
+ }
}
}
}