本文整理汇总了C++中ifstream::setstate方法的典型用法代码示例。如果您正苦于以下问题:C++ ifstream::setstate方法的具体用法?C++ ifstream::setstate怎么用?C++ ifstream::setstate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ifstream
的用法示例。
在下文中一共展示了ifstream::setstate方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: init_from_stream
void ClusterImpl::init_from_stream(ifstream& in, offset_type offset)
{
log_trace("init_from_stream");
in.seekg(offset);
clear();
char c;
in.get(c);
setCompression(static_cast<CompressionType>(c));
switch (static_cast<CompressionType>(c))
{
case zimcompDefault:
case zimcompNone:
startOffset = read_header(in);
startOffset += sizeof(char) + offset;
set_lazy_read(&in);
break;
case zimcompZip:
{
#ifdef ENABLE_ZLIB
log_debug("uncompress data (zlib)");
zim::InflateStream is(in);
is.exceptions(std::ios::failbit | std::ios::badbit);
read_header(is);
read_content(is);
#else
throw std::runtime_error("zlib not enabled in this library");
#endif
break;
}
case zimcompBzip2:
{
#ifdef ENABLE_BZIP2
log_debug("uncompress data (bzip2)");
zim::Bunzip2Stream is(in);
is.exceptions(std::ios::failbit | std::ios::badbit);
read_header(is);
read_content(is);
#else
throw std::runtime_error("bzip2 not enabled in this library");
#endif
break;
}
case zimcompLzma:
{
#ifdef ENABLE_LZMA
log_debug("uncompress data (lzma)");
zim::UnlzmaStream is(in);
is.exceptions(std::ios::failbit | std::ios::badbit);
read_header(is);
read_content(is);
#else
throw std::runtime_error("lzma not enabled in this library");
#endif
break;
}
default:
log_error("invalid compression flag " << c);
in.setstate(std::ios::failbit);
break;
}
}
示例2: f_exit
void f_exit(ifstream& f) {
f.setstate(ios::badbit);
}