Merge pull request #2303 from jwillemsen/jwi-803
[ACE_TAO.git] / TAO / TAO_IDL / be / be_visitor_root / root_exs.cpp
blob0f4fed0665144c85ad5648c93ec5a4239b28d370
2 //=============================================================================
3 /**
4 * @file root_exs.cpp
6 * Visitor generating code for Root in the CIAO
7 * exec impl source
9 * @author Jeff Parsons
11 //=============================================================================
13 #include "root.h"
15 be_visitor_root_exs::be_visitor_root_exs (be_visitor_context *ctx)
16 : be_visitor_root (ctx)
20 be_visitor_root_exs::~be_visitor_root_exs ()
24 int
25 be_visitor_root_exs::visit_root (be_root *node)
27 if (this->init () == -1)
29 ACE_ERROR_RETURN ((LM_ERROR,
30 ACE_TEXT ("be_visitor_root_exs::init - ")
31 ACE_TEXT ("failed to initialize\n")),
32 -1);
35 if (this->visit_scope (node) == -1)
37 ACE_ERROR_RETURN ((LM_ERROR,
38 ACE_TEXT ("be_visitor_root_exs::visit_root - ")
39 ACE_TEXT ("codegen for scope failed\n")),
40 -1);
43 (void) tao_cg->end_ciao_exec_source ();
45 return 0;
48 int
49 be_visitor_root_exs::init ()
51 // First open the client-side header file for writing.
52 int status =
53 tao_cg->start_ciao_exec_source (
54 be_global->be_get_ciao_exec_src_fname ());
56 if (status == -1)
58 ACE_ERROR_RETURN ((LM_ERROR,
59 ACE_TEXT ("be_visitor_root_exs::init - ")
60 ACE_TEXT ("Error opening CIAO exec impl ")
61 ACE_TEXT ("source file\n")),
62 -1);
65 // Initialize the stream.
66 this->ctx_->stream (tao_cg->ciao_exec_source ());
68 return 0;