📄 psdl_interface_visitor.cpp
字号:
ps_si->decr_indent (0);
ps_si->decr_indent (0);
ps_si->nl ();
ps_si->nl ();
*ps_si << "if (retv)";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "this->_add_ref ();";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "return retv;";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "}";
ps_si->nl ();
ps_si->nl ();
*ps_si << "const char* " << this->interface_name_
<< "::_interface_repository_id (void) const"; ps_si->nl ();
*ps_si << "{";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "return \"IDL:" << this->interface_name_ << ":1.0\";";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "}";
ps_si->nl ();
ps_si->nl ();
*ps_si << "static const CORBA::Long _oc_"
<< this->interface_name_ << "[] ="; ps_si->nl ();
*ps_si << "{"; ps_si->nl ();
*ps_si << "// typecode related information goes here";
ps_si->nl ();
*ps_si << "};";
ps_si->nl ();
ps_si->nl ();
*ps_si << "static CORBA::TypeCode _tc_TAO_tc_"
<< this->interface_name_ << " (";
ps_si->incr_indent (0);
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "CORBA::tk_objref,"; ps_si->nl ();
*ps_si << "sizeof (_oc_" << this->interface_name_ << "),"; ps_si->nl ();
*ps_si << "(char *) &_oc_" << this->interface_name_ << ","; ps_si->nl ();
*ps_si << "0,"; ps_si->nl ();
*ps_si << "sizeof (" << this->interface_name_ << ")";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << ");";
ps_si->decr_indent (0);
ps_si->nl ();
ps_si->nl ();
*ps_si << "::CORBA::TypeCode_ptr _tc_" << this->interface_name_ << " =";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "&_tc_TAO_tc_" << this->interface_name_ << ";";
ps_si->decr_indent (0);
ps_si->nl ();
ps_si->nl ();
*ps_si << "void operator<<= (";
ps_si->incr_indent (0);
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "CORBA::Any &_tao_any,"; ps_si->nl ();
*ps_si << this->interface_name_ << "_ptr _tao_elem";
ps_si->decr_indent (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 << "TAO_OutputCDR stream;";
ps_si->nl ();
ps_si->nl ();
*ps_si << "if (stream << _tao_elem)";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "{";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "_tao_any._tao_replace (";
ps_si->incr_indent (0);
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "_tc_" << this->interface_name_ << ", "; ps_si->nl ();
*ps_si << "TAO_ENCAP_BYTE_ORDER,"; ps_si->nl ();
*ps_si << "stream.begin (),"; ps_si->nl ();
*ps_si << "1,"; ps_si->nl ();
*ps_si << this->interface_name_ << "::_duplicate (_tao_elem),"; ps_si->nl ();
*ps_si << this->interface_name_ << "::_tao_any_destructor";
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->nl ();
*ps_si << "}";
ps_si->nl ();
ps_si->nl ();
*ps_si << "void operator<<= (";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "CORBA::Any &_tao_any,"; ps_si->nl ();
*ps_si << this->interface_name_ << "_ptr *_tao_elem";
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 << "TAO_OutputCDR stream;";
ps_si->nl ();
ps_si->nl ();
*ps_si << "if (stream << *_tao_elem)";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "{";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "_tao_any._tao_replace (";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "_tc_" << this->interface_name_ << ", "; ps_si->nl ();
*ps_si << "TAO_ENCAP_BYTE_ORDER,"; ps_si->nl ();
*ps_si << "stream.begin (),"; ps_si->nl ();
*ps_si << "1,"; ps_si->nl ();
*ps_si << "*_tao_elem,"; ps_si->nl ();
*ps_si << this->interface_name_ << "::_tao_any_destructor";
ps_si->decr_indent (0);
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->nl ();
ps_si->nl ();
*ps_si << "CORBA::Boolean operator>>= (";
ps_si->incr_indent (0);
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "const CORBA::Any &_tao_any,"; ps_si->nl ();
*ps_si << this->interface_name_ << "_ptr &_tao_elem";
ps_si->decr_indent (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_TRY_NEW_ENV"; ps_si->nl ();
*ps_si << "{";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "_tao_elem = " << this->interface_name_ << "::_nil ();";
ps_si->nl ();
*ps_si << "CORBA::TypeCode_var type = _tao_any.type ();";
ps_si->nl ();
ps_si->nl ();
*ps_si << "CORBA::Boolean result =";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "type->equivalent (";
ps_si->incr_indent (0);
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "_tc_" << this->interface_name_ << ""; ps_si->nl ();
*ps_si << "ACE_ENV_ARG_PARAMETER";
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 << "ACE_TRY_CHECK;";
ps_si->nl ();
ps_si->nl ();
*ps_si << "if (!result)";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "{";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "return 0; // not equivalent";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "}";
ps_si->decr_indent (0);
ps_si->nl ();
ps_si->nl ();
*ps_si << "TAO_InputCDR stream (";
ps_si->incr_indent (0);
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "_tao_any._tao_get_cdr (),";
ps_si->nl ();
*ps_si << "_tao_any._tao_byte_order ()";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << ");";
ps_si->decr_indent (0);
ps_si->nl ();
ps_si->nl ();
*ps_si << "if (stream >> _tao_elem)";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "{";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "((CORBA::Any *)&_tao_any)->_tao_replace (";
ps_si->incr_indent (0);
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "_tc_" << this->interface_name_ << ","; ps_si->nl ();
*ps_si << "1,"; ps_si->nl ();
*ps_si << "_tao_elem,"; ps_si->nl ();
*ps_si << this->interface_name_ << "::_tao_any_destructor";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << ");";
ps_si->decr_indent (0);
ps_si->nl ();
ps_si->nl ();
*ps_si << "return 1;";
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->nl ();
*ps_si << "ACE_CATCHANY";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "{"; ps_si->nl ();
*ps_si << "}";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "ACE_ENDTRY;";
ps_si->nl ();
ps_si->nl ();
*ps_si << "_tao_elem = " << this->interface_name_ << "::_nil ();";
ps_si->nl ();
*ps_si << "return 0;";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "}";
ps_si->nl ();
ps_si->nl ();
*ps_si << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\";
ps_si->incr_indent (0);
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "defined (ACE_HAS_GNU_REPO)";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "template class TAO_Object_Manager<"
<< this->interface_name_ << ","
<< this->interface_name_ << "_var>;";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)";
ps_si->nl ();
*ps_si << "# pragma instantiate TAO_Object_Manager<"
<< this->interface_name_ << "," << this->interface_name_
<< "_var>"; ps_si->nl ();
*ps_si << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */";
ps_si->nl ();
ps_si->nl ();
*ps_si << "CORBA::Boolean operator<< (";
ps_si->incr_indent (0);
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "TAO_OutputCDR &strm,"; ps_si->nl ();
*ps_si << "const " << this->interface_name_ << "_ptr _tao_objref";
ps_si->decr_indent (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 << "CORBA::Object_ptr _tao_corba_obj = _tao_objref;"; ps_si->nl ();
*ps_si << "return (strm << _tao_corba_obj);";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "}";
ps_si->nl ();
ps_si->nl ();
*ps_si << "CORBA::Boolean operator>> (";
ps_si->incr_indent (0);
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "TAO_InputCDR &strm,"; ps_si->nl ();
*ps_si << this->interface_name_ << "_ptr &_tao_objref";
ps_si->decr_indent (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_TRY_NEW_ENV"; ps_si->nl ();
*ps_si << "{";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "CORBA::Object_var obj;"; ps_si->nl ();
*ps_si << "if ((strm >> obj.inout ()) == 0)";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "return 0;";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "// narrow to the right type"; ps_si->nl ();
*ps_si << "_tao_objref =";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << this->interface_name_ << "::_unchecked_narrow (";
ps_si->incr_indent (0);
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "obj.in ()"; ps_si->nl ();
*ps_si << "ACE_ENV_ARG_PARAMETER";
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 << "ACE_TRY_CHECK;"; ps_si->nl ();
*ps_si << "return 1;";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "}";
ps_si->nl ();
*ps_si << "ACE_CATCHANY"; ps_si->nl ();
*ps_si << "{";
ps_si->incr_indent (0);
ps_si->nl ();
*ps_si << "// do nothing";
ps_si->decr_indent (0);ps_si->nl ();
*ps_si << "}";
ps_si->nl ();
*ps_si << "ACE_ENDTRY;"; ps_si->nl ();
*ps_si << "return 0;";
ps_si->decr_indent (0);
ps_si->nl ();
*ps_si << "}";
ps_si->nl ();
ps_si->nl ();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -