CORBA::Boolean CORBA::ValueBase::_tao_write_repository_id (TAO_OutputCDR &strm, ACE_CString& id) { #ifdef TAO_HAS_VALUETYPE_OUT_INDIRECTION VERIFY_MAP (TAO_OutputCDR, repo_id_map, Repo_Id_Map); char* pos = 0; if (strm.get_repo_id_map ()->get()->find (id, pos) == 0) { if (!strm.write_long (TAO_OBV_GIOP_Flags::Indirection_tag)) { return false; } CORBA::Long offset= -strm.offset (pos); if (TAO_debug_level) { TAOLIB_DEBUG ((LM_DEBUG, ACE_TEXT ("TAO (%P|%t) - %N:%l ValueBase::_tao_write_repository_id, id %C indirection %d\n"), id.c_str(), offset)); } if (!strm.write_long (offset)) { return false; } } else { if (strm.align_write_ptr (ACE_CDR::LONG_SIZE) != 0) { throw CORBA::INTERNAL (); } if (strm.get_repo_id_map ()->get ()->bind (id, strm.current()->wr_ptr ()) != 0) { throw CORBA::INTERNAL (); } if (TAO_debug_level) { TAOLIB_DEBUG ((LM_DEBUG, ACE_TEXT ("TAO (%P|%t) - %N:%l ValueBase::_tao_write_repository_id, bound %C - %x\n"), id.c_str (), strm.current()->wr_ptr ())); } if (! strm.write_string (id.c_str ())) { return false; } } #else if (! strm.write_string (id.c_str ())) { return 0; } #endif return 1; }
void CORBA::SystemException::_tao_encode (TAO_OutputCDR &cdr) const { if (cdr.write_string (this->_rep_id ()) && cdr.write_ulong (this->minor ()) && cdr.write_ulong (this->completed ())) { return; } throw ::CORBA::MARSHAL (); }