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


C++ Sink::output_sequence方法代码示例

本文整理汇总了C++中Sink::output_sequence方法的典型用法代码示例。如果您正苦于以下问题:C++ Sink::output_sequence方法的具体用法?C++ Sink::output_sequence怎么用?C++ Sink::output_sequence使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Sink的用法示例。


在下文中一共展示了Sink::output_sequence方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: copy_impl

std::streamsize copy_impl( Source& src, Sink& snk, 
                           std::streamsize buffer_size,
                           mpl::false_, mpl::true_ )
{
    typedef typename char_type_of<Source>::type  char_type;
    typedef std::pair<char_type*, char_type*>    pair_type;
    detail::basic_buffer<char_type>  buf(buffer_size);
    pair_type                        p = snk.output_sequence();
    std::streamsize                  total = 0;
    std::ptrdiff_t                   capacity = p.second - p.first;
    while (true) {
        std::streamsize amt = 
            iostreams::read(
                src, 
                buf.data(),
                buffer_size < capacity - total ?
                    buffer_size :
                    static_cast<std::streamsize>(capacity - total)
            );
        if (amt == -1)
            break;
        std::copy(buf.data(), buf.data() + amt, p.first + total);
        total += amt;
    }
    return total;
}
开发者ID:8573,项目名称:anura,代码行数:26,代码来源:copy.hpp

示例2: copy_impl

std::streamsize copy_impl( Source& src, Sink& snk, 
                           std::streamsize buffer_size,
                           mpl::false_, mpl::true_ )
{   // Copy from an indirect Source to a direct Sink.
    using namespace std;
    typedef typename char_type_of<Source>::type  char_type;
    typedef pair<char_type*, char_type*>         pair_type;
    detail::basic_buffer<char_type>  buf(buffer_size);
    pair_type                        p = snk.output_sequence();
    streamsize                       total = 0;
    bool                             done  = false;
    while (!done) {
        streamsize amt;
        done = (amt = iostreams::read(src, buf.data(), buffer_size)) == -1;
        std::copy(buf.data(), buf.data() + amt, p.first + total);
        if (amt != -1)
            total += amt;
    }
    return total;
}
开发者ID:4eek,项目名称:xtractorfan,代码行数:20,代码来源:copy.hpp


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