C++: double underscores are reserved
[m6w6/libmemcached] / src / libmemcached / get.cc
index 93330f450b51a991d049bafa2f23319a73df69db..1afef22d6e1b495317028f1f70768e9f930fc96f 100644 (file)
 */
 
 #include "libmemcached/common.h"
+#include "p9y/random.hpp"
 
 char *memcached_get(memcached_st *ptr, const char *key, size_t key_length, size_t *value_length,
                     uint32_t *flags, memcached_return_t *error) {
   return memcached_get_by_key(ptr, NULL, 0, key, key_length, value_length, flags, error);
 }
 
-static memcached_return_t __mget_by_key_real(memcached_st *ptr, const char *group_key,
+static memcached_return_t mget_by_key_real(memcached_st *ptr, const char *group_key,
                                              size_t group_key_length, const char *const *keys,
                                              const size_t *key_length, size_t number_of_keys,
                                              const bool mget_mode);
@@ -39,8 +40,8 @@ char *memcached_get_by_key(memcached_st *shell, const char *group_key, size_t gr
   }
 
   /* Request the key */
-  *error = __mget_by_key_real(ptr, group_key, group_key_length, (const char *const *) &key,
-                              &key_length, 1, false);
+  *error = mget_by_key_real(ptr, group_key, group_key_length, (const char *const *) &key,
+                            &key_length, 1, false);
   if (ptr) {
     assert_msg(ptr->query_id == query_id + 1,
                "Programmer error, the query_id was not incremented.");
@@ -98,8 +99,12 @@ char *memcached_get_by_key(memcached_st *shell, const char *group_key, size_t gr
 
         if (rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED) {
           *error = rc;
-          *value_length = memcached_result_length(result_ptr);
-          *flags = memcached_result_flags(result_ptr);
+          if (value_length) {
+            *value_length = memcached_result_length(result_ptr);
+          }
+          if (flags) {
+            *flags = memcached_result_flags(result_ptr);
+          }
           char *result_value = memcached_string_take_value(&result_ptr->value);
           memcached_result_free(result_ptr);
 
@@ -128,8 +133,8 @@ static memcached_return_t binary_mget_by_key(memcached_st *ptr, const uint32_t m
                                              const size_t *key_length, const size_t number_of_keys,
                                              const bool mget_mode);
 
-static memcached_return_t __mget_by_key_real(memcached_st *ptr, const char *group_key,
-                                             const size_t group_key_length, const char *const *keys,
+static memcached_return_t mget_by_key_real(memcached_st *ptr, const char *group_key,
+                                           size_t group_key_length, const char *const *keys,
                                              const size_t *key_length, size_t number_of_keys,
                                              const bool mget_mode) {
   bool failures_occured_in_sending = false;
@@ -178,7 +183,7 @@ static memcached_return_t __mget_by_key_real(memcached_st *ptr, const char *grou
     if (instance->response_count()) {
       char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
 
-      if (ptr->flags.no_block) {
+      if (ptr->flags.no_block || ptr->flags.buffer_requests) {
         memcached_io_write(instance);
       }
 
@@ -292,8 +297,7 @@ memcached_return_t memcached_mget_by_key(memcached_st *shell, const char *group_
                                          size_t group_key_length, const char *const *keys,
                                          const size_t *key_length, size_t number_of_keys) {
   Memcached *ptr = memcached2Memcached(shell);
-  return __mget_by_key_real(ptr, group_key, group_key_length, keys, key_length, number_of_keys,
-                            true);
+  return mget_by_key_real(ptr, group_key, group_key_length, keys, key_length, number_of_keys, true);
 }
 
 memcached_return_t memcached_mget_execute(memcached_st *ptr, const char *const *keys,