本文整理汇总了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;
}
示例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;
}