本文整理汇总了C++中TAO_InputCDR::read_long方法的典型用法代码示例。如果您正苦于以下问题:C++ TAO_InputCDR::read_long方法的具体用法?C++ TAO_InputCDR::read_long怎么用?C++ TAO_InputCDR::read_long使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TAO_InputCDR
的用法示例。
在下文中一共展示了TAO_InputCDR::read_long方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
CORBA::Boolean
CORBA::ValueBase::_tao_read_repository_id_list (TAO_InputCDR& strm,
Repository_Id_List& ids)
{
CORBA::Long num_ids = 0;
if (!strm.read_long (num_ids))
{
return 0;
}
if (num_ids == TAO_OBV_GIOP_Flags::Indirection_tag)
{
// Multiple repo id is not indirected.
return 0;
}
else
{
for (CORBA::Long i = 0; i < num_ids; ++i)
{
ACE_CString id;
if (!_tao_read_repository_id (strm, id))
{
return 0;
}
ids.push_back (id);
}
}
return 1;
}
示例2: INTERNAL
CORBA::Boolean
CORBA::ValueBase::_tao_unmarshal_codebase_url_indirection (TAO_InputCDR &strm,
ACE_CString& codebase_url)
{
CORBA::Long offset = 0;
if (!strm.read_long (offset) || offset >= 0)
{
return false;
}
void* pos = strm.rd_ptr () + offset - sizeof (CORBA::Long);
if (strm.get_codebase_url_map()->get()->find (pos, codebase_url) != 0)
{
throw CORBA::INTERNAL ();
}
else if (TAO_debug_level)
{
TAOLIB_DEBUG ((LM_DEBUG,
ACE_TEXT ("TAO (%P|%t) - %N:%l ValueBase::_tao_unmarshal_codebase_url_indirection, found %x=%C\n"),
pos, codebase_url.c_str ()));
}
return 1;
}
示例3:
static int
test_read (TAO_InputCDR &cdr, int n)
{
CORBA::Long xl;
for (int i = 0; i < n; ++i)
{
if (cdr.read_long (xl) == 0)
ACE_ERROR_RETURN ((LM_ERROR,
"read_long[%d] failed\n",
i),
1);
}
return 0;
}
示例4: sizeof
CORBA::Boolean
CORBA::ValueBase::_tao_unmarshal_value_indirection_pre (TAO_InputCDR &strm,
TAO_InputCDR &indirected_strm)
{
CORBA::Long offset = 0;
if (!strm.read_long (offset) || offset >= 0)
{
return false;
}
size_t const buffer_size = -(offset) + sizeof (CORBA::Long);
// Cribbed from tc_demarshal_indirection in Typecode_CDR_Extraction.cpp
indirected_strm = TAO_InputCDR (strm.rd_ptr () + offset - sizeof (CORBA::Long),
buffer_size,
strm.byte_order ());
indirected_strm.set_repo_id_map (strm.get_repo_id_map ());
indirected_strm.set_codebase_url_map (strm.get_codebase_url_map ());
indirected_strm.set_value_map (strm.get_value_map ());
return indirected_strm.good_bit ();
}
示例5: if
CORBA::Boolean
TAO_ChunkInfo::skip_chunks (TAO_InputCDR &strm)
{
if (!this->chunking_)
{
return 1;
}
// This function is called after reading data of the truncated parent and
// skips the remaining chunks until the outmost endtag (-1).
// The tag read here is suppoused to be an endtag.
CORBA::Long tag;
if (!strm.read_long(tag))
{
return 0;
}
// end of the whole valuetype.
if (tag == -1)
{
return 1;
}
else if (tag < 0)
{
// continue skip the chunk.
return this->skip_chunks (strm);
}
else if (tag < TAO_OBV_GIOP_Flags::Value_tag_base)
{
// Read the chunk size and move forward to skip the data.
ACE_Message_Block* current =
const_cast<ACE_Message_Block*>(strm.start ());
current->rd_ptr (tag);
return this->skip_chunks (strm);
}
else
return 0;
}
示例6: _tao_unmarshal_value_indirection_pre
CORBA::Boolean
CORBA::ValueBase::_tao_validate_box_type (TAO_InputCDR &strm,
TAO_InputCDR &indirected_strm,
const char * const repo_id_expected,
CORBA::Boolean & null_object,
CORBA::Boolean & is_indirected)
{
CORBA::Long value_tag;
null_object = false;
is_indirected = false;
if (!strm.read_long (value_tag))
{
return false;
}
if (TAO_OBV_GIOP_Flags::is_null_ref (value_tag))
{ // ok, null reference unmarshaled
null_object = true;
return true;
}
if (TAO_OBV_GIOP_Flags::is_indirection_tag (value_tag))
{
is_indirected = true;
// box value is redirected.
return _tao_unmarshal_value_indirection_pre (strm, indirected_strm);
}
if (!TAO_OBV_GIOP_Flags::is_value_tag (value_tag))
{
TAOLIB_DEBUG ((LM_DEBUG,
ACE_TEXT ("TAO (%P|%t) - %N:%l CORBA::ValueBase::_tao_validate_box_type, ")
ACE_TEXT ("not value_tag\n")));
return false;
}
if (TAO_OBV_GIOP_Flags::has_codebase_url (value_tag))
{ // Demarshal the codebase url (but we won't be using it).
ACE_CString codebase_url;
if (! _tao_read_codebase_url (strm, codebase_url))
{
return false;
}
}
if (TAO_OBV_GIOP_Flags::has_no_type_info (value_tag))
{
// No type information so assume it is the correct type.
return true;
}
if (TAO_OBV_GIOP_Flags::has_single_type_info (value_tag))
{
// Demarshal the repository id and check if it is the expected one.
ACE_CString id;
if (! _tao_read_repository_id (strm, id))
{
return false;
}
if (!ACE_OS::strcmp (id.c_str(), repo_id_expected))
{ // Repository ids matched as expected
return true;
}
}
if (TAO_OBV_GIOP_Flags::has_list_type_info (value_tag))
{
// Don't know how to handle a repository id list. It does not
// make sense for a value box anyway.
return false;
}
return false;
}