本文整理汇总了C++中buffer::count方法的典型用法代码示例。如果您正苦于以下问题:C++ buffer::count方法的具体用法?C++ buffer::count怎么用?C++ buffer::count使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类buffer
的用法示例。
在下文中一共展示了buffer::count方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: encode
int html_encoder::encode(const char* string, size_t len, buffer& buf)
{
const char* src = string;
const char* end = string + len;
// Compute bytes needed.
size_t needed = 0;
while (src < end) {
unsigned char c = (unsigned char) *src++;
if ((c == '<') || (c == '>')) {
needed += 4;
} else if ((c == '&') || (c == '\'')) {
needed += 5;
} else if (c == '"') {
needed += 6;
} else {
needed++;
}
}
if (!buf.allocate(needed)) {
return -1;
}
char* dst = buf.data() + buf.count();
// Encode.
while (string < end) {
unsigned char c = (unsigned char) *string++;
if (c == '<') {
*dst++ = '&';
*dst++ = 'l';
*dst++ = 't';
*dst++ = ';';
} else if (c == '>') {
*dst++ = '&';
*dst++ = 'g';
*dst++ = 't';
*dst++ = ';';
} else if (c == '&') {
*dst++ = '&';
*dst++ = 'a';
*dst++ = 'm';
*dst++ = 'p';
*dst++ = ';';
} else if (c == '"') {
*dst++ = '&';
*dst++ = 'q';
*dst++ = 'u';
*dst++ = 'o';
*dst++ = 't';
*dst++ = ';';
} else if (c == '\'') {
*dst++ = '&';
*dst++ = '#';
*dst++ = '3';
*dst++ = '9';
*dst++ = ';';
} else {
*dst++ = c;
}
}
buf.increment_count(needed);
return needed;
}