⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 psdl_interface_visitor.cpp

📁 这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用于网络游戏医学图像网关的高qos要求.更详细的内容可阅读相应的材料
💻 CPP
📖 第 1 页 / 共 5 页
字号:
  *ps_si << "{";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "static ::_TAO_" << this->interface_name_
         << "_Remote_Proxy_Broker remote_proxy_broker;";   ps_si->nl ();
  *ps_si << "return &remote_proxy_broker;";

  ps_si->decr_indent (0);
  ps_si->nl ();
  *ps_si << "}";

  ps_si->nl ();
  ps_si->nl ();

  *ps_si << "_TAO_" << this->interface_name_
         << "_Remote_Proxy_Broker::_TAO_"
         << this->interface_name_ << "_Remote_Proxy_Broker (void)";   ps_si->nl ();
  *ps_si << "{";   ps_si->nl ();
  *ps_si << "}";

  ps_si->nl ();
  ps_si->nl ();

  *ps_si << "_TAO_" << this->interface_name_
         << "_Remote_Proxy_Broker::~_TAO_"
         << this->interface_name_ << "_Remote_Proxy_Broker (void)";   ps_si->nl ();
  *ps_si << "{";   ps_si->nl ();
  *ps_si << "}";

  ps_si->nl ();
  ps_si->nl ();

  *ps_si << "_TAO_" << this->interface_name_ << "_Proxy_Impl&";   ps_si->nl ();
  *ps_si << "_TAO_" << this->interface_name_
         << "_Remote_Proxy_Broker::select_proxy (";

  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "::" << this->interface_name_ << " *";   ps_si->nl ();
  *ps_si << "ACE_ENV_ARG_DECL_NOT_USED";   ps_si->nl ();
  *ps_si << ")";
  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << "{";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "return this->remote_proxy_impl_;";

  ps_si->decr_indent (0);
  ps_si->nl ();
  *ps_si << "}";

  ps_si->nl ();
  ps_si->nl ();
  ps_si->nl ();

  *ps_si << "//";   ps_si->nl ();
  *ps_si << "//           End Remote & Base Proxy Broker Implementation";   ps_si->nl ();
  *ps_si << "///////////////////////////////////////////////////////////////";   ps_si->nl ();
  ps_si->nl ();
  ps_si->nl ();

  *ps_si << this->interface_name_ << "::"
         << this->interface_name_ << " (int collocated)";   ps_si->nl ();

  *ps_si << "{";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "this->" << this->interface_name_
         << "_setup_collocation (collocated);";

  ps_si->decr_indent (0);
  ps_si->nl ();
  *ps_si << "}";

  ps_si->nl ();
  ps_si->nl ();

  *ps_si << this->interface_name_ << "::~"
         << this->interface_name_ << " (void)";   ps_si->nl ();
  *ps_si << "{}";

  ps_si->nl ();
  ps_si->nl ();

  *ps_si << "void";   ps_si->nl ();
  *ps_si << this->interface_name_ << "::"
         << this->interface_name_
         << "_setup_collocation (int collocated)";   ps_si->nl ();

  *ps_si << "{";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "if (collocated)";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "this->the_TAO_"
         << this->interface_name_ << "_Proxy_Broker_ =";

  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "::_TAO_" << this->interface_name_
         << "_Proxy_Broker_Factory_function_pointer (this);";

  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << "else";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "this->the_TAO_"
         << this->interface_name_
         << "_Proxy_Broker_ =";

  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "::_TAO_" << this->interface_name_
         << "_Remote_Proxy_Broker::the_TAO_"
         << this->interface_name_
         << "_Remote_Proxy_Broker ();";

  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->decr_indent (0);

  ps_si->nl ();
  *ps_si << "}";

  ps_si->nl ();
  ps_si->nl ();

  *ps_si << "void " << this->interface_name_
         << "::_tao_any_destructor (void *_tao_void_pointer)";   ps_si->nl ();

  *ps_si << "{";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << this->interface_name_
         << " *tmp = ACE_static_cast ("
         << this->interface_name_ << "*, _tao_void_pointer);";   ps_si->nl ();
  *ps_si << "CORBA::release (tmp);";

  ps_si->decr_indent (0);
  ps_si->nl ();
  *ps_si << "}";

  ps_si->nl ();
  ps_si->nl ();

  *ps_si << this->interface_name_ << "_ptr "
         << this->interface_name_ << "::_narrow (";

  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "CORBA::Object_ptr obj";   ps_si->nl ();
  *ps_si << "ACE_ENV_ARG_DECL";

  ps_si->decr_indent (0);
  ps_si->nl ();
  *ps_si << ")";
  ps_si->nl ();

  *ps_si << "{";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "if (CORBA::is_nil (obj))";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "return " << this->interface_name_ << "::_nil ();";

  ps_si->decr_indent (0);
  ps_si->nl ();
  ps_si->nl ();

  *ps_si << "if (! obj->_is_local ())";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "{";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "CORBA::Boolean is_a = obj->_is_a (\"IDL:"
         << this->interface_name_ << ":1.0\" ACE_ENV_ARG_PARAMETER);";
  ps_si->nl ();
  *ps_si << "ACE_CHECK_RETURN (" << this->interface_name_ << "::_nil ());";   ps_si->nl ();

  *ps_si << "if (is_a == 0)";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "return " << this->interface_name_ << "::_nil ();";

  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->nl ();
  *ps_si << "}";
  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << "return " << this->interface_name_
         << "::_unchecked_narrow (obj ACE_ENV_ARG_PARAMETER);";

  ps_si->decr_indent (0);
  ps_si->nl ();
  *ps_si << "}";

  ps_si->nl ();
  ps_si->nl ();

  *ps_si << this->interface_name_ << "_ptr ";   ps_si->nl ();
  *ps_si << this->interface_name_ << "::_unchecked_narrow (";

  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "CORBA::Object_ptr obj";   ps_si->nl ();
  *ps_si << "ACE_ENV_ARG_DECL_NOT_USED";   ps_si->nl ();
  *ps_si << ")";

  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << "{";

  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "if (CORBA::is_nil (obj))";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "return " << this->interface_name_ << "::_nil ();";

  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << "if (! obj->_is_local ())";   ps_si->nl ();
  *ps_si << "{";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "TAO_Stub* stub = obj->_stubobj ();";   ps_si->nl ();

  *ps_si << "if (stub)";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << " stub->_incr_refcnt ();";

  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << this->interface_name_ << "_ptr default_proxy = "
         << this->interface_name_ << "::_nil ();";   ps_si->nl ();
  ps_si->nl ();
  *ps_si << "if (";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "!CORBA::is_nil (stub->servant_orb_var ().ptr ()) &&";   ps_si->nl ();
  *ps_si << "stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects () &&";   ps_si->nl ();
  *ps_si << "obj->_is_collocated () &&";   ps_si->nl ();
  *ps_si << "_TAO_" << this->interface_name_
         << "_Proxy_Broker_Factory_function_pointer != 0";   ps_si->nl ();
  *ps_si << ")";
  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << " {";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << " ACE_NEW_RETURN (";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "default_proxy,";   ps_si->nl ();
  *ps_si << "::" << this->interface_name_ << " (";
  ps_si->incr_indent (0);
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "stub,";   ps_si->nl ();
  *ps_si << "1,";   ps_si->nl ();
  *ps_si << "obj->_servant ()";   ps_si->nl ();
  *ps_si << "),";
  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->nl ();
  *ps_si << this->interface_name_ << "::_nil ()";   ps_si->nl ();

  *ps_si << ");";
  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->nl ();
  *ps_si << " }";

  ps_si->nl ();
  ps_si->nl ();

  *ps_si << "if (CORBA::is_nil (default_proxy))";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "{";

  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "ACE_NEW_RETURN (";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "default_proxy,";   ps_si->nl ();

  *ps_si << "::" << this->interface_name_ << " (";
  ps_si->incr_indent (0);
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "stub,";   ps_si->nl ();
  *ps_si << "0,";   ps_si->nl ();
  *ps_si << "obj->_servant ()";   ps_si->nl ();
  *ps_si << "),";

  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << this->interface_name_ << "::_nil ()";   ps_si->nl ();
  *ps_si << ");";
  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << " }";
  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << "return default_proxy;";
  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << "}";   ps_si->nl ();
  *ps_si << "else";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "return";

  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "ACE_reinterpret_cast";   ps_si->nl ();
  *ps_si << "(";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << this->interface_name_ << "_ptr,";   ps_si->nl ();
  *ps_si << "obj->_tao_QueryInterface";   ps_si->nl ();
  *ps_si << "(";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "ACE_reinterpret_cast";   ps_si->nl ();
  *ps_si << "(";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "ptrdiff_t,";   ps_si->nl ();
  *ps_si << "&" << this->interface_name_ << "::_tao_class_id";
  ps_si->nl ();

  *ps_si << ")";
  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << ")";
  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << " );";
  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << "}";

  ps_si->nl ();
  ps_si->nl ();

  *ps_si << this->interface_name_ << "_ptr";   ps_si->nl ();
  *ps_si << this->interface_name_ << "::_duplicate ("
         << this->interface_name_ << "_ptr obj)";   ps_si->nl ();
  *ps_si << "{";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "if (!CORBA::is_nil (obj))";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "obj->_add_ref ();";

  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << "return obj;";

  ps_si->decr_indent (0);
  ps_si->nl ();
  *ps_si << "}";

  ps_si->nl ();
  ps_si->nl ();

  *ps_si << "CORBA::Boolean " << this->interface_name_
         << "::_is_a (const CORBA::Char *value ACE_ENV_ARG_DECL)";   ps_si->nl ();

  *ps_si << "{";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "if (";
  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "(!ACE_OS::strcmp ((char *)value, \"IDL:"
         << this->interface_name_ << ":1.0\")) ||";   ps_si->nl ();
  *ps_si << "(!ACE_OS::strcmp ((char *)value,"
         << "\"IDL:omg.org/CORBA/Object:1.0\")))";   ps_si->nl ();

  *ps_si << "return 1; // success using local knowledge";

  ps_si->decr_indent (0);
  ps_si->nl ();
  *ps_si << "else";

  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "return this->Object::_is_a (value ACE_ENV_ARG_PARAMETER);";
  ps_si->decr_indent (0);
  ps_si->decr_indent (0);
  ps_si->nl ();
  *ps_si << "}";

  ps_si->nl ();
  ps_si->nl ();

  *ps_si << "void *" << this->interface_name_
         << "::_tao_QueryInterface (ptrdiff_t type)";   ps_si->nl ();
  *ps_si << "{";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "void *retv = 0;";   ps_si->nl ();
  *ps_si << "if (type == ACE_reinterpret_cast";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "(ptrdiff_t,";   ps_si->nl ();
  *ps_si << "&" << this->interface_name_ << "::_tao_class_id))";   ps_si->nl ();
  *ps_si << "retv = ACE_reinterpret_cast (void*, this);";
  ps_si->decr_indent (0);
  ps_si->nl ();

  *ps_si << "else if (type == ACE_reinterpret_cast "
         << "(ptrdiff_t, &CORBA::Object::_tao_class_id))";

  ps_si->incr_indent (0);
  ps_si->nl ();

  *ps_si << "retv = ACE_reinterpret_cast (void *,";
  ps_si->incr_indent (0);
  ps_si->nl ();
  *ps_si << "ACE_static_cast (CORBA::Object_ptr, this));";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -