WIP
[awesomized/libmemcached] / example / interface_v0.cc
index cc2f17d274fb9a71df32c87017912173bc51db9d..cf6001243b1cc6b08fabe642170a6e12402d2f85 100644 (file)
@@ -5,21 +5,29 @@
  * specification next to your coffee ;-)
  */
 
-#include "config.h"
+#include "mem_config.h"
 
-#include <assert.h>
+#include <cassert>
 #include <sys/types.h>
-#include <stdio.h>
-#include <unistd.h>
+#include <cstdio>
+#if HAVE_UNISTD_H
+#  include <unistd.h>
+#endif
 #include <fcntl.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
+#include <cerrno>
+#include <cstdlib>
+#include <cstring>
 
 #include <libmemcachedprotocol-0.0/handler.h>
 #include <example/byteorder.h>
 #include "example/memcached_light.h"
 #include "example/storage.h"
+#include "util/log.hpp"
+
+
+using namespace datadifferential;
+
+static util::log_info_st *log_file= NULL;
 
 static protocol_binary_response_status noop_command_handler(const void *cookie,
                                                             protocol_binary_request_header *header,
@@ -121,18 +129,22 @@ static protocol_binary_response_status delete_command_handler(const void *cookie
   response.message.header.response.opcode= header->request.opcode;
   response.message.header.response.opaque= header->request.opaque;
 
-  if (!delete_item(key, keylen))
+  if (delete_item(key, keylen) == false)
   {
+    log_file->write(util::VERBOSE_NOTICE, "%s not found: %.*s", __func__, keylen, key);
     response.message.header.response.status= htons(PROTOCOL_BINARY_RESPONSE_KEY_ENOENT);
     return response_handler(cookie, header, (protocol_binary_response_header*)&response);
   }
   else if (header->request.opcode == PROTOCOL_BINARY_CMD_DELETE)
   {
+    log_file->write(util::VERBOSE_NOTICE, "%s not found: %.*s", __func__, keylen, key);
     /* DELETEQ doesn't want success response */
     response.message.header.response.status= htons(PROTOCOL_BINARY_RESPONSE_SUCCESS);
     return response_handler(cookie, header, (protocol_binary_response_header*)&response);
   }
 
+  log_file->write(util::VERBOSE_NOTICE, "%s deleted: %.*s", __func__, keylen, key);
+
   return PROTOCOL_BINARY_RESPONSE_SUCCESS;
 }
 
@@ -516,8 +528,10 @@ static protocol_binary_response_status stat_command_handler(const void *cookie,
 
 memcached_binary_protocol_callback_st interface_v0_impl;
 
-void initialize_interface_v0_handler(void)
+void initialize_interface_v0_handler(util::log_info_st& arg)
 {
+  log_file= &arg;
+
   interface_v0_impl.interface_version= MEMCACHED_PROTOCOL_HANDLER_V0;
   interface_v0_impl.interface.v0.comcode[PROTOCOL_BINARY_CMD_GET]= get_command_handler;
   interface_v0_impl.interface.v0.comcode[PROTOCOL_BINARY_CMD_SET]= set_command_handler;