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