summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_component/facet_exh.cpp
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2010-03-26 20:12:25 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2010-03-26 20:12:25 +0000
commitf204deb60940a9fd60641c024843231897822e61 (patch)
treea5fb80dc170164f31986c7b154ee98ad948e4701 /TAO/TAO_IDL/be/be_visitor_component/facet_exh.cpp
parent8d052009a089193c68eeec3995b1e1f95f21d286 (diff)
downloadATCD-f204deb60940a9fd60641c024843231897822e61.tar.gz
ChangeLogTag: Fri Mar 26 20:11:31 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_component/facet_exh.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_component/facet_exh.cpp37
1 files changed, 27 insertions, 10 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_component/facet_exh.cpp b/TAO/TAO_IDL/be/be_visitor_component/facet_exh.cpp
index 89a49c635ac..5774037b767 100644
--- a/TAO/TAO_IDL/be/be_visitor_component/facet_exh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_component/facet_exh.cpp
@@ -32,11 +32,16 @@ be_visitor_facet_exh::visit_provides (be_provides *node)
{
be_type *impl = node->provides_type ();
+ /// For the moment, we are generating multiple facet
+ /// executor classes if the same interface is used in
+ /// multiple components. I'm leaving the code here in
+ /// case we change our minds later.
+/*
if (impl->exec_hdr_facet_gen ())
{
return 0;
}
-
+*/
// We don't want a '_cxx_' prefix here.
const char *lname =
impl->original_local_name ()->get_string ();
@@ -47,15 +52,14 @@ be_visitor_facet_exh::visit_provides (be_provides *node)
const char *sname = sname_str.c_str ();
const char *global = (sname_str == "" ? "" : "::");
- os_ << be_nl
- << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__
- << be_nl;
-
AST_Decl *c_scope = ScopeAsDecl (this->node_->defined_in ());
bool is_global = (c_scope->node_type () == AST_Decl::NT_root);
const char *smart_scope = (is_global ? "" : "::");
+ os_ << be_nl << be_nl
+ << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
os_ << be_nl
<< "class " << export_macro_.c_str () << " "
<< lname << "_exec_i" << be_idt_nl
@@ -79,10 +83,23 @@ be_visitor_facet_exh::visit_provides (be_provides *node)
os_ << be_nl << be_nl
<< "// Operations and attributes from ::"
<< intf->full_name ();
-
+
+ be_visitor_context ctx (*this->ctx_);
+ be_visitor_interface_ih v (&ctx);
+
+ if (v.visit_scope (intf) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("be_visitor_facet_exh::")
+ ACE_TEXT ("visit_provides - ")
+ ACE_TEXT ("visit_scope() ")
+ ACE_TEXT ("failed\n")),
+ -1);
+ }
+
int status =
intf->traverse_inheritance_graph (
- be_interface::op_attr_decl_helper,
+ be_visitor_interface_ih::method_helper,
&os_);
if (status == -1)
@@ -101,9 +118,9 @@ be_visitor_facet_exh::visit_provides (be_provides *node)
<< smart_scope << c_scope->full_name () << "::CCM_"
<< this->node_->local_name ()
<< "_Context_var ciao_context_;" << be_uidt_nl
- << "};" << be_nl;
+ << "};";
- impl->exec_hdr_facet_gen (true);
+// impl->exec_hdr_facet_gen (true);
return 0;
}