#pragma once
-#include <libmemcached/memcached.h>
+#include <libmemcached/common.h>
class Context
{
return _hostname;
}
+ void abort(const char *error)
+ {
+ if (rc == MEMCACHED_SUCCESS)
+ rc= MEMCACHED_PARSE_ERROR;
+
+ memcached_string_st *error_string= memcached_string_create(memc, NULL, 1024);
+ memcached_string_append(error_string, memcached_string_with_size("Error occured while parsing: "));
+ memcached_string_append(error_string, memcached_string_make_from_cstr(begin));
+ memcached_string_append(error_string, memcached_string_with_size(" ("));
+
+ if (rc == MEMCACHED_PARSE_ERROR and error)
+ {
+ memcached_string_append(error_string, memcached_string_make_from_cstr(error));
+ }
+ else
+ {
+ memcached_string_append(error_string, memcached_string_make_from_cstr(memcached_strerror(NULL, rc)));
+ }
+ memcached_string_append(error_string, memcached_string_with_size(")"));
+
+ memcached_set_error_string(memc, rc, memcached_string_value(error_string), memcached_string_length(error_string));
+
+ memcached_string_free(error_string);
+ }
+
~Context()
{
destroy_scanner();