Merging bzr://gaz.tangent.org/libmemcached/build/ to Build branch
[m6w6/libmemcached] / docs / man / memcached_cas.3
index 7eaed3931a120f443a3fbda285b0e6c3063e3a7f..f88672277a2a93c63aa37812e91e3d44dd1cd301 100644 (file)
@@ -1,6 +1,6 @@
-.TH "MEMCACHED_CAS" "3" "April 13, 2011" "0.47" "libmemcached"
+.TH "MEMCACHED_CAS" "3" "April 19, 2012" "1.0.6" "libmemcached"
 .SH NAME
-memcached_cas \- Storing and Replacing Data
+memcached_cas \- Working with data on the server in an atomic fashion
 .
 .nr rst2man-indent-level 0
 .
@@ -30,132 +30,58 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
 ..
 .\" Man page generated from reStructeredText.
 .
-.sp
-Store value on server
 .SH SYNOPSIS
 .sp
 #include <libmemcached/memcached.h>
 .INDENT 0.0
 .TP
-.B memcached_return_t memcached_set (memcached_st *ptr, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags);
-.UNINDENT
-.INDENT 0.0
-.TP
-.B memcached_return_t memcached_add (memcached_st *ptr, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags);
+.B memcached_return_t memcached_cas(memcached_st\fI\ *ptr\fP, const char\fI\ *key\fP, size_t\fI\ key_length\fP, const char\fI\ *value\fP, size_t\fI\ value_length\fP, time_t\fI\ expiration\fP, uint32_t\fI\ flags\fP, uint64_t\fI\ cas\fP)
 .UNINDENT
 .INDENT 0.0
 .TP
-.B memcached_return_t memcached_replace (memcached_st *ptr, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags);
-.UNINDENT
-.INDENT 0.0
-.TP
-.B memcached_return_t memcached_prepend(memcached_st\fI\ *ptr\fP, const char\fI\ *key\fP, size_t\fI\ key_length\fP, const char\fI\ *value\fP, size_t\fI\ value_length\fP, time_t\fI\ expiration\fP, uint32_t\fI\ flags\fP)
-.UNINDENT
-.INDENT 0.0
-.TP
-.B memcached_return_t memcached_append(memcached_st\fI\ *ptr\fP, const char\fI\ *key\fP, size_t\fI\ key_length\fP, const char\fI\ *value\fP, size_t\fI\ value_length\fP, time_t\fI\ expiration\fP, uint32_t\fI\ flags\fP)
-.UNINDENT
-.INDENT 0.0
-.TP
-.B memcached_return_t memcached_cas(memcached_st *ptr, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags, uint64_t cas);
-.UNINDENT
-.INDENT 0.0
-.TP
-.B memcached_return_t memcached_set_by_key(memcached_st *ptr, const char *group_key, size_t group_key_length, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags);
-.UNINDENT
-.INDENT 0.0
-.TP
-.B memcached_return_t memcached_add_by_key(memcached_st *ptr, const char *group_key, size_t group_key_length, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags);
-.UNINDENT
-.INDENT 0.0
-.TP
-.B memcached_return_t memcached_replace_by_key(memcached_st *ptr, const char *group_key, size_t group_key_length, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags);
-.UNINDENT
-.INDENT 0.0
-.TP
-.B memcached_return_t memcached_prepend_by_key(memcached_st *ptr, const char *group_key, size_t group_key_length, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags);
-.UNINDENT
-.INDENT 0.0
-.TP
-.B memcached_return_t memcached_append_by_key(memcached_st *ptr, const char *group_key, size_t group_key_length, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags);
-.UNINDENT
-.INDENT 0.0
-.TP
-.B memcached_return_t memcached_cas_by_key(memcached_st *ptr, const char *group_key, size_t group_key_length, const char *key, size_t key_length, const char *value, size_t value_length, time_t expiration, uint32_t flags, uint64_t cas);
+.B memcached_return_t memcached_cas_by_key(memcached_st\fI\ *ptr\fP, const char\fI\ *group_key\fP, size_t\fI\ group_key_length\fP, const char\fI\ *key\fP, size_t\fI\ key_length\fP, const char\fI\ *value\fP, size_t\fI\ value_length\fP, time_t\fI\ expiration\fP, uint32_t\fI\ flags\fP, uint64_t\fI\ cas\fP)
 .UNINDENT
 .sp
 Compile and link with \-lmemcached
 .SH DESCRIPTION
 .sp
