+ rc= MEMCACHED_SUCCESS;
+ }
+
+ bool end()
+ {
+ return _end;
+ }
+
+ void start();
+
+ void set_end()
+ {
+ rc= MEMCACHED_SUCCESS;
+ _end= true;
+ }
+
+ void set_server()
+ {
+ _is_server= true;
+ }
+
+ void unset_server()
+ {
+ _is_server= false;
+ }
+
+ bool is_server()
+ {
+ return _is_server;
+ }
+
+ const char *set_hostname(const char *str, size_t size)
+ {
+ size_t copy_length= (size_t)NI_MAXHOST > size ? size : (size_t)NI_MAXHOST;
+ memcpy(_hostname, str, copy_length);
+ _hostname[copy_length]= 0;
+
+ return _hostname;
+ }
+
+ const char *hostname()
+ {
+ 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_literal_param("Error occured while parsing: "));
+ memcached_string_append(error_string, memcached_string_make_from_cstr(begin));
+ memcached_string_append(error_string, memcached_literal_param(" ("));
+
+ 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_literal_param(")"));
+
+ memcached_set_error(*memc, rc, MEMCACHED_AT, memcached_string_value(error_string), memcached_string_length(error_string));
+
+ memcached_string_free(error_string);