Protocol interface should be an enum and not a uint64_t for type safety
authorTrond Norbye <tn202803@tor01>
Fri, 6 Nov 2009 08:38:54 +0000 (09:38 +0100)
committerTrond Norbye <tn202803@tor01>
Fri, 6 Nov 2009 08:38:54 +0000 (09:38 +0100)
example/interface_v0.c
example/interface_v1.c
libmemcached/protocol/callback.h

index 596313305fb5f055ea14706f3e4be393e47a4b79..57459208dc8205f96b13c39aac1e06d46359b73a 100644 (file)
@@ -521,10 +521,10 @@ static protocol_binary_response_status stat_command_handler(const void *cookie,
 }
 
 memcached_binary_protocol_callback_st interface_v0_impl= {
-  .interface_version= 0,
+  .interface_version= MEMCACHED_PROTOCOL_HANDLER_V0,
 #ifdef FUTURE
   /*
-  ** There is a number of bugs in the extra options for gcc causing 
+  ** There is a number of bugs in the extra options for gcc causing
   ** warning on these struct initializers. It hurts my heart to remove
   ** it so I'll just leave it in here so that we can enable it when
   ** we can drop support for the broken compilers
index 3de38542100412ce9f49a26a5858bc38841ced7c..f52abfa2c8dc0b5e3d5b23b9624c65da864bcaba 100644 (file)
@@ -393,7 +393,7 @@ static protocol_binary_response_status version_handler(const void *cookie,
 }
 
 memcached_binary_protocol_callback_st interface_v1_impl= {
-  .interface_version= 1,
+  .interface_version= MEMCACHED_PROTOCOL_HANDLER_V1,
   .interface.v1= {
     .add= add_handler,
     .append= append_handler,
index 826a317da4f0ecbc33710328c030b41e56ac0637..e7efaad7ca47871f43beb4f843724ec8feff7234 100644 (file)
@@ -338,15 +338,28 @@ typedef struct {
                                               memcached_binary_protocol_version_response_handler response_handler);
 } memcached_binary_protocol_callback_v1_st;
 
+
 /**
- *
+ * The version numbers for the different callback structures.
+ */
+typedef enum {
+   /** Version 0 is a lowlevel interface that tries to maximize your freedom */
+   MEMCACHED_PROTOCOL_HANDLER_V0= 0,
+   /**
+    * Version 1 abstracts more of the protocol details, and let you work at
+    * a logical level
+    */
+   MEMCACHED_PROTOCOL_HANDLER_V1= 1,
+} memcached_protocol_interface_version_t;
+
+/**
+ * Definition of the protocol callback structure.
  */
 typedef struct {
    /**
-    * The interface version used (set to 0 if you don't have any specialized
-    * command handlers).
+    * The interface version you provide callbacks for.
     */
-   uint64_t interface_version;
+   memcached_protocol_interface_version_t interface_version;
 
    /**
     * Callback fired just before the command will be executed.