diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp | 284 |
1 files changed, 0 insertions, 284 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp deleted file mode 100644 index 8d51d80e4c4..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp +++ /dev/null @@ -1,284 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// smart_proxy_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for smart_proxy classes for an Interface in the -// client proxy file. -// -// = AUTHOR -// Kirthika Parameswaran <kirthika@cs.wustl.edu> -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - -ACE_RCSID(be_visitor_interface, smart_proxy_cs, "$Id$") - - -// ************************************************************ -// be_visitor_interface_smart_proxy_cs -// ************************************************************ - -be_visitor_interface_smart_proxy_cs::be_visitor_interface_smart_proxy_cs -(be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_smart_proxy_cs::~be_visitor_interface_smart_proxy_cs (void) -{ -} - -int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - this->ctx_->node (node); - - os->indent (); - - // Its necessary to take care of the nested case. The smart proxy classes - // are in the same scope as the proxy. - be_decl* scope = be_scope::narrow_from_scope (node->defined_in ())->decl (); - - *os << scope->full_name (); - - // Only if there exists any nesting "::" is needed! - if (node->is_nested ()) - *os << "::"; - - *os <<"TAO_"<< node->flat_name () << "_Default_Proxy_Factory::"; - *os << "TAO_" - << node->flat_name () << "_Default_Proxy_Factory (int register_proxy_factory)" - << be_nl - << "{" << be_idt_nl - << "if (register_proxy_factory)"<< be_idt_nl - << "{" << be_idt_nl - << "TAO_" << node->flat_name () - << "_PROXY_FACTORY_ADAPTER::instance ()->register_proxy_factory (this);"<< be_uidt_nl - << "}" << be_uidt << be_uidt_nl - << "}\n\n"; - - os->indent (); - - *os << scope->full_name (); - - // Only if there exists any nesting "::" is needed! - if (node->is_nested ()) - *os << "::"; - - *os << "TAO_"<< node->flat_name () - << "_Default_Proxy_Factory::~"; - *os <<"TAO_" - << node->flat_name () << "_Default_Proxy_Factory (void)" - << be_nl << be_uidt << be_uidt - << "{" << be_nl - << "}\n\n"; - - os->indent (); - *os << node->full_name () << "_ptr" << be_nl << be_uidt << be_uidt; - *os << scope->full_name (); - - // Only if there exists any nesting "::" is needed! - if (node->is_nested ()) - *os << "::"; - - *os << "TAO_" << node->flat_name () - << "_Default_Proxy_Factory::create_proxy (" << be_idt << be_idt_nl - << node->full_name () << "_ptr proxy," << be_nl - << "CORBA::Environment &" << be_uidt_nl - << ")" << be_uidt << be_uidt_nl - << "{" << be_idt_nl - << "return proxy;" << be_uidt << be_uidt_nl - << "}\n\n"; - - os->indent (); - *os << scope->full_name (); - - // Only if there exists any nesting "::" is needed! - if (node->is_nested ()) - *os << "::"; - - *os << "TAO_" << node->flat_name () << "_Proxy_Factory_Adapter::"; - *os << "TAO_" - << node->flat_name () << "_Proxy_Factory_Adapter (void)" <<be_idt_nl - << " : proxy_factory_ (0)," <<be_idt_nl - << " delete_proxy_factory_ (0)" << be_uidt << be_uidt_nl - << "{"<< be_nl - << "}\n\n"; - - os->indent (); - *os << scope->full_name (); - - // Only if there exists any nesting "::" is needed! - if (node->is_nested ()) - *os << "::"; - - *os << "TAO_" << node->flat_name () << "_Proxy_Factory_Adapter::"; - *os << "~TAO_" - << node->flat_name () << "_Proxy_Factory_Adapter (void)" <<be_nl - << "{" <<be_idt_nl - << "// Making sure the factory which the adapter has is destroyed with it."<<be_nl - << "if (this->proxy_factory_ != 0)" <<be_idt_nl - << "delete this->proxy_factory_;" << be_uidt<<be_uidt_nl - << "}\n\n"; - - os->indent (); - *os << "int" << be_nl; - *os << scope->full_name (); - - // Only if there exists any nesting "::" is needed! - if (node->is_nested ()) - *os << "::"; - *os << "TAO_" << node->flat_name () - << "_Proxy_Factory_Adapter::register_proxy_factory (" << be_idt_nl - << "TAO_" << node->flat_name () - << "_Default_Proxy_Factory *df," << be_idt_nl - << " CORBA::Environment &ACE_TRY_ENV" << be_idt_nl - << ")" << be_uidt <<be_uidt << be_uidt_nl - << "{" << be_idt_nl - << "ACE_MT (ACE_GUARD_RETURN (" - << "ACE_Recursive_Thread_Mutex, ace_mon," << be_idt_nl - << "this->lock_, 0));" <<be_uidt_nl - << "// Remove any existing <proxy_factory_> and replace with the new one."<<be_nl - << "this->unregister_proxy_factory (ACE_TRY_ENV);" << be_nl - << "this->proxy_factory_ = df;"<< be_nl - << "this->delete_proxy_factory_ = 0;" << be_uidt << be_uidt_nl - << "return 0;" << be_uidt << be_uidt_nl - << "}\n\n"; - - os->indent (); - *os << "int" << be_nl; - *os << scope->full_name (); - - // Only if there exists any nesting "::" is needed! - if (node->is_nested ()) - *os << "::"; - - *os << "TAO_"<< node->flat_name () - << "_Proxy_Factory_Adapter::unregister_proxy_factory (" << be_idt_nl - << "CORBA::Environment &" << be_idt_nl - << ")" << be_uidt << be_uidt_nl - << "{" << be_idt_nl - << "ACE_MT (ACE_GUARD_RETURN (" - << "ACE_Recursive_Thread_Mutex, ace_mon," << be_idt_nl - << "this->lock_, 0));" <<be_uidt_nl - << "if (" - << "this->delete_proxy_factory_ == 0 && this->proxy_factory_ != 0)" << be_idt_nl - << "{" << be_idt_nl - << "// Its necessary to set <delete_proxy_factory_> to 1 to make sure that it" <<be_nl - << "// doesnt get into an infinite loop in <unregister_proxy_factory> as it is "<<be_nl - << "// invoked in the destructor of the class too."<<be_nl - << "this->delete_proxy_factory_ = 1;" << be_nl - << "delete " - << "this->proxy_factory_;" << be_nl - << "this->proxy_factory_ = 0;" << be_uidt_nl - << "}" << be_uidt<<be_uidt_nl - << "return 0;" << be_uidt << be_uidt_nl - << "}\n\n"; - - os->indent (); - *os << node->full_name () << "_ptr" << be_nl; - *os << scope->full_name (); - - // Only if there exists any nesting "::" is needed! - if (node->is_nested ()) - *os << "::"; - - *os << "TAO_"<< node->flat_name () - << "_Proxy_Factory_Adapter::create_proxy ("<< be_idt_nl - << node->full_name () << "_ptr proxy," << be_nl - << "CORBA::Environment &" << be_idt_nl - << ")" << be_uidt << be_uidt << be_uidt_nl - << "{" << be_idt_nl - << "ACE_MT (ACE_GUARD_RETURN (" - << "ACE_Recursive_Thread_Mutex, ace_mon," << be_idt_nl - << "this->lock_, 0));" <<be_uidt_nl - << "// Verify that an <proxy_factory_> is available else make one."<<be_nl - << "if (" - <<"this->proxy_factory_ == 0)" << be_idt_nl - << "ACE_NEW_RETURN (" - << "this->proxy_factory_," << be_idt <<be_idt_nl - << "TAO_" << node->flat_name () - << "_Default_Proxy_Factory (1), "<< be_nl - << " 0);" << be_uidt_nl << be_uidt_nl << be_uidt_nl - << "return " - << "this->proxy_factory_->create_proxy (proxy);" - << be_uidt << be_uidt_nl - << "}\n\n"; - - os->indent (); - *os << scope->full_name (); - - // Only if there exists any nesting "::" is needed! - if (node->is_nested ()) - *os << "::"; - - *os << "TAO_" << node->flat_name () << "_Smart_Proxy_Base::"; - *os << "TAO_" - << node->flat_name () << "_Smart_Proxy_Base (" - << node->full_name () << "_ptr proxy)" << be_nl - << ": base_proxy_ (proxy)" << be_nl - << "{" << be_nl - << "}\n\n"; - - os->indent (); - *os << scope->full_name (); - - // Only if there exists any nesting "::" is needed! - if (node->is_nested ()) - *os << "::"; - - *os << "TAO_" << node->flat_name () << "_Smart_Proxy_Base::"; - *os << "~TAO_" - << node->flat_name () << "_Smart_Proxy_Base (void)" <<be_nl - << "{" << be_nl - << "}\n\n"; - - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_smart_proxy_cs::" - "visit_scope - " - "codegen for scope failed\n"), - -1); - } - - os->indent (); - *os << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\" - << be_idt_nl<<"defined (ACE_HAS_GNU_REPO)"<<be_uidt_nl - << "template class ACE_Singleton<"; - *os << scope->full_name (); - - // Only if there exists any nesting "::" is needed! - if (node->is_nested ()) - *os << "::"; - *os <<"TAO_" <<node->flat_name () - << "_Proxy_Factory_Adapter, ACE_SYNCH_RECURSIVE_MUTEX >;"<<be_nl - << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" - << be_nl - << "#pragma instantiate ACE_Singleton<"; - *os << scope->full_name (); - - // Only if there exists any nesting "::" is needed! - if (node->is_nested ()) - *os << "::"; - *os << "TAO_"<<node->flat_name () - << "_Proxy_Factory_Adapter, ACE_SYNCH_RECURSIVE_MUTEX>"<<be_nl - << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */"<<be_nl<<be_nl; - - return 0; -} |