本文整理汇总了C++中Consumer::on_nil方法的典型用法代码示例。如果您正苦于以下问题:C++ Consumer::on_nil方法的具体用法?C++ Consumer::on_nil怎么用?C++ Consumer::on_nil使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Consumer
的用法示例。
在下文中一共展示了Consumer::on_nil方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parse
InputIterator parse(InputIterator buffer_begin, InputIterator buffer_end,
Consumer& c)
{
if (buffer_begin == buffer_end) {
return buffer_end;
}
byte b = *buffer_begin++;
switch (b) {
case ':': {
auto r = btoi(buffer_begin, buffer_end);
return c.on_int(r.first, r.second);
}
case '+': {
return c.on_sstr(buffer_begin, buffer_end);
}
case '$': {
if (buffer_begin != buffer_end && *buffer_begin == '-') {
return c.on_nil(pass_nil(++buffer_begin, buffer_end));
}
auto r = btou(buffer_begin, buffer_end);
return c.on_str(r.first, r.second, buffer_end);
}
case '*': {
if (buffer_begin != buffer_end && *buffer_begin == '-') {
return c.on_nil(pass_nil(++buffer_begin, buffer_end));
}
auto r = btou(buffer_begin, buffer_end);
c.on_arr(r.first, r.second);
buffer_begin = r.second;
for (int i = 0; i < r.first && buffer_begin != buffer_end; ++i)
{
buffer_begin = parse(buffer_begin, buffer_end, c);
}
return buffer_begin;
}
case '-': {
return c.on_err(buffer_begin, buffer_end);
}
default:
throw BadRedisMessage(b);
}
}