diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_interface/tie_ss.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/tie_ss.cpp | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/tie_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/tie_ss.cpp deleted file mode 100644 index eb876a5a13c..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/tie_ss.cpp +++ /dev/null @@ -1,248 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// tie_ss.cpp -// -// = DESCRIPTION -// Visitor generating code for TIE classes for the Interface node in the -// inline file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -ACE_RCSID (be_visitor_interface, - tie_ss, - "$Id$") - - -// ************************************************************************ -// Interface visitor for server inline -// ************************************************************************ - -be_visitor_interface_tie_ss::be_visitor_interface_tie_ss ( - be_visitor_context *ctx - ) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_tie_ss::~be_visitor_interface_tie_ss (void) -{ -} - -int -be_visitor_interface_tie_ss::visit_interface (be_interface *node) -{ - if (node->srv_inline_gen () - || node->imported () - || node->is_abstract ()) - { - return 0; - } - - static char fulltiename [NAMEBUFSIZE]; - static char localtiename [NAMEBUFSIZE]; - static char localskelname [NAMEBUFSIZE]; - - ACE_OS::memset (fulltiename, - '\0', - NAMEBUFSIZE); - ACE_OS::memset (localtiename, - '\0', - NAMEBUFSIZE); - ACE_OS::memset (localskelname, - '\0', - NAMEBUFSIZE); - - // Generate the skeleton class name which will be used to determine the TIE - // class name. - - // We are outermost. - ACE_OS::sprintf (fulltiename, - "%s_tie", - node->full_skel_name ()); - - if (!node->is_nested ()) - { - ACE_OS::sprintf (localskelname, - "POA_%s", - node->local_name ()); - ACE_OS::sprintf (localtiename, - "POA_%s_tie", - node->local_name ()); - } - else - { - ACE_OS::sprintf (localskelname, - "%s", - node->local_name ()); - ACE_OS::sprintf (localtiename, - "%s_tie", - node->local_name ()); - } - - TAO_OutStream *os = this->ctx_->stream (); - - *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl - << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl; - - *os << "template <class T>" << be_nl - << fulltiename << "<T>::" << localtiename << " (T &t)" << be_nl - << "\t: ptr_ (&t)," << be_nl - << "\t poa_ (PortableServer::POA::_nil ())," << be_nl - << "\t rel_ (0)" << be_nl - << "{}" << be_nl << be_nl; - - *os << "template <class T> " << be_nl - << fulltiename << "<T>::" << localtiename - << " (T &t, PortableServer::POA_ptr poa)" << be_nl - << "\t: ptr_ (&t)," << be_nl - << "\t poa_ (PortableServer::POA::_duplicate (poa))," << be_nl - << "\t rel_ (0)" << be_nl - << "{}" << be_nl << be_nl; - - *os << "template <class T>" << be_nl - << fulltiename << "<T>::" << localtiename - << " (T *tp, ::CORBA::Boolean release)" << be_nl - << "\t: ptr_ (tp)," << be_nl - << "\t poa_ (PortableServer::POA::_nil ())," << be_nl - << "\t rel_ (release)" << be_nl - << "{}" << be_nl << be_nl; - - *os << "template <class T>" << be_nl - << fulltiename << "<T>::" << localtiename - << " (T *tp, PortableServer::POA_ptr poa, ::CORBA::Boolean release)" - << be_nl - << "\t: ptr_ (tp)," << be_nl - << "\t poa_ (PortableServer::POA::_duplicate (poa))," << be_nl - << "\t rel_ (release)" << be_nl - << "{}" << be_nl << be_nl; - - *os << "template <class T>" << be_nl - << fulltiename << "<T>::~" << localtiename << " (void)" << be_nl - << "{" << be_idt_nl - << "if (this->rel_)" << be_idt_nl - << "{" << be_idt_nl - << "delete this->ptr_;" << be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "template <class T> T *" << be_nl - << fulltiename << "<T>::_tied_object (void)" << be_nl - << "{" << be_idt_nl - << "return this->ptr_;" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "template <class T> void" << be_nl - << fulltiename << "<T>::_tied_object (T &obj)" << be_nl - << "{" << be_idt_nl - << "if (this->rel_)" << be_idt_nl - << "{" << be_idt_nl - << "delete this->ptr_;" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "this->ptr_ = &obj;" << be_nl - << "this->rel_ = 0;" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "template <class T> void" << be_nl - << fulltiename << "<T>::_tied_object (T *obj, " - << "::CORBA::Boolean release)" << be_nl - << "{" << be_idt_nl - << "if (this->rel_)" << be_idt_nl - << "{" << be_idt_nl - << "delete this->ptr_;" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "this->ptr_ = obj;" << be_nl - << "this->rel_ = release;" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "template <class T> ::CORBA::Boolean" << be_nl - << fulltiename << "<T>::_is_owner (void)" << be_nl - << "{" << be_idt_nl - << "return this->rel_;" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "template <class T> void" << be_nl - << fulltiename << "<T>::_is_owner ( ::CORBA::Boolean b)" << be_nl - << "{" << be_idt_nl - << "this->rel_ = b;" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "template <class T> " - << "PortableServer::POA_ptr" << be_nl - << fulltiename - << "<T>::_default_POA ()" << be_nl - << "{" << be_idt_nl - << "if (! ::CORBA::is_nil (this->poa_.in ()))" << be_idt_nl - << "{" << be_idt_nl - << "return PortableServer::POA::_duplicate (this->poa_.in ());" - << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "return this->" << localskelname - << "::_default_POA ();" << be_uidt_nl - << "}"; - - int status = - node->traverse_inheritance_graph ( - be_visitor_interface_tie_ss::method_helper, - os - ); - - if (status == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_tie_sh_ss::" - "visit_interface - " - "traversal of inhertance graph failed\n"), - -1); - } - - return 0; -} - -int -be_visitor_interface_tie_ss::visit_component (be_component *node) -{ - return this->visit_interface (node); -} - -int -be_visitor_interface_tie_ss::method_helper (be_interface *derived, - be_interface *node, - TAO_OutStream *os) -{ - // Any methods from abstract parents have already been - // "added" to the derived interface scope by the overridden - // visit_scope() method in be_visitor_interface, so we can skip - // this base interface, if it is abstract. - if (node->is_abstract ()) - { - return 0; - } - - be_visitor_context ctx; - ctx.interface (derived); - ctx.stream (os); - ctx.state (TAO_CodeGen::TAO_ROOT_TIE_SS); - be_visitor_interface_tie_ss visitor (&ctx); - - if (visitor.visit_scope (node) == -1) - - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_tie_ss::" - "method_helper\n"), - -1); - } - - return 0; -} |