diff options
author | Brian Aker <brian@tangent.org> | 2011-12-26 20:32:16 -0800 |
---|---|---|
committer | Brian Aker <brian@tangent.org> | 2011-12-26 20:32:16 -0800 |
commit | 06d0eaed5e274bc0ba93a3a61788a4bab480adf2 (patch) | |
tree | 1ac118de603ee0a59962864a7132274896bc2d13 /libmemcached/response.cc | |
parent | 5324b449dff573050ce809dc2843acfc01ec233b (diff) | |
download | libmemcached-06d0eaed5e274bc0ba93a3a61788a4bab480adf2.tar.gz |
Have incr/decr use the number the parser for asci finds.
Diffstat (limited to 'libmemcached/response.cc')
-rw-r--r-- | libmemcached/response.cc | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/libmemcached/response.cc b/libmemcached/response.cc index d88ccfbf..35a9f74d 100644 --- a/libmemcached/response.cc +++ b/libmemcached/response.cc @@ -187,8 +187,10 @@ read_error: static memcached_return_t textual_read_one_response(memcached_server_write_instance_st ptr, char *buffer, size_t buffer_length, - memcached_result_st *result) + memcached_result_st *result, + uint64_t& numeric_value) { + numeric_value= UINT64_MAX; size_t total_read; memcached_return_t rc= memcached_io_readline(ptr, buffer, buffer_length, total_read); @@ -350,6 +352,8 @@ static memcached_return_t textual_read_one_response(memcached_server_write_insta return MEMCACHED_UNKNOWN_READ_FAILURE; } + numeric_value= uint64_t(auto_return_value); + WATCHPOINT_STRING(buffer); return MEMCACHED_SUCCESS; } @@ -646,6 +650,16 @@ memcached_return_t memcached_read_one_response(memcached_server_write_instance_s char *buffer, size_t buffer_length, memcached_result_st *result) { + uint64_t numeric_value; + + return memcached_read_one_response(ptr, buffer, buffer_length, result, numeric_value); +} + +memcached_return_t memcached_read_one_response(memcached_server_write_instance_st ptr, + char *buffer, size_t buffer_length, + memcached_result_st *result, + uint64_t& numeric_value) +{ memcached_server_response_decrement(ptr); if (result == NULL) @@ -661,7 +675,7 @@ memcached_return_t memcached_read_one_response(memcached_server_write_instance_s } else { - rc= textual_read_one_response(ptr, buffer, buffer_length, result); + rc= textual_read_one_response(ptr, buffer, buffer_length, result, numeric_value); } if (rc == MEMCACHED_UNKNOWN_READ_FAILURE or @@ -680,6 +694,16 @@ memcached_return_t memcached_response(memcached_server_write_instance_st ptr, char *buffer, size_t buffer_length, memcached_result_st *result) { + uint64_t numeric_value; + + return memcached_response(ptr, buffer, buffer_length, result, numeric_value); +} + +memcached_return_t memcached_response(memcached_server_write_instance_st ptr, + char *buffer, size_t buffer_length, + memcached_result_st *result, + uint64_t& numeric_value) +{ /* We may have old commands in the buffer not set, first purge */ if ((ptr->root->flags.no_block) && (memcached_is_processing_input(ptr->root) == false)) { @@ -695,7 +719,7 @@ memcached_return_t memcached_response(memcached_server_write_instance_st ptr, { while (memcached_server_response_count(ptr) > 1) { - memcached_return_t rc= memcached_read_one_response(ptr, buffer, buffer_length, result); + memcached_return_t rc= memcached_read_one_response(ptr, buffer, buffer_length, result, numeric_value); if (rc != MEMCACHED_END && rc != MEMCACHED_STORED && @@ -711,5 +735,5 @@ memcached_return_t memcached_response(memcached_server_write_instance_st ptr, } } - return memcached_read_one_response(ptr, buffer, buffer_length, result); + return memcached_read_one_response(ptr, buffer, buffer_length, result, numeric_value); } |