summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_root/root_svts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_root/root_svts.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_root/root_svts.cpp73
1 files changed, 73 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_svts.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_svts.cpp
new file mode 100644
index 00000000000..cfe25bf2e18
--- /dev/null
+++ b/TAO/TAO_IDL/be/be_visitor_root/root_svts.cpp
@@ -0,0 +1,73 @@
+
+//=============================================================================
+/**
+ * @file root_svts.cpp
+ *
+ * $Id$
+ *
+ * Visitor generating code for Root in the CIAO template servant source
+ *
+ *
+ * @author Marcel Smit
+ */
+//=============================================================================
+
+// ********************************
+// Root visitor for CIAO template servant source
+// ********************************
+
+be_visitor_root_svts::be_visitor_root_svts (be_visitor_context *ctx)
+ : be_visitor_root (ctx)
+{
+}
+
+be_visitor_root_svts::~be_visitor_root_svts (void)
+{
+}
+
+int
+be_visitor_root_svts::visit_root (be_root *node)
+{
+ if (this->init () == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("be_visitor_root_svts::init - ")
+ ACE_TEXT ("failed to initialize\n")),
+ -1);
+ }
+
+ if (this->visit_scope (node) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("be_visitor_root_svts::visit_root - ")
+ ACE_TEXT ("codegen for scope failed\n")),
+ -1);
+ }
+
+ (void) tao_cg->end_ciao_svnt_template_source ();
+
+ return 0;
+}
+
+int
+be_visitor_root_svts::init (void)
+{
+ // First open the client-side header file for writing.
+ int status =
+ tao_cg->start_ciao_svnt_template_source (
+ be_global->be_get_ciao_tmpl_svnt_src_fname ());
+
+ if (status == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("be_visitor_root_svts::init - ")
+ ACE_TEXT ("Error opening CIAO servant ")
+ ACE_TEXT ("source file\n")),
+ -1);
+ }
+
+ // Initialize the stream.
+ this->ctx_->stream (tao_cg->ciao_svnt_template_source ());
+
+ return 0;
+}