summaryrefslogtreecommitdiff
path: root/modules/TAO/TAO_IDL/be/be_visitor_component/facet_ex_idl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/TAO/TAO_IDL/be/be_visitor_component/facet_ex_idl.cpp')
-rw-r--r--modules/TAO/TAO_IDL/be/be_visitor_component/facet_ex_idl.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/modules/TAO/TAO_IDL/be/be_visitor_component/facet_ex_idl.cpp b/modules/TAO/TAO_IDL/be/be_visitor_component/facet_ex_idl.cpp
new file mode 100644
index 00000000000..bfc9143f120
--- /dev/null
+++ b/modules/TAO/TAO_IDL/be/be_visitor_component/facet_ex_idl.cpp
@@ -0,0 +1,61 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// facet_ex_idl.cpp
+//
+// = DESCRIPTION
+// Visitor generating code for facets in the CIAO executor IDL.
+//
+// = AUTHOR
+// Jeff Parsons
+//
+// ============================================================================
+
+be_visitor_facet_ex_idl::be_visitor_facet_ex_idl (
+ be_visitor_context *ctx)
+ : be_visitor_component_scope (ctx)
+{
+}
+
+be_visitor_facet_ex_idl::~be_visitor_facet_ex_idl (void)
+{
+}
+
+int
+be_visitor_facet_ex_idl::visit_provides (be_provides *node)
+{
+ be_type *impl =
+ be_type::narrow_from_decl (node->provides_type ());
+
+ if (impl->ex_idl_facet_gen ())
+ {
+ return 0;
+ }
+
+ be_util::gen_nesting_open (os_, impl);
+
+ os_ << be_nl
+ << "local interface CCM_"
+ << impl->original_local_name ()->get_string ()
+ << " : ::"
+ << IdentifierHelper::orig_sn (impl->name ()).c_str ()
+ << be_nl
+ << "{" << be_idt;
+
+ os_ << be_uidt_nl
+ << "};";
+
+ be_util::gen_nesting_close (os_, impl);
+
+ impl->ex_idl_facet_gen (true);
+
+ return 0;
+}
+