本文整理汇总了C++中IReader::Read方法的典型用法代码示例。如果您正苦于以下问题:C++ IReader::Read方法的具体用法?C++ IReader::Read怎么用?C++ IReader::Read使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IReader
的用法示例。
在下文中一共展示了IReader::Read方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReadBuffer
/* static */
CNetCacheAPI::EReadResult SNetCacheAPIImpl::ReadBuffer(
IReader& reader,
char* buf_ptr,
size_t buf_size,
size_t* n_read,
size_t blob_size)
{
size_t bytes_read;
size_t total_bytes_read = 0;
while (buf_size > 0) {
ERW_Result rw_res = reader.Read(buf_ptr, buf_size, &bytes_read);
if (rw_res == eRW_Success) {
total_bytes_read += bytes_read;
buf_ptr += bytes_read;
buf_size -= bytes_read;
} else if (rw_res == eRW_Eof) {
break;
} else {
NCBI_THROW(CNetServiceException, eCommunicationError,
"Error while reading BLOB");
}
}
if (n_read != NULL)
*n_read = total_bytes_read;
return total_bytes_read == blob_size ?
CNetCacheAPI::eReadComplete : CNetCacheAPI::eReadPart;
}
示例2: Read
void Package::Read(IReader & reader)
{
reader.Read((byte_t*)&_uuid,sizeof(_uuid));
reader.Read((byte_t*)&_version.Major,sizeof(lemon::uint16_t));
reader.Read((byte_t*)&_version.Minor,sizeof(lemon::uint16_t));
reader.Read((byte_t*)&_version.Build,sizeof(lemon::uint16_t));
reader.Read((byte_t*)&_version.Reversion,sizeof(lemon::uint16_t));
_version.Major = ntohs(_version.Major);
_version.Minor = ntohs(_version.Minor);
_version.Build = ntohs(_version.Build);
_version.Reversion = ntohs(_version.Reversion);
lemon::uint8_t tables;
reader.Read(&tables,sizeof(tables));
for(size_t i = 0; i < tables; ++ i)
{
char locale[6] = {0};
reader.Read((byte_t*)locale,5);
ResourceTable & table =_resourceTables[lemon::from_utf8(locale)];
table.Read(reader);
}
}