X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=docs%2Fmemcached_get.pod;h=5faa2db9767107fb014917476ffcec3594f32506;hb=e16d058ca2e62ff93fca263c54a039eddb9dc080;hp=111a3b614d381234ea0527aefb4da701d7222433;hpb=b01ff6189633c1bf86f94065d2564810e6871869;p=awesomized%2Flibmemcached diff --git a/docs/memcached_get.pod b/docs/memcached_get.pod old mode 100755 new mode 100644 index 111a3b61..5faa2db9 --- a/docs/memcached_get.pod +++ b/docs/memcached_get.pod @@ -1,6 +1,7 @@ =head1 NAME -memcached_get, memcached_mget, memcached_fetch +memcached_get, memcached_mget, memcached_fetch, memcached_mget_execute, +memcached_mget_execute_by_key - Get a value =head1 LIBRARY @@ -11,49 +12,82 @@ C Client Library for memcached (libmemcached, -lmemcached) #include memcached_result_st * - memcached_fetch_result(memcached_st *ptr, - memcached_result_st *result, - memcached_return *error); - - char *memcached_get (memcached_st *ptr, - char *key, size_t key_length, - size_t *value_length, - uint16_t *flags, - memcached_return *error); - - memcached_return - memcached_mget (memcached_st *ptr, - char **keys, size_t *key_length, - unsigned int number_of_keys); + memcached_fetch_result (memcached_st *ptr, + memcached_result_st *result, + memcached_return_t *error); + + char * + memcached_get (memcached_st *ptr, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + + memcached_return_t + memcached_mget (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); char * - memcached_get_by_key(memcached_st *ptr, - char *master_key, size_t master_key_length, - char *key, size_t key_length, - size_t *value_length, - uint16_t *flags, - memcached_return *error); - - memcached_return - memcached_mget_by_key(memcached_st *ptr, - char *master_key, size_t master_key_length, - char **keys, size_t *key_length, - unsigned int number_of_keys); - - char *memcached_fetch (memcached_st *ptr, - char *key, size_t *key_length, - size_t *value_length, - uint16_t *flags, - memcached_return *error); + memcached_get_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + + memcached_return_t + memcached_mget_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys); + + char * + memcached_fetch (memcached_st *ptr, + char *key, size_t *key_length, + size_t *value_length, + uint32_t *flags, + memcached_return_t *error); + + memcached_return_t + memcached_fetch_execute (memcached_st *ptr, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + + + memcached_return_t + memcached_mget_execute (memcached_st *ptr, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + + memcached_return_t + memcached_mget_execute_by_key (memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char * const *keys, + const size_t *key_length, + size_t number_of_keys, + memcached_execute_fn *callback, + void *context, + uint32_t number_of_callbacks); + =head1 DESCRIPTION memcached_get() is used to fetch an individual value from the server. You must pass in a key and its length to fetch the object. You must supply three pointer variables which will give you the state of the returned -object. A uint16_t pointer to contain whatever flags you stored with the value, +object. A uint32_t pointer to contain whatever flags you stored with the value, a size_t pointer which will be filled with size of of the object, and a -memcached_return pointer to hold any error. The object will be returned -upon success and NULL will be returned on failure. +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. Any object returned by +memcached_get() must be released by the caller application. memcached_mget() is used to select multiple keys at once. For multiple key operations it is always faster to use this function. This function always @@ -65,36 +99,71 @@ return NULL (aka no more values). If you need to quit in the middle of a memcached_get() call, execute a memcached_quit(). After you do this, you can issue new queries against the server. -memcached_fetch() is used to fetch an individual value from the server. +memcached_fetch() is used to fetch an individual value from the server. memcached_mget() must always be called before using this method. You must pass in a key and its length to fetch the object. You must supply three pointer variables which will give you the state of the returned -object. A uint16_t pointer to contain whatever flags you stored with the value, +object. A uint32_t pointer to contain whatever flags you stored with the value, a size_t pointer which will be filled with size of of the object, and a -memcached_return pointer to hold any error. The object will be returned -upon success and NULL will be returned on failure. - -memcached_fetch_result() is used to return a memcached_result_st(3) structure +memcached_return_t pointer to hold any error. The object will be returned +upon success and NULL will be returned on failure. MEMCACHD_END is returned +by the *error value when all objects that have been found are returned. +The final value upon MEMCACHED_END is null. Values returned by +memcached_fetch() musted be free'ed by the caller. memcached_fetch() will +be DEPRECATED in the near future, memcached_fetch_result() should be used +instead. + +memcached_fetch_result() is used to return a memcached_result_st(3) structure from a memcached server. The result object is forward compatible with changes -to the server. For more information please refer to the memcached_result_st(3) +to the server. For more information please refer to the memcached_result_st(3) help. This function will dynamically allocate a result structure for you if you do not pass one to the function. +memcached_fetch_execute() is a callback function for result sets. Instead +of returning the results to you for processing, it passes each of the +result sets to the list of functions you provide. It passes to the function +a memcached_st that can be cloned for use in the called function (it can not +be used directly). It also passes a result set which does not need to be freed. +Finally it passes a "context". This is just a pointer to a memory reference +you supply the calling function. Currently only one value is being passed +to each function call. In the future there will be an option to allow this +to be an array. + +memcached_mget_execute() and memcached_mget_execute_by_key() is +similar to memcached_mget(), but it may trigger the supplied callbacks +with result sets while sending out the queries. If you try to perform +a really large multiget with memcached_mget() you may encounter a +deadlock in the OS kernel (we fail to write data to the socket because +the input buffer is full). memcached_mget_execute() solves this +problem by processing some of the results before continuing sending +out requests. Please note that this function is only available in the +binary protocol. + memcached_get_by_key() and memcached_mget_by_key() behave in a similar nature as memcached_get() and memcached_mget(). The difference is that they take a master key that is used for determining which server an object was stored if key partitioning was used for storage. +All of the above functions are not supported when the C +has been set. Executing any of these functions with this behavior on will result in +C being returned or, for those functions which do not return +a C, the error function parameter will be set to +C. + =head1 RETURN All objects returned must be freed by the calling application. memcached_get() and memcached_fetch() will return NULL on error. You must look at the value of error to determine what the actual error was. +MEMCACHED_KEY_TOO_BIG is set to error whenever memcached_fetch() was used +and the key was set larger then MEMCACHED_MAX_KEY, which was the largest +key allowed for the original memcached ascii server. + =head1 HOME To find out more information please check: -L +L =head1 AUTHOR