#pragma once
-#include <libmemcached/csl/common.h>
-#include <libmemcached/csl/parser.h>
+#include "libmemcached/csl/common.h"
+#include "libmemcached/csl/parser.h"
class Context
{
public:
- Context(const char *option_string, size_t option_string_length, memcached_st *memc_arg,
+ Context(const char *option_string, size_t option_string_length, memcached_st *memc_,
memcached_return_t &rc_arg) :
previous_token(END),
scanner(NULL),
+ buf(option_string),
begin(NULL),
pos(0),
- memc(NULL),
+ length(option_string_length),
+ memc(memc_),
rc(rc_arg),
_is_server(false),
_end(false),
_has_hash(false)
{
_hostname[0]= 0;
- buf= option_string;
- length= option_string_length;
- memc= memc_arg;
init_scanner();
rc= MEMCACHED_SUCCESS;
memc->state.is_parsing= true;
+ memcached_string_create(memc,
+ &_string_buffer,
+ 1024);
}
bool end()
return _is_server;
}
- const char *set_hostname(const char *str, size_t size);
+ void hostname(const char*, size_t, server_t&);
+
+ bool string_buffer(const char*, size_t, memcached_string_t&);
const char *hostname() const
{
~Context()
{
+ memcached_string_free(&_string_buffer);
destroy_scanner();
memc->state.is_parsing= false;
}
bool _end;
char _hostname[NI_MAXHOST];
bool _has_hash;
+ memcached_string_st _string_buffer;
};