X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fcsl%2Fcontext.h;h=97303c50bf09f463e4566391356a4ed30cf79bbd;hb=850df1fbab46a5a658c2fd0c35164ef1c60a22d9;hp=77fac219bdd79ed2ecca1fd634af9e76c5ca5935;hpb=92c077c9151360149e5a18a0adc222baa234ec80;p=awesomized%2Flibmemcached diff --git a/libmemcached/csl/context.h b/libmemcached/csl/context.h index 77fac219..97303c50 100644 --- a/libmemcached/csl/context.h +++ b/libmemcached/csl/context.h @@ -43,24 +43,28 @@ 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() @@ -93,7 +97,9 @@ public: 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 { @@ -105,7 +111,9 @@ public: ~Context() { + memcached_string_free(&_string_buffer); destroy_scanner(); + memc->state.is_parsing= false; } yytokentype previous_token; @@ -126,4 +134,5 @@ private: bool _end; char _hostname[NI_MAXHOST]; bool _has_hash; + memcached_string_st _string_buffer; };