diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-11-29 03:43:41 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-11-29 03:43:41 +0000 |
commit | 99f4135b6b3df57957fbafdfd0492685a80a2f25 (patch) | |
tree | 2c880fe01d1e42207172999c43355b8b4e7926f2 /TAO/TAO_IDL | |
parent | 39625dbd1401b95e3a8509c4cfd8ecb61d083a76 (diff) | |
download | ATCD-99f4135b6b3df57957fbafdfd0492685a80a2f25.tar.gz |
ChangeLogTag: Fri Nov 28 21:39:53 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'TAO/TAO_IDL')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_traits.cpp | 64 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_visitor_traits.h | 8 |
2 files changed, 71 insertions, 1 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_traits.cpp b/TAO/TAO_IDL/be/be_visitor_traits.cpp index 3021f4ae393..9e32cb8dcea 100644 --- a/TAO/TAO_IDL/be/be_visitor_traits.cpp +++ b/TAO/TAO_IDL/be/be_visitor_traits.cpp @@ -24,6 +24,10 @@ #include "be_eventtype_fwd.h" #include "be_component.h" #include "be_component_fwd.h" +#include "be_field.h" +#include "be_exception.h" +#include "be_structure.h" +#include "be_union.h" #include "be_array.h" #include "be_typedef.h" #include "be_helper.h" @@ -259,9 +263,67 @@ be_visitor_traits::visit_eventtype_fwd (be_eventtype_fwd *node) } int +be_visitor_traits::visit_field (be_field *node) +{ + be_type *ft = be_type::narrow_from_decl (node->field_type ()); + + if (ft->accept (this) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_visitor_traits::" + "visit_field - visit field type failed\n"), + -1); + } + + return 0; +} + +int +be_visitor_traits::visit_exception (be_exception *node) +{ + if (this->visit_scope (node) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_visitor_traits::" + "visit_exception - visit scope failed\n"), + -1); + } + + return 0; +} + +int +be_visitor_traits::visit_struct (be_structure *node) +{ + if (this->visit_scope (node) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_visitor_traits::" + "visit_struct - visit scope failed\n"), + -1); + } + + return 0; +} + +int +be_visitor_traits::visit_union (be_union *node) +{ + if (this->visit_scope (node) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_visitor_traits::" + "visit_union - visit scope failed\n"), + -1); + } + + return 0; +} + +int be_visitor_traits::visit_array (be_array *node) { - if (node->cli_traits_gen ()) + if (node->imported () || node->cli_traits_gen ()) { return 0; } diff --git a/TAO/TAO_IDL/be_include/be_visitor_traits.h b/TAO/TAO_IDL/be_include/be_visitor_traits.h index 4a35d1fdd56..c97636ccb63 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_traits.h +++ b/TAO/TAO_IDL/be_include/be_visitor_traits.h @@ -48,6 +48,14 @@ public: virtual int visit_eventtype_fwd (be_eventtype_fwd *node); + virtual int visit_field (be_field *node); + + virtual int visit_exception (be_exception *node); + + virtual int visit_struct (be_structure *node); + + virtual int visit_union (be_union *node); + virtual int visit_array (be_array *node); virtual int visit_typedef (be_typedef *node); |