本文整理汇总了C++中reader::invalidate方法的典型用法代码示例。如果您正苦于以下问题:C++ reader::invalidate方法的具体用法?C++ reader::invalidate怎么用?C++ reader::invalidate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类reader
的用法示例。
在下文中一共展示了reader::invalidate方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: from_data
bool block_transactions::from_data(uint32_t version, reader& source)
{
reset();
block_hash_ = source.read_hash();
const auto count = source.read_size_little_endian();
// Guard against potential for arbitrary memory allocation.
if (count > max_block_size)
source.invalidate();
else
transactions_.resize(count);
// Order is required.
for (auto& tx: transactions_)
if (!tx.from_data(source, true))
break;
if (version < block_transactions::version_minimum)
source.invalidate();
if (!source)
reset();
return source;
}
示例2: from_data
bool send_compact::from_data(uint32_t version,
reader& source)
{
reset();
const auto mode = source.read_byte();
if (mode > 1)
source.invalidate();
high_bandwidth_mode_ = (mode == 1);
this->version_ = source.read_8_bytes_little_endian();
if (version < send_compact::version_minimum)
source.invalidate();
if (!source)
reset();
return source;
}
示例3: from_data
bool header::from_data(uint32_t version, reader& source)
{
if (!chain::header::from_data(source))
return false;
// The header message must trail a zero byte (yes, it's stoopid).
// bitcoin.org/en/developer-reference#headers
if (version != version::level::canonical && source.read_byte() != 0x00)
source.invalidate();
if (!source)
reset();
return source;
}
示例4: from_data
bool filter_clear::from_data(uint32_t version, reader& source)
{
reset();
// Initialize as valid from deserialization.
insufficient_version_ = false;
if (version < filter_clear::version_minimum)
source.invalidate();
if (!source)
reset();
return source;
}