当前位置: 首页>>代码示例>>C++>>正文


C++ IReader::Read方法代码示例

本文整理汇总了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;
}
开发者ID:,项目名称:,代码行数:31,代码来源:

示例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);
		}
	}
开发者ID:zeusever,项目名称:lemon-lib,代码行数:32,代码来源:package.cpp


注:本文中的IReader::Read方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。