本文整理汇总了C++中boost::intrusive_ptr::encodedHeaderSize方法的典型用法代码示例。如果您正苦于以下问题:C++ intrusive_ptr::encodedHeaderSize方法的具体用法?C++ intrusive_ptr::encodedHeaderSize怎么用?C++ intrusive_ptr::encodedHeaderSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类boost::intrusive_ptr
的用法示例。
在下文中一共展示了intrusive_ptr::encodedHeaderSize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Exception
template <> void
BlobEncoder::encode(const boost::intrusive_ptr<qpid::broker::PersistableMessage> &item)
{
// NOTE! If this code changes, verify the recovery code in MessageRecordset
SAFEARRAYBOUND bound[1] = {0, 0};
bound[0].cElements = item->encodedSize() + sizeof(uint32_t);
blob = SafeArrayCreate(VT_UI1, 1, bound);
if (S_OK != SafeArrayLock(blob)) {
SafeArrayDestroy(blob);
blob = 0;
throw qpid::Exception("Error locking blob area for message");
}
try {
uint32_t headerSize = item->encodedHeaderSize();
qpid::framing::Buffer buff((char *)blob->pvData, bound[0].cElements);
buff.putLong(headerSize);
item->encode(buff);
}
catch(...) {
SafeArrayUnlock(blob);
SafeArrayDestroy(blob);
blob = 0;
throw;
}
this->vt = VT_ARRAY | VT_UI1;
this->parray = blob;
SafeArrayUnlock(blob);
}