本文整理汇总了C++中BString::reserve方法的典型用法代码示例。如果您正苦于以下问题:C++ BString::reserve方法的具体用法?C++ BString::reserve怎么用?C++ BString::reserve使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BString
的用法示例。
在下文中一共展示了BString::reserve方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
/** Turns a binary tag into a series of ID3_Frame objects attached to the
** tag.
**
** \code
** ID3_Tag myTag;
** uchar header[ID3_TAGHEADERSIZE];
** uchar *buffer;
** luint tagSize;
**
** // get ID3_TAGHEADERSIZE from a socket or somewhere
** // ...
**
** if ((tagSize = ID3_IsTagHeader(ourSourceBuffer)) > -1)
** {
** // read a further 'tagSize' bytes in
** // from our data source
** // ...
**
** if (buffer = new uchar[tagSize])
** {
** // now we will call ID3_Tag::Parse()
** // with these values (explained later)
** myTag.Parse(header, buffer);
**
** // do something with the objects,
** // like look for titles, artists, etc.
** // ...
**
** // free the buffer
** delete [] buffer;
** }
** }
** \endcode
**
** \sa ID3_Frame
** @param header The byte header read in from the data source.
** @param buffer The remainder of the tag (not including the data source)
** read in from the data source.
**/
size_t ID3_Tag::Parse(const uchar header[ID3_TAGHEADERSIZE], const uchar *buffer)
{
size_t size = ID3_Tag::IsV2Tag(header);
if (0 == size)
{
return 0;
}
BString buf;
buf.reserve(ID3_TagHeader::SIZE + size);
buf.append(reinterpret_cast<const BString::value_type *>(header),
ID3_TagHeader::SIZE);
buf.append(reinterpret_cast<const BString::value_type *>(buffer), size);
return this->Parse(buf.data(), buf.size());
}
示例2: readBinary
BString io::readBinary(ID3_Reader& reader, size_t len)
{
BString binary;
binary.reserve(len);
size_t remaining = len;
const size_t SIZE = 1024;
ID3_Reader::char_type buf[SIZE];
while (!reader.atEnd() && remaining > 0)
{
size_t numRead = reader.readChars(buf, min(remaining, SIZE));
remaining -= numRead;
binary.append(reinterpret_cast<BString::value_type *>(buf), numRead);
}
return binary;
}