-memcached_set(), memcached_add(), and memcached_replace() are all used to
-store information on the server. All methods take a key, and its length to
-store the object. Keys are currently limited to 250 characters by the
-memcached(1) server. You must also supply a value and a length. Optionally you
-may tests an expiration time for the object and a 16 byte value (it is
-meant to be used as a bitmap).
-.sp
-memcached_set() will write an object to the server. If an object already
-exists it will overwrite what is in the server. If the object does not exist
-it will be written. If you are using the non\-blocking mode this function
-will always return true unless a network error occurs.
-.sp
-memcached_replace() replaces an object on the server. If the object is not
-found on the server an error occurs.
-.sp
-memcached_add() adds an object to the server. If the object is found on the
-server an error occurs, otherwise the value is stored.
-.sp
-memcached_prepend() places a segment of data before the last piece of data
-stored. Currently expiration and key are not used in the server.
-.sp
-memcached_append() places a segment of data at the end of the last piece of
-data stored. Currently expiration and key are not used in the server.
-.sp
-memcached_cas() overwrites data in the server as long as the "cas" value is
-still the same in the server. You can get the cas value of a result by
-calling memcached_result_cas() on a memcached_result_st(3) structure. At the point
-that this note was written cas is still buggy in memached. Turning on tests
-for it in libmemcached(3) is optional. Please see memcached_set() for
-information on how to do this.
-.sp
-memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(),
-memcached_prepend_by_key(), memcached_append_by_key_by_key(),
-memcached_cas_by_key() methods all behave in a similar method as the non key
-methods. The difference is that they use their group_key parameter to map
-objects to particular servers.
-.sp
-If you are looking for performance, memcached_set() with non\-blocking IO is
-the fastest way to store data on the server.
-.sp
-All of the above functions are testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fPbehavior enabled. But when using these operations with this behavior on, there
-are limits to the size of the payload being sent to the server.  The reason for
-these limits is that the Memcahed Server does not allow multi\-datagram requests
-and the current server implementation sets a datagram size to 1400 bytes. Due
-to protocol overhead, the actual limit of the user supplied data is less than
-1400 bytes and depends on the protocol in use as well as the operation being
-executed. When running with the binary protocol, \(ga\(ga MEMCACHED_BEHAVIOR_BINARY_PROTOCOL\(ga\(ga,
-the size of the key,value, flags and expiry combined may not exceed 1368 bytes.
-When running with the ASCII protocol, the exact limit fluctuates depending on
-which function is being executed and whether the function is a cas operation
-or not. For non\-cas ASCII set operations, there are at least 1335 bytes available
-to split among the key, key_prefix, and value; for cas ASCII operations there are
-at least 1318 bytes available to split among the key, key_prefix and value. If the
-total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fPwill be returned.
+\fI\%memcached_cas()\fP overwrites data in the server as long as the "cas"
+value is still the same in the server. You can get the cas value of a result
+by calling \fBmemcached_result_cas()\fP on a memcached_result_st(3)
+structure. At the point that this note was written cas is still buggy in memached. Turning on tests for it in libmemcached(3) is optional. Please see
+\fBmemcached_set()\fP for information on how to do this.
+.sp
+\fI\%memcached_cas_by_key()\fP method behaves in a similar method as the non
+key methods. The difference is that it uses the group_key parameter
+to map objects to particular servers.
+.sp
+\fI\%memcached_cas()\fP is testsed with the \fBMEMCACHED_BEHAVIOR_USE_UDP\fP behavior enabled. However, when using these operations with this behavior
+on, there are limits to the size of the payload being sent to the server.  The
+reason for these limits is that the Memcached Server does not allow
+multi\-datagram requests and the current server implementation sets a datagram
+size to 1400 bytes. Due to protocol overhead, the actual limit of the user
+supplied data is less than 1400 bytes and depends on the protocol in use as,
+well as the operation being executed. When running with the binary protocol,
+\fBMEMCACHED_BEHAVIOR_BINARY_PROTOCOL\fP, the size of the key,value,
+flags and expiry combined may not exceed 1368 bytes. When running with the
+ASCII protocol, the exact limit fluctuates depending on which function is
+being executed and whether the function is a cas operation or not. For
+non\-cas ASCII set operations, there are at least 1335 bytes available to
+split among the key, key_prefix, and value; for cas ASCII operations there
+are at least 1318 bytes available to split among the key, key_prefix and value. If the total size of the command, including overhead, exceeds 1400 bytes, a \fBMEMCACHED_WRITE_FAILURE\fP will be returned.
 .SH RETURN
 .sp
 All methods return a value of type \fBmemcached_return_t\fP.
 On success the value will be \fBMEMCACHED_SUCCESS\fP.
-Use memcached_strerror() to translate this value to a printable string.
-.sp
-For memcached_replace() and memcached_add(), \fBMEMCACHED_NOTSTORED\fP is a
-legitmate error in the case of a collision.
+Use \fBmemcached_strerror()\fP to translate this value to a printable
+string.
 .SH HOME
 .sp
 To find out more information please check:
-\fI\%https://launchpad.net/libmemcached\fP
+\fI\%http://libmemcached.org/\fP
 .SH SEE ALSO
 .sp
-memcached(1) libmemached(3) memcached_strerror(3)
+\fImemcached(1)\fP \fIlibmemached(3)\fP \fImemcached_strerror(3)\fP \fImemcached_set(3)\fP \fImemcached_append(3)\fP \fImemcached_add(3)\fP \fImemcached_prepend(3)\fP \fImemcached_replace(3)\fP
 .SH AUTHOR
 Brian Aker
 .SH COPYRIGHT