From: Brian Aker Date: Wed, 6 Apr 2011 05:27:35 +0000 (-0700) Subject: First pass on updating docs. X-Git-Tag: 0.51~15^2~35 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=c4dbc7e56b01545e25bc95ba122c79d4a2631a99;hp=7a1b9c6b5827bd45e02e3a708ebf92184041ab55;p=awesomized%2Flibmemcached First pass on updating docs. --- diff --git a/.quickly b/.quickly index 398e2ab6..637e364c 100644 --- a/.quickly +++ b/.quickly @@ -2,4 +2,4 @@ project = libmemcached version = 0.4.2 template = pandora-build project-type = library -pandora-version = 0.171 +pandora-version = 0.175 diff --git a/Makefile.am b/Makefile.am index b9fec57e..baecaf4e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5,9 +5,11 @@ SUFFIXES = PHONY = TESTS = CLEANFILES = +DISTCLEANFILES = bin_PROGRAMS = noinst_HEADERS = lib_LTLIBRARIES = +man_MANS = noinst_LTLIBRARIES = noinst_PROGRAMS = include_HEADERS = @@ -15,7 +17,6 @@ nobase_include_HEADERS = check_PROGRAMS = EXTRA_HEADERS = BUILT_SOURCES= -DISTCLEANFILES= EXTRA_DIST= \ ${srcdir}/m4/pandora_*.m4 \ .quickly \ @@ -32,17 +33,7 @@ EXTRA_DIST= \ m4/po.m4 \ m4/progtest.m4 -TEST_DOCS= -if BUILD_DOCS -SUBDIRS = docs -TEST_DOCS+=test-docs -endif - -test-docs: - (cd docs && $(MAKE) test-docs) - include libtest/include.am - include libmemcached/include.am include clients/include.am include libhashkit/include.am @@ -51,6 +42,7 @@ include example/include.am include support/include.am include poll/include.am include win32/include.am +include docs/include.am TESTS += ${check_PROGRAMS} @@ -83,6 +75,9 @@ merge-clean: find ./ | $(GREP) \~$$ | xargs rm -f bzr unknowns +clean-local: + -rm -rf docs/_build docs/doctrees + lcov: lcov-clean check @echo @echo " ------------------------------------------------------" diff --git a/config/pandora-plugin b/config/pandora-plugin index 91302914..936dbd32 100755 --- a/config/pandora-plugin +++ b/config/pandora-plugin @@ -1,6 +1,7 @@ #!/usr/bin/python # Copyright (C) 2009 Sun Microsystems, Inc. +# Copyright (C) 2010, 2011 Monty Taylor # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -133,6 +134,7 @@ EXTRA_DIST = plugin.ini noinst_HEADERS= nobase_include_HEADERS= +nobase_pkginclude_HEADERS= check_PROGRAMS= noinst_LTLIBRARIES= bin_PROGRAMS= @@ -142,7 +144,7 @@ bin_PROGRAMS= if plugin['headers'] != "": plugin_file.write("noinst_HEADERS += %(headers)s\n" % plugin) if plugin['install_headers'] != "": - plugin_file.write("nobase_include_HEADERS += %(install_headers)s\n" % plugin) + plugin_file.write("nobase_pkginclude_HEADERS += %(install_headers)s\n" % plugin) if plugin['testsuite']: if plugin.has_key('testsuitedir') and plugin['testsuitedir'] != "": plugin_file.write("EXTRA_DIST += %(testsuitedir)s\n" % plugin) @@ -151,7 +153,7 @@ pkgplugin_LTLIBRARIES=%(libname)s.la %(libname)s_la_LDFLAGS=-avoid-version -rpath $(pkgplugindir) $(AM_LDFLAGS) %(ldflags)s $(GCOV_LIBS) %(libname)s_la_LIBADD=%(libs)s %(libname)s_la_DEPENDENCIES=%(libs)s -%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_DYNAMIC_PLUGIN -DPANDORA_MODULE_NAME=%(module_name)s -DPANDORA_MODULE_AUTHOR='"%(author)s"' -DPANDORA_MODULE_TITLE='"%(title)s"' -DPANDORA_MODULE_VERSION='"%(version)s"' -DPANDORA_MODULE_LICENSE=%(license)s %(cppflags)s +%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_DYNAMIC_PLUGIN -DPANDORA_MODULE_NAME=%(module_name)s -DPANDORA_MODULE_AUTHOR='%(author)s' -DPANDORA_MODULE_TITLE='%(title)s' -DPANDORA_MODULE_VERSION='%(version)s' -DPANDORA_MODULE_LICENSE=%(license)s %(cppflags)s %(libname)s_la_CXXFLAGS=$(AM_CXXFLAGS) %(cxxflags)s %(libname)s_la_CFLAGS=$(AM_CFLAGS) %(cflags)s %(libname)s_la_SOURCES=%(sources)s @@ -199,15 +201,18 @@ def write_plugin(plugin, plugin_ini_list): write_plugin_ac(plugin, plugin_ac_file) write_plugin_am(plugin, plugin_am_file) - write_plugin_docs(plugin, plugin_doc_index) + write_plugin_docs(plugin, plugin_doc_index, plugin_am_file) plugin['writing_status'] = 'done' -def write_plugin_docs(plugin, doc_index): +def write_plugin_docs(plugin, doc_index, plugin_am): if plugin['docs'] is not None and os.path.isdir("docs/plugins"): if not os.path.exists(os.path.join("docs/plugins",plugin["name"])): os.symlink(os.path.abspath(plugin["docs"]), os.path.join("docs/plugins",plugin["name"])) doc_index.write(""" %(name)s/index""" % plugin) + plugin_am.write(""" +EXTRA_DIST+=${top_srcdir}/docs/plugins/%(name)s/*.rst +""" % plugin) def write_plugin_ac(plugin, plugin_ac): # @@ -243,6 +248,19 @@ AS_HELP_STRING([--without-%(name_with_dashes)s-plugin],[Disable building %(title with_%(name)s_plugin="%(enabled)s" requested_%(name)s_plugin="no" ]) +AC_ARG_WITH([static-%(name_with_dashes)s-plugin],[ +AS_HELP_STRING([--with-static-%(name_with_dashes)s-plugin],[Build Archive Storage Engine. @<:@default=%(static_yesno)s@:>@]) +AS_HELP_STRING([--without-static-%(name_with_dashes)s-plugin],[Disable building Archive Storage Engine]) + ],[ + with_static_%(name)s_plugin=${withval} + ],[ + with_static_%(name)s_plugin=%(static_yesno)s +]) +AS_IF([test "x${with_static_%(name)s_plugin}" = "xyes" -o "x${with_all_static}" = "xyes"],[ + shared_%(name)s_plugin=no + ],[ + shared_%(name)s_plugin=yes +]) AC_ARG_ENABLE([%(name_with_dashes)s-plugin],[ dnl indented wierd to make the help output correct AS_HELP_STRING([--enable-%(name_with_dashes)s-plugin],[Enable loading %(title)s by default. @<:@default=%(default_yesno)s@:>@]) @@ -272,20 +290,24 @@ AS_IF([test %(build_conditional)s], """ % plugin) if not plugin['unconditional']: plugin_ac.write(""" +AM_CONDITIONAL([%(static_build_conditional_tag)s], + [test %(build_conditional)s -a ! %(shared_build)s]) +AM_CONDITIONAL([%(shared_build_conditional_tag)s], + [test %(build_conditional)s -a %(shared_build)s]) AM_CONDITIONAL([%(build_conditional_tag)s], [test %(build_conditional)s]) """ % plugin) plugin_ac.write(""" -AS_IF([test "x$with_%(name)s_plugin" = "xyes"], - [ +AS_IF([test "x$with_%(name)s_plugin" = "xyes"],[ """ % plugin) if plugin['testsuite']: plugin_ac.write(""" pandora_plugin_test_list="%(name)s,${pandora_plugin_test_list}" """ % plugin) - if plugin['static']: - plugin_ac.write(""" + plugin_ac.write(""" + AS_IF([test "x${with_static_%(name)s_plugin}" = "xyes" -o "x${with_all_static}" = "xyes"],[ + AS_IF([test "x$enable_%(name)s_plugin" = "xyes"],[ pandora_builtin_load_list="%(module_name)s,${pandora_builtin_load_list}" pandora_builtin_load_symbols_list="_drizzled_%(module_name)s_plugin_,${pandora_builtin_load_symbols_list}" @@ -294,15 +316,13 @@ AS_IF([test "x$with_%(name)s_plugin" = "xyes"], pandora_builtin_list="%(module_name)s,${pandora_builtin_list}" pandora_builtin_symbols_list="_drizzled_%(module_name)s_plugin_,${pandora_builtin_symbols_list}" pandora_plugin_libs="${pandora_plugin_libs} \${top_builddir}/%(root_plugin_dir)s/%(libname)s.la" - """ % plugin) - - else: - plugin_ac.write(""" + ],[ AS_IF([test "x$enable_%(name)s_plugin" = "xyes"],[ pandora_default_plugin_list="%(name)s,${pandora_default_plugin_list}" ]) + ]) """ % plugin) - plugin_ac.write(" ])\n") + plugin_ac.write("])\n") def fix_file_paths(plugin, files): # TODO: determine path to plugin dir relative to top_srcdir... append it to @@ -347,7 +367,13 @@ def expand_plugin_ini(plugin): plugin['extra_dist']=" ".join([os.path.join(plugin['rel_path'],f) for f in plugin['extra_dist'].split()]) + if plugin['static']: + plugin['static_yesno']="yes" + else: + plugin['static_yesno']="no" plugin['build_conditional_tag']= "BUILD_%s_PLUGIN" % plugin['name'].upper() + plugin['shared_build_conditional_tag']= "BUILD_%s_PLUGIN_SHARED" % plugin['name'].upper() + plugin['static_build_conditional_tag']= "BUILD_%s_PLUGIN_STATIC" % plugin['name'].upper() plugin['name_with_dashes']= plugin['name'].replace('_','-') if plugin.has_key('build_conditional'): plugin['has_build_conditional']=True @@ -355,6 +381,7 @@ def expand_plugin_ini(plugin): else: plugin['has_build_conditional']=False plugin['build_conditional']='"x${with_%(name)s_plugin}" = "xyes"' %plugin + plugin['shared_build']='"x${shared_%(name)s_plugin}" = "xyes"' %plugin if plugin['install']: plugin['library_type']= 'pkgplugin' @@ -510,7 +537,7 @@ EXTRA_DIST += %(rel_path)s/plugin.ini if plugin['headers'] != "": plugin_am.write("noinst_HEADERS += %(headers)s\n" % plugin) if plugin['install_headers'] != "": - plugin_am.write("nobase_include_HEADERS += %(install_headers)s\n" % plugin) + plugin_am.write("nobase_pkginclude_HEADERS += %(install_headers)s\n" % plugin) if plugin['testsuite']: if plugin.has_key('testsuitedir') and plugin['testsuitedir'] != "": plugin_am.write("EXTRA_DIST += %(rel_path)s/%(testsuitedir)s\n" % plugin) @@ -518,33 +545,30 @@ EXTRA_DIST += %(rel_path)s/plugin.ini plugin_am.write("EXTRA_DIST += %(rel_path)s/%(dist_testsuite)s\n" % plugin) if plugin['docs'] is not None: plugin_am.write("EXTRA_DIST += ${top_srcdir}/%(rel_path)s/docs/*.rst\n" % plugin) - if plugin['static']: - plugin_am.write(""" + plugin_am.write(""" %(root_plugin_dir)s_%(plugin_prefix)s%(name)s_dir=${top_srcdir}/%(rel_path)s -EXTRA_DIST += %(rel_path)s/plugin.ini -if %(build_conditional_tag)s +# Include sources in EXTRA_DIST because we might not build this, but we +# still want the sources to wind up in a tarball +EXTRA_DIST += %(rel_path)s/plugin.ini %(sources)s +if %(static_build_conditional_tag)s noinst_LTLIBRARIES+=%(root_plugin_dir)s/%(libname)s.la %(root_plugin_dir)s_%(libname)s_la_LIBADD=%(libs)s %(root_plugin_dir)s_%(libname)s_la_DEPENDENCIES=%(libs)s %(root_plugin_dir)s_%(libname)s_la_LDFLAGS=$(AM_LDFLAGS) %(ldflags)s $(GCOV_LIBS) - %(root_plugin_dir)s_%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_MODULE_NAME=%(module_name)s -DPANDORA_MODULE_AUTHOR='"%(author)s"' -DPANDORA_MODULE_TITLE='"%(title)s"' -DPANDORA_MODULE_VERSION='"%(version)s"' -DPANDORA_MODULE_LICENSE=%(license)s -DPANDORA_MODULE_DEPENDENCIES='"%(dependencies)s"' %(cppflags)s + %(root_plugin_dir)s_%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_MODULE_NAME=%(module_name)s -DPANDORA_MODULE_AUTHOR='%(author)s' -DPANDORA_MODULE_TITLE='%(title)s' -DPANDORA_MODULE_VERSION='%(version)s' -DPANDORA_MODULE_LICENSE=%(license)s -DPANDORA_MODULE_DEPENDENCIES='%(dependencies)s' %(cppflags)s %(root_plugin_dir)s_%(libname)s_la_CXXFLAGS=$(AM_CXXFLAGS) %(cxxflags)s %(root_plugin_dir)s_%(libname)s_la_CFLAGS=$(AM_CFLAGS) %(cflags)s %(root_plugin_dir)s_%(libname)s_la_SOURCES=%(sources)s check_PROGRAMS += %(tests)s PANDORA_DYNAMIC_LDADDS+=${top_builddir}/%(root_plugin_dir)s/%(libname)s.la endif -""" % plugin) - else: - plugin_am.write(""" -%(root_plugin_dir)s_%(plugin_prefix)s%(name)s_dir=${top_srcdir}/%(rel_path)s EXTRA_DIST += %(rel_path)s/plugin.ini -if %(build_conditional_tag)s +if %(shared_build_conditional_tag)s %(library_type)s_LTLIBRARIES+=%(root_plugin_dir)s/%(libname)s.la %(root_plugin_dir)s_%(libname)s_la_LDFLAGS=-avoid-version -rpath $(pkgplugindir) $(AM_LDFLAGS) %(ldflags)s $(GCOV_LIBS) %(root_plugin_dir)s_%(libname)s_la_LIBADD=%(libs)s %(root_plugin_dir)s_%(libname)s_la_DEPENDENCIES=%(libs)s - %(root_plugin_dir)s_%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_DYNAMIC_PLUGIN -DPANDORA_MODULE_NAME=%(module_name)s -DPANDORA_MODULE_AUTHOR='"%(author)s"' -DPANDORA_MODULE_TITLE='"%(title)s"' -DPANDORA_MODULE_VERSION='"%(version)s"' -DPANDORA_MODULE_LICENSE=%(license)s -DPANDORA_MODULE_DEPENDENCIES='"%(dependencies)s"' %(cppflags)s + %(root_plugin_dir)s_%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_DYNAMIC_PLUGIN -DPANDORA_MODULE_NAME=%(module_name)s -DPANDORA_MODULE_AUTHOR='%(author)s' -DPANDORA_MODULE_TITLE='%(title)s' -DPANDORA_MODULE_VERSION='%(version)s' -DPANDORA_MODULE_LICENSE=%(license)s -DPANDORA_MODULE_DEPENDENCIES='%(dependencies)s' %(cppflags)s %(root_plugin_dir)s_%(libname)s_la_CXXFLAGS=$(AM_CXXFLAGS) %(cxxflags)s %(root_plugin_dir)s_%(libname)s_la_CFLAGS=$(AM_CFLAGS) %(cflags)s %(root_plugin_dir)s_%(libname)s_la_SOURCES=%(sources)s @@ -662,6 +686,15 @@ PANDORA_DYNAMIC_LDADDS= if not os.path.exists("config/pandora-plugin.ac") or "write" in actions: plugin_ac_file = ChangeProtectedFile(os.path.join('config', 'pandora-plugin.ac')) plugin_ac_file.write("dnl Generated file, run make to rebuild\n") + plugin_ac_file.write(""" +AC_ARG_WITH([all-static],[ +AS_HELP_STRING([--with-all-static],[Link all plugins staticly into the server @<:@default=no@:>@]) +],[ + with_all_static="$withval" + ],[ + with_all_static=no +]) + """) if os.path.exists("docs/plugins"): if not os.path.exists("docs/plugins/list.rst") or "write" in actions: diff --git a/configure.ac b/configure.ac index b4581e9f..ff9329bf 100644 --- a/configure.ac +++ b/configure.ac @@ -103,7 +103,6 @@ AC_SEARCH_LIBS(gethostbyname, nsl) AC_CHECK_FUNCS([getline]) -PANDORA_HAVE_LIBGTEST PANDORA_HAVE_LIBEVENT my_saved_libs="$LIBS" LIBS= @@ -137,19 +136,6 @@ AS_IF([test "x$ac_cv_header_atomic_h" = "xyes"],[ [1], [Define to true if you want to use functions from atomic.h])])]) -AC_ARG_WITH([docs], - [AS_HELP_STRING([--with-docs], - [Generate documentation (yes|no) @<:@default=yes@:>@])], - [with_docs=$withval], - [with_docs=yes]) - -AS_IF([test "$with_docs" = "yes"], - [ - REQUIRE_POD2MAN - REQUIRE_PODCHECKER - ]) -AM_CONDITIONAL(BUILD_DOCS, test "$with_docs" = "yes") - AC_CHECK_HEADERS_ONCE(winsock2.h poll.h sys/wait.h fnmatch.h) AM_CONDITIONAL(BUILD_POLL, test "x$ac_cv_header_poll_h" = "xno") AM_CONDITIONAL(BUILD_WIN32_WRAPPERS, test "x$ac_cv_header_winsock2_h" = "xyes") @@ -163,7 +149,6 @@ SOCKET_SEND_FLAGS AC_CONFIG_FILES([ Makefile - docs/Makefile libhashkit/configure.h libmemcached/configure.h support/libmemcached.pc @@ -197,13 +182,3 @@ case "$host_os" in ;; esac -AS_IF(test "$with_docs" = "no", - [ - echo "*****" - echo "*" - echo "* WARNING: You are not generating any documentation." - echo "* Please don't ship libmemcached to an end user" - echo "* without documentation..." - echo "*" - echo "*****" - ]) diff --git a/docs/Makefile.am b/docs/Makefile.am deleted file mode 100644 index 2d1c2829..00000000 --- a/docs/Makefile.am +++ /dev/null @@ -1,566 +0,0 @@ -# This file generates all of man/html pages that we use for documentation. -# -# When hacking this file you need to know that we take .pod files and turn -# them into .pop files. .pop files are 1=1 for man pages, but one .pod -# file may generate many .pop files. -# -# -Brian -# -# -CLEANFILES= *.1 *.3 *.html *.pop *.tmp - -BUILT_SOURCES= - -EXTRA_DIST= make_index.pl - -AUTO_PAGES= \ - memcached_increment.pop \ - memcached_increment_with_initial.pop \ - memcached_decrement.pop \ - memcached_decrement_with_initial.pop -BUILT_SOURCES += ${AUTO_PAGES} - -BEHAVIOR_PAGES= \ - memcached_behavior_get.pop \ - memcached_behavior_set.pop -BUILT_SOURCES += ${BEHAVIOR_PAGES} - -CALLBACK_PAGES= \ - memcached_callback_get.pop \ - memcached_callback_set.pop -BUILT_SOURCES += ${CALLBACK_PAGES} - -CREATE_PAGES= \ - memcached_clone.pop \ - memcached_create.pop \ - memcached_free.pop \ - memcached_servers_reset.pop -BUILT_SOURCES += ${CREATE_PAGES} - -DELETE_PAGES= \ - memcached_delete.pop \ - memcached_delete_by_key.pop -BUILT_SOURCES += ${DELETE_PAGES} - -GENERIC_PAGES= \ - libmemcached.pop \ - libmemcached_examples.pop \ - libmemcachedutil.pop \ - memcached_analyze.pop \ - memcached_dump.pop \ - memcached_flush.pop \ - memcached_flush_buffers.pop \ - memcached_generate_hash_value.pop \ - memcached_quit.pop \ - memcached_strerror.pop \ - memcached_verbosity.pop \ - memcapable.pop \ - memcat.pop \ - memcp.pop \ - memdump.pop \ - memerror.pop \ - memflush.pop \ - memrm.pop \ - memaslap.pop \ - memslap.pop \ - memstat.pop -BUILT_SOURCES += ${GENERIC_PAGES} - -GET_PAGES= \ - memcached_get.pop \ - memcached_get_by_key.pop \ - memcached_fetch_result.pop \ - memcached_fetch_execute.pop \ - memcached_mget.pop \ - memcached_mget_by_key.pop \ - memcached_mget_execute.pop \ - memcached_mget_execute_by_key.pop \ - memcached_fetch.pop -BUILT_SOURCES += ${GET_PAGES} - -MEMORY_ALLOCATORS_PAGES= \ - memcached_get_memory_allocators.pop \ - memcached_set_memory_allocators.pop \ - memcached_set_memory_allocators_context.pop -BUILT_SOURCES += ${MEMORY_ALLOCATORS_PAGES} - -POOL_PAGES= \ - memcached_pool_behavior_get.pop \ - memcached_pool_behavior_set.pop \ - memcached_pool_create.pop \ - memcached_pool_destroy.pop \ - memcached_pool_pop.pop \ - memcached_pool_push.pop -BUILT_SOURCES += ${POOL_PAGES} - -RESULT_PAGES= \ - memcached_result_cas.pop \ - memcached_result_create.pop \ - memcached_result_flags.pop \ - memcached_result_free.pop \ - memcached_result_key_length.pop \ - memcached_result_key_value.pop \ - memcached_result_length.pop \ - memcached_result_st.pop \ - memcached_result_value.pop -BUILT_SOURCES += ${RESULT_PAGES} - - -SERVER_PAGES= \ - memcached_server_count.pop \ - memcached_server_cursor.pop \ - memcached_server_list.pop \ - memcached_server_add.pop \ - memcached_server_add_unix_socket.pop \ - memcached_server_push.pop -BUILT_SOURCES += ${SERVER_PAGES} - -SERVER_ST_PAGES= \ - memcached_server_list_free.pop \ - memcached_server_list_count.pop \ - memcached_server_list_append.pop \ - memcached_servers_parse.pop -BUILT_SOURCES += ${SERVER_ST_PAGES} - -SET_PAGES= \ - memcached_set.pop \ - memcached_set_by_key.pop \ - memcached_cas.pop \ - memcached_cas_by_key.pop \ - memcached_replace.pop \ - memcached_replace_by_key.pop \ - memcached_add.pop \ - memcached_add_by_key.pop \ - memcached_prepend.pop \ - memcached_prepend_by_key.pop \ - memcached_append.pop \ - memcached_append_by_key.pop -BUILT_SOURCES += ${SET_PAGES} - -STATS_PAGES= \ - memcached_stat.pop \ - memcached_stat_execute.pop\ - memcached_stat_get_keys.pop\ - memcached_stat_get_value.pop \ - memcached_stat_servername.pop -BUILT_SOURCES += ${STATS_PAGES} - -USER_DATA_PAGES= \ - memcached_get_user_data.pop \ - memcached_set_user_data.pop -BUILT_SOURCES += ${USER_DATA_PAGES} - -VERSION_PAGES= \ - memcached_version.pop \ - memcached_lib_version.pop -BUILT_SOURCES += ${VERSION_PAGES} - - -# -# These are for libhashkit -# -HASHKIT_CREATE_PAGES= \ - hashkit_is_allocated.pop \ - hashkit_create.pop \ - hashkit_clone.pop \ - hashkit_free.pop -BUILT_SOURCES += ${HASHKIT_CREATE_PAGES} - -HASHKIT_FUNCTIONS_PAGES= \ - hashkit_crc32.pop \ - hashkit_fnv1_32.pop \ - hashkit_fnv1_64.pop \ - hashkit_fnv1a_32.pop \ - hashkit_fnv1a_64.pop \ - hashkit_functions.pop \ - hashkit_hsieh.pop \ - hashkit_jenkins.pop \ - hashkit_md5.pop \ - hashkit_murmur.pop -BUILT_SOURCES += ${HASHKIT_FUNCTIONS_PAGES} - -HASHKIT_ST_PAGES= \ - hashkit_value.pop -BUILT_SOURCES += ${HASHKIT_ST_PAGES} - - -HTML_FILES= \ - hashkit_clone.html \ - hashkit_crc32.html \ - hashkit_create.html \ - hashkit_fnv1_32.html \ - hashkit_fnv1_64.html \ - hashkit_fnv1a_32.html \ - hashkit_fnv1a_64.html \ - hashkit_free.html \ - hashkit_functions.html \ - hashkit_hsieh.html \ - hashkit_is_allocated.html \ - hashkit_jenkins.html \ - hashkit_md5.html \ - hashkit_murmur.html \ - hashkit_value.html \ - libmemcached_examples.html \ - libmemcached.html \ - libmemcachedutil.html \ - memcached_add_by_key.html \ - memcached_add.html \ - memcached_analyze.html \ - memcached_append_by_key.html \ - memcached_append.html \ - memcached_behavior_get.html \ - memcached_behavior_set.html \ - memcached_callback_get.html \ - memcached_callback_set.html \ - memcached_cas_by_key.html \ - memcached_cas.html \ - memcached_clone.html \ - memcached_create.html \ - memcached_decrement.html \ - memcached_decrement_with_initial.html \ - memcached_delete_by_key.html \ - memcached_delete.html \ - memcached_dump.html \ - memcached_fetch_execute.html \ - memcached_fetch.html \ - memcached_fetch_result.html \ - memcached_flush_buffers.html \ - memcached_flush.html \ - memcached_free.html \ - memcached_generate_hash_value.html \ - memcached_get_by_key.html \ - memcached_get_memory_allocators.html \ - memcached_get.html \ - memcached_get_user_data.html \ - memcached_increment.html \ - memcached_increment_with_initial.html \ - memcached_lib_version.html \ - memcached_mget_by_key.html \ - memcached_mget_execute_by_key.html \ - memcached_mget_execute.html \ - memcached_mget.html \ - memcached_pool_behavior_get.html \ - memcached_pool_behavior_set.html \ - memcached_pool_create.html \ - memcached_pool_destroy.html \ - memcached_pool_pop.html \ - memcached_pool_push.html \ - memcached_prepend_by_key.html \ - memcached_prepend.html \ - memcached_quit.html \ - memcached_replace_by_key.html \ - memcached_replace.html \ - memcached_result_cas.html \ - memcached_result_create.html \ - memcached_result_flags.html \ - memcached_result_free.html \ - memcached_result_key_length.html \ - memcached_result_key_value.html \ - memcached_result_length.html \ - memcached_result_st.html \ - memcached_result_value.html \ - memcached_server_add.html \ - memcached_server_add_unix_socket.html \ - memcached_server_count.html \ - memcached_server_cursor.html \ - memcached_server_list_append.html \ - memcached_server_list_count.html \ - memcached_server_list_free.html \ - memcached_server_list.html \ - memcached_server_push.html \ - memcached_servers_parse.html \ - memcached_set_by_key.html \ - memcached_set_memory_allocators.html \ - memcached_set.html \ - memcached_set_user_data.html \ - memcached_stat_execute.html \ - memcached_stat_get_keys.html \ - memcached_stat_get_value.html \ - memcached_stat.html \ - memcached_stat_servername.html \ - memcached_strerror.html \ - memcached_verbosity.html \ - memcached_version.html \ - memcapable.html \ - memcat.html \ - memcp.html \ - memdump.html \ - memerror.html \ - memflush.html \ - memrm.html \ - memaslap.html \ - memslap.html \ - memstat.html - -POD_FILES= \ - hashkit_create.pod \ - hashkit_functions.pod \ - hashkit_value.pod \ - libmemcached.pod \ - libmemcached_examples.pod \ - libmemcachedutil.pod \ - memcached_analyze.pod \ - memcached_auto.pod \ - memcached_behavior.pod \ - memcached_callback.pod \ - memcached_create.pod \ - memcached_delete.pod \ - memcached_dump.pod \ - memcached_flush.pod \ - memcached_flush_buffers.pod \ - memcached_generate_hash_value.pod \ - memcached_get.pod \ - memcached_memory_allocators.pod \ - memcached_pool.pod \ - memcached_quit.pod \ - memcached_result_st.pod \ - memcached_sasl.pod \ - memcached_server_st.pod \ - memcached_servers.pod \ - memcached_set.pod \ - memcached_stats.pod \ - memcached_strerror.pod \ - memcached_user_data.pod \ - memcached_verbosity.pod \ - memcached_version.pod \ - memcapable.pod \ - memcat.pod \ - memcp.pod \ - memdump.pod \ - memerror.pod \ - memflush.pod \ - memrm.pod \ - memaslap.pod \ - memslap.pod \ - memstat.pod -EXTRA_DIST+= $(POD_FILES) - -man_MANS = \ - hashkit_clone.3 \ - hashkit_crc32.3 \ - hashkit_create.3 \ - hashkit_fnv1_32.3 \ - hashkit_fnv1_64.3 \ - hashkit_fnv1a_32.3 \ - hashkit_fnv1a_64.3 \ - hashkit_free.3 \ - hashkit_functions.3 \ - hashkit_hsieh.3 \ - hashkit_is_allocated.3 \ - hashkit_jenkins.3 \ - hashkit_md5.3 \ - hashkit_murmur.3 \ - hashkit_value.3 \ - libmemcached.3 \ - libmemcached_examples.3 \ - memcached_add.3 \ - memcached_add_by_key.3 \ - memcached_analyze.3 \ - memcached_append.3 \ - memcached_append_by_key.3 \ - memcached_behavior_get.3 \ - memcached_behavior_set.3 \ - memcached_callback_get.3 \ - memcached_callback_set.3 \ - memcached_cas.3 \ - memcached_cas_by_key.3 \ - memcached_clone.3 \ - memcached_create.3 \ - memcached_decrement.3 \ - memcached_decrement_with_initial.3 \ - memcached_delete.3 \ - memcached_delete_by_key.3 \ - memcached_dump.3 \ - memcached_fetch.3 \ - memcached_fetch_execute.3 \ - memcached_fetch_result.3 \ - memcached_flush_buffers.3 \ - memcached_free.3 \ - memcached_generate_hash_value.3 \ - memcached_get.3 \ - memcached_get_by_key.3 \ - memcached_get_memory_allocators.3 \ - memcached_get_user_data.3 \ - memcached_increment.3 \ - memcached_increment_with_initial.3 \ - memcached_lib_version.3 \ - memcached_mget.3 \ - memcached_mget_by_key.3 \ - memcached_mget_execute.3 \ - memcached_mget_execute_by_key.3 \ - memcached_prepend.3 \ - memcached_prepend_by_key.3 \ - memcached_quit.3 \ - memcached_replace.3 \ - memcached_replace_by_key.3 \ - memcached_server_add.3 \ - memcached_server_count.3 \ - memcached_server_cursor.3 \ - memcached_server_list.3 \ - memcached_server_list_append.3 \ - memcached_server_list_count.3 \ - memcached_server_list_free.3 \ - memcached_server_push.3 \ - memcached_servers_parse.3 \ - memcached_set.3 \ - memcached_set_by_key.3 \ - memcached_set_memory_allocators.3 \ - memcached_set_user_data.3 \ - memcached_stat.3 \ - memcached_stat_execute.3 \ - memcached_stat_get_keys.3 \ - memcached_stat_get_value.3 \ - memcached_stat_servername.3 \ - memcached_strerror.3 \ - memcached_verbosity.3 \ - memcached_version.3 \ - memcapable.1 \ - memcat.1 \ - memcp.1 \ - memdump.1 \ - memerror.1 \ - memflush.1 \ - memrm.1 \ - memaslap.1 \ - memslap.1 \ - memstat.1 - -if HAVE_SASL -POD_FILES+= memcached_sasl.pod -man_MANS+= \ - memcached_destroy_sasl_auth_data.3 \ - memcached_get_sasl_callbacks.3 \ - memcached_sasl_set_auth_data.3 \ - memcached_set_sasl_callbacks.3 - -HTML_FILES+= \ - memcached_destroy_sasl_auth_data.html \ - memcached_get_sasl_callbacks.html \ - memcached_sasl_set_auth_data.html \ - memcached_set_sasl_callbacks.html - - -SASL_PAGES= \ - memcached_destroy_sasl_auth_data.pop \ - memcached_get_sasl_callbacks.pop \ - memcached_sasl_set_auth_data.pop \ - memcached_set_sasl_callbacks.pop -BUILT_SOURCES += ${SASL_PAGES} - -${SASL_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_sasl.pod ${top_builddir}/docs/$@ - -endif - -if BUILD_LIBMEMCACHEDUTIL -man_MANS+= \ - libmemcachedutil.3 \ - memcached_pool_behavior_set.3 \ - memcached_pool_behavior_get.3 \ - memcached_pool_create.3 \ - memcached_pool_destroy.3 \ - memcached_pool_push.3 \ - memcached_pool_pop.3 -endif - - -${CREATE_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_create.pod ${top_builddir}/docs/$@ - -${SET_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_set.pod ${top_builddir}/docs/$@ - -${DELETE_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_delete.pod ${top_builddir}/docs/$@ - -${AUTO_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_auto.pod ${top_builddir}/docs/$@ - -${GET_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_get.pod ${top_builddir}/docs/$@ - -${SERVER_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_servers.pod ${top_builddir}/docs/$@ - -${SERVER_ST_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_server_st.pod ${top_builddir}/docs/$@ - -${GENERIC_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/$*.pod ${top_builddir}/docs/$@ - -${BEHAVIOR_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_behavior.pod ${top_builddir}/docs/$@ - -${CALLBACK_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_callback.pod ${top_builddir}/docs/$@ - -${STATS_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_stats.pod ${top_builddir}/docs/$@ - -${RESULT_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_result_st.pod ${top_builddir}/docs/$@ - -${VERSION_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_version.pod ${top_builddir}/docs/$@ - -${MEMORY_ALLOCATORS_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_memory_allocators.pod ${top_builddir}/docs/$@ - -${USER_DATA_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_user_data.pod ${top_builddir}/docs/$@ - -${POOL_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/memcached_pool.pod ${top_builddir}/docs/$@ - -${HASHKIT_CREATE_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/hashkit_create.pod ${top_builddir}/docs/$@ - - -${HASHKIT_FUNCTIONS_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/hashkit_functions.pod ${top_builddir}/docs/$@ - -${HASHKIT_ST_PAGES}: - @rm -f $@ - ln -s ${top_srcdir}/docs/hashkit_value.pod ${top_builddir}/docs/$@ - -test-docs: $(POD_FILES) - ${PODCHECKER} $(top_srcdir)/docs/$? - -html-local: html-pages html-index - -html-pages: $(HTML_FILES) - -html-index: html-pages - perl make_index.pl *.html > index.html - -SUFFIXES= .pop .pod .html .1 .3 - -.pop: ${_set} - -.pop.html: - pod2html --infile=$< > $@ - -.pop.1: - ${POD2MAN} -c "$*" -r "" -s 1 $< > $@ - -.pop.3: - ${POD2MAN} -c "$*" -r "" -s 3 $< > $@ diff --git a/docs/Makefile.am.THIS b/docs/Makefile.am.THIS new file mode 100644 index 00000000..2d1c2829 --- /dev/null +++ b/docs/Makefile.am.THIS @@ -0,0 +1,566 @@ +# This file generates all of man/html pages that we use for documentation. +# +# When hacking this file you need to know that we take .pod files and turn +# them into .pop files. .pop files are 1=1 for man pages, but one .pod +# file may generate many .pop files. +# +# -Brian +# +# +CLEANFILES= *.1 *.3 *.html *.pop *.tmp + +BUILT_SOURCES= + +EXTRA_DIST= make_index.pl + +AUTO_PAGES= \ + memcached_increment.pop \ + memcached_increment_with_initial.pop \ + memcached_decrement.pop \ + memcached_decrement_with_initial.pop +BUILT_SOURCES += ${AUTO_PAGES} + +BEHAVIOR_PAGES= \ + memcached_behavior_get.pop \ + memcached_behavior_set.pop +BUILT_SOURCES += ${BEHAVIOR_PAGES} + +CALLBACK_PAGES= \ + memcached_callback_get.pop \ + memcached_callback_set.pop +BUILT_SOURCES += ${CALLBACK_PAGES} + +CREATE_PAGES= \ + memcached_clone.pop \ + memcached_create.pop \ + memcached_free.pop \ + memcached_servers_reset.pop +BUILT_SOURCES += ${CREATE_PAGES} + +DELETE_PAGES= \ + memcached_delete.pop \ + memcached_delete_by_key.pop +BUILT_SOURCES += ${DELETE_PAGES} + +GENERIC_PAGES= \ + libmemcached.pop \ + libmemcached_examples.pop \ + libmemcachedutil.pop \ + memcached_analyze.pop \ + memcached_dump.pop \ + memcached_flush.pop \ + memcached_flush_buffers.pop \ + memcached_generate_hash_value.pop \ + memcached_quit.pop \ + memcached_strerror.pop \ + memcached_verbosity.pop \ + memcapable.pop \ + memcat.pop \ + memcp.pop \ + memdump.pop \ + memerror.pop \ + memflush.pop \ + memrm.pop \ + memaslap.pop \ + memslap.pop \ + memstat.pop +BUILT_SOURCES += ${GENERIC_PAGES} + +GET_PAGES= \ + memcached_get.pop \ + memcached_get_by_key.pop \ + memcached_fetch_result.pop \ + memcached_fetch_execute.pop \ + memcached_mget.pop \ + memcached_mget_by_key.pop \ + memcached_mget_execute.pop \ + memcached_mget_execute_by_key.pop \ + memcached_fetch.pop +BUILT_SOURCES += ${GET_PAGES} + +MEMORY_ALLOCATORS_PAGES= \ + memcached_get_memory_allocators.pop \ + memcached_set_memory_allocators.pop \ + memcached_set_memory_allocators_context.pop +BUILT_SOURCES += ${MEMORY_ALLOCATORS_PAGES} + +POOL_PAGES= \ + memcached_pool_behavior_get.pop \ + memcached_pool_behavior_set.pop \ + memcached_pool_create.pop \ + memcached_pool_destroy.pop \ + memcached_pool_pop.pop \ + memcached_pool_push.pop +BUILT_SOURCES += ${POOL_PAGES} + +RESULT_PAGES= \ + memcached_result_cas.pop \ + memcached_result_create.pop \ + memcached_result_flags.pop \ + memcached_result_free.pop \ + memcached_result_key_length.pop \ + memcached_result_key_value.pop \ + memcached_result_length.pop \ + memcached_result_st.pop \ + memcached_result_value.pop +BUILT_SOURCES += ${RESULT_PAGES} + + +SERVER_PAGES= \ + memcached_server_count.pop \ + memcached_server_cursor.pop \ + memcached_server_list.pop \ + memcached_server_add.pop \ + memcached_server_add_unix_socket.pop \ + memcached_server_push.pop +BUILT_SOURCES += ${SERVER_PAGES} + +SERVER_ST_PAGES= \ + memcached_server_list_free.pop \ + memcached_server_list_count.pop \ + memcached_server_list_append.pop \ + memcached_servers_parse.pop +BUILT_SOURCES += ${SERVER_ST_PAGES} + +SET_PAGES= \ + memcached_set.pop \ + memcached_set_by_key.pop \ + memcached_cas.pop \ + memcached_cas_by_key.pop \ + memcached_replace.pop \ + memcached_replace_by_key.pop \ + memcached_add.pop \ + memcached_add_by_key.pop \ + memcached_prepend.pop \ + memcached_prepend_by_key.pop \ + memcached_append.pop \ + memcached_append_by_key.pop +BUILT_SOURCES += ${SET_PAGES} + +STATS_PAGES= \ + memcached_stat.pop \ + memcached_stat_execute.pop\ + memcached_stat_get_keys.pop\ + memcached_stat_get_value.pop \ + memcached_stat_servername.pop +BUILT_SOURCES += ${STATS_PAGES} + +USER_DATA_PAGES= \ + memcached_get_user_data.pop \ + memcached_set_user_data.pop +BUILT_SOURCES += ${USER_DATA_PAGES} + +VERSION_PAGES= \ + memcached_version.pop \ + memcached_lib_version.pop +BUILT_SOURCES += ${VERSION_PAGES} + + +# +# These are for libhashkit +# +HASHKIT_CREATE_PAGES= \ + hashkit_is_allocated.pop \ + hashkit_create.pop \ + hashkit_clone.pop \ + hashkit_free.pop +BUILT_SOURCES += ${HASHKIT_CREATE_PAGES} + +HASHKIT_FUNCTIONS_PAGES= \ + hashkit_crc32.pop \ + hashkit_fnv1_32.pop \ + hashkit_fnv1_64.pop \ + hashkit_fnv1a_32.pop \ + hashkit_fnv1a_64.pop \ + hashkit_functions.pop \ + hashkit_hsieh.pop \ + hashkit_jenkins.pop \ + hashkit_md5.pop \ + hashkit_murmur.pop +BUILT_SOURCES += ${HASHKIT_FUNCTIONS_PAGES} + +HASHKIT_ST_PAGES= \ + hashkit_value.pop +BUILT_SOURCES += ${HASHKIT_ST_PAGES} + + +HTML_FILES= \ + hashkit_clone.html \ + hashkit_crc32.html \ + hashkit_create.html \ + hashkit_fnv1_32.html \ + hashkit_fnv1_64.html \ + hashkit_fnv1a_32.html \ + hashkit_fnv1a_64.html \ + hashkit_free.html \ + hashkit_functions.html \ + hashkit_hsieh.html \ + hashkit_is_allocated.html \ + hashkit_jenkins.html \ + hashkit_md5.html \ + hashkit_murmur.html \ + hashkit_value.html \ + libmemcached_examples.html \ + libmemcached.html \ + libmemcachedutil.html \ + memcached_add_by_key.html \ + memcached_add.html \ + memcached_analyze.html \ + memcached_append_by_key.html \ + memcached_append.html \ + memcached_behavior_get.html \ + memcached_behavior_set.html \ + memcached_callback_get.html \ + memcached_callback_set.html \ + memcached_cas_by_key.html \ + memcached_cas.html \ + memcached_clone.html \ + memcached_create.html \ + memcached_decrement.html \ + memcached_decrement_with_initial.html \ + memcached_delete_by_key.html \ + memcached_delete.html \ + memcached_dump.html \ + memcached_fetch_execute.html \ + memcached_fetch.html \ + memcached_fetch_result.html \ + memcached_flush_buffers.html \ + memcached_flush.html \ + memcached_free.html \ + memcached_generate_hash_value.html \ + memcached_get_by_key.html \ + memcached_get_memory_allocators.html \ + memcached_get.html \ + memcached_get_user_data.html \ + memcached_increment.html \ + memcached_increment_with_initial.html \ + memcached_lib_version.html \ + memcached_mget_by_key.html \ + memcached_mget_execute_by_key.html \ + memcached_mget_execute.html \ + memcached_mget.html \ + memcached_pool_behavior_get.html \ + memcached_pool_behavior_set.html \ + memcached_pool_create.html \ + memcached_pool_destroy.html \ + memcached_pool_pop.html \ + memcached_pool_push.html \ + memcached_prepend_by_key.html \ + memcached_prepend.html \ + memcached_quit.html \ + memcached_replace_by_key.html \ + memcached_replace.html \ + memcached_result_cas.html \ + memcached_result_create.html \ + memcached_result_flags.html \ + memcached_result_free.html \ + memcached_result_key_length.html \ + memcached_result_key_value.html \ + memcached_result_length.html \ + memcached_result_st.html \ + memcached_result_value.html \ + memcached_server_add.html \ + memcached_server_add_unix_socket.html \ + memcached_server_count.html \ + memcached_server_cursor.html \ + memcached_server_list_append.html \ + memcached_server_list_count.html \ + memcached_server_list_free.html \ + memcached_server_list.html \ + memcached_server_push.html \ + memcached_servers_parse.html \ + memcached_set_by_key.html \ + memcached_set_memory_allocators.html \ + memcached_set.html \ + memcached_set_user_data.html \ + memcached_stat_execute.html \ + memcached_stat_get_keys.html \ + memcached_stat_get_value.html \ + memcached_stat.html \ + memcached_stat_servername.html \ + memcached_strerror.html \ + memcached_verbosity.html \ + memcached_version.html \ + memcapable.html \ + memcat.html \ + memcp.html \ + memdump.html \ + memerror.html \ + memflush.html \ + memrm.html \ + memaslap.html \ + memslap.html \ + memstat.html + +POD_FILES= \ + hashkit_create.pod \ + hashkit_functions.pod \ + hashkit_value.pod \ + libmemcached.pod \ + libmemcached_examples.pod \ + libmemcachedutil.pod \ + memcached_analyze.pod \ + memcached_auto.pod \ + memcached_behavior.pod \ + memcached_callback.pod \ + memcached_create.pod \ + memcached_delete.pod \ + memcached_dump.pod \ + memcached_flush.pod \ + memcached_flush_buffers.pod \ + memcached_generate_hash_value.pod \ + memcached_get.pod \ + memcached_memory_allocators.pod \ + memcached_pool.pod \ + memcached_quit.pod \ + memcached_result_st.pod \ + memcached_sasl.pod \ + memcached_server_st.pod \ + memcached_servers.pod \ + memcached_set.pod \ + memcached_stats.pod \ + memcached_strerror.pod \ + memcached_user_data.pod \ + memcached_verbosity.pod \ + memcached_version.pod \ + memcapable.pod \ + memcat.pod \ + memcp.pod \ + memdump.pod \ + memerror.pod \ + memflush.pod \ + memrm.pod \ + memaslap.pod \ + memslap.pod \ + memstat.pod +EXTRA_DIST+= $(POD_FILES) + +man_MANS = \ + hashkit_clone.3 \ + hashkit_crc32.3 \ + hashkit_create.3 \ + hashkit_fnv1_32.3 \ + hashkit_fnv1_64.3 \ + hashkit_fnv1a_32.3 \ + hashkit_fnv1a_64.3 \ + hashkit_free.3 \ + hashkit_functions.3 \ + hashkit_hsieh.3 \ + hashkit_is_allocated.3 \ + hashkit_jenkins.3 \ + hashkit_md5.3 \ + hashkit_murmur.3 \ + hashkit_value.3 \ + libmemcached.3 \ + libmemcached_examples.3 \ + memcached_add.3 \ + memcached_add_by_key.3 \ + memcached_analyze.3 \ + memcached_append.3 \ + memcached_append_by_key.3 \ + memcached_behavior_get.3 \ + memcached_behavior_set.3 \ + memcached_callback_get.3 \ + memcached_callback_set.3 \ + memcached_cas.3 \ + memcached_cas_by_key.3 \ + memcached_clone.3 \ + memcached_create.3 \ + memcached_decrement.3 \ + memcached_decrement_with_initial.3 \ + memcached_delete.3 \ + memcached_delete_by_key.3 \ + memcached_dump.3 \ + memcached_fetch.3 \ + memcached_fetch_execute.3 \ + memcached_fetch_result.3 \ + memcached_flush_buffers.3 \ + memcached_free.3 \ + memcached_generate_hash_value.3 \ + memcached_get.3 \ + memcached_get_by_key.3 \ + memcached_get_memory_allocators.3 \ + memcached_get_user_data.3 \ + memcached_increment.3 \ + memcached_increment_with_initial.3 \ + memcached_lib_version.3 \ + memcached_mget.3 \ + memcached_mget_by_key.3 \ + memcached_mget_execute.3 \ + memcached_mget_execute_by_key.3 \ + memcached_prepend.3 \ + memcached_prepend_by_key.3 \ + memcached_quit.3 \ + memcached_replace.3 \ + memcached_replace_by_key.3 \ + memcached_server_add.3 \ + memcached_server_count.3 \ + memcached_server_cursor.3 \ + memcached_server_list.3 \ + memcached_server_list_append.3 \ + memcached_server_list_count.3 \ + memcached_server_list_free.3 \ + memcached_server_push.3 \ + memcached_servers_parse.3 \ + memcached_set.3 \ + memcached_set_by_key.3 \ + memcached_set_memory_allocators.3 \ + memcached_set_user_data.3 \ + memcached_stat.3 \ + memcached_stat_execute.3 \ + memcached_stat_get_keys.3 \ + memcached_stat_get_value.3 \ + memcached_stat_servername.3 \ + memcached_strerror.3 \ + memcached_verbosity.3 \ + memcached_version.3 \ + memcapable.1 \ + memcat.1 \ + memcp.1 \ + memdump.1 \ + memerror.1 \ + memflush.1 \ + memrm.1 \ + memaslap.1 \ + memslap.1 \ + memstat.1 + +if HAVE_SASL +POD_FILES+= memcached_sasl.pod +man_MANS+= \ + memcached_destroy_sasl_auth_data.3 \ + memcached_get_sasl_callbacks.3 \ + memcached_sasl_set_auth_data.3 \ + memcached_set_sasl_callbacks.3 + +HTML_FILES+= \ + memcached_destroy_sasl_auth_data.html \ + memcached_get_sasl_callbacks.html \ + memcached_sasl_set_auth_data.html \ + memcached_set_sasl_callbacks.html + + +SASL_PAGES= \ + memcached_destroy_sasl_auth_data.pop \ + memcached_get_sasl_callbacks.pop \ + memcached_sasl_set_auth_data.pop \ + memcached_set_sasl_callbacks.pop +BUILT_SOURCES += ${SASL_PAGES} + +${SASL_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_sasl.pod ${top_builddir}/docs/$@ + +endif + +if BUILD_LIBMEMCACHEDUTIL +man_MANS+= \ + libmemcachedutil.3 \ + memcached_pool_behavior_set.3 \ + memcached_pool_behavior_get.3 \ + memcached_pool_create.3 \ + memcached_pool_destroy.3 \ + memcached_pool_push.3 \ + memcached_pool_pop.3 +endif + + +${CREATE_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_create.pod ${top_builddir}/docs/$@ + +${SET_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_set.pod ${top_builddir}/docs/$@ + +${DELETE_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_delete.pod ${top_builddir}/docs/$@ + +${AUTO_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_auto.pod ${top_builddir}/docs/$@ + +${GET_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_get.pod ${top_builddir}/docs/$@ + +${SERVER_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_servers.pod ${top_builddir}/docs/$@ + +${SERVER_ST_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_server_st.pod ${top_builddir}/docs/$@ + +${GENERIC_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/$*.pod ${top_builddir}/docs/$@ + +${BEHAVIOR_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_behavior.pod ${top_builddir}/docs/$@ + +${CALLBACK_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_callback.pod ${top_builddir}/docs/$@ + +${STATS_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_stats.pod ${top_builddir}/docs/$@ + +${RESULT_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_result_st.pod ${top_builddir}/docs/$@ + +${VERSION_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_version.pod ${top_builddir}/docs/$@ + +${MEMORY_ALLOCATORS_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_memory_allocators.pod ${top_builddir}/docs/$@ + +${USER_DATA_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_user_data.pod ${top_builddir}/docs/$@ + +${POOL_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_pool.pod ${top_builddir}/docs/$@ + +${HASHKIT_CREATE_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/hashkit_create.pod ${top_builddir}/docs/$@ + + +${HASHKIT_FUNCTIONS_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/hashkit_functions.pod ${top_builddir}/docs/$@ + +${HASHKIT_ST_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/hashkit_value.pod ${top_builddir}/docs/$@ + +test-docs: $(POD_FILES) + ${PODCHECKER} $(top_srcdir)/docs/$? + +html-local: html-pages html-index + +html-pages: $(HTML_FILES) + +html-index: html-pages + perl make_index.pl *.html > index.html + +SUFFIXES= .pop .pod .html .1 .3 + +.pop: ${_set} + +.pop.html: + pod2html --infile=$< > $@ + +.pop.1: + ${POD2MAN} -c "$*" -r "" -s 1 $< > $@ + +.pop.3: + ${POD2MAN} -c "$*" -r "" -s 3 $< > $@ diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..f90f68b0 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,253 @@ +# -*- coding: utf-8 -*- +# +# libmemcached documentation build configuration file, created by +# sphinx-quickstart on Sun Mar 6 12:05:53 2011. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = [] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'libmemcached' +copyright = u'2011, Brian Aker' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.47' +# The full version, including alpha/beta/rc tags. +release = '0.47' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ['_build'] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'default' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'libmemcacheddoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'libmemcached.tex', u'libmemcached Documentation', + u'Brian Aker', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('hashkit_create', 'hashkit_create', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('hashkit_functions', 'hashkit_functions', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('hashkit_value', 'hashkit_value', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('libmemcached_examples', 'libmemcached_examples', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('libmemcached', 'libmemcached', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('libmemcachedutil', 'libmemcachedutil', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_analyze', 'memcached_analyze', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_auto', 'memcached_auto', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_behavior', 'memcached_behavior', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_callback', 'memcached_callback', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_create', 'memcached_create', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_delete', 'memcached_delete', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_dump', 'memcached_dump', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_flush_buffers', 'memcached_flush_buffers', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_flush', 'memcached_flush', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_generate_hash_value', 'memcached_generate_hash_value', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_get', 'memcached_get', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_memory_allocators', 'memcached_memory_allocators', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_pool', 'memcached_pool', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_quit', 'memcached_quit', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_result_st', 'memcached_result_st', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_sasl', 'memcached_sasl', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_servers', 'memcached_servers', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_server_st', 'memcached_server_st', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_set', 'memcached_set', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_stats', 'memcached_stats', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_strerror', 'memcached_strerror', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_user_data', 'memcached_user_data', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_verbosity', 'memcached_verbosity', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcached_version', 'memcached_version', u'libmemcached Documentation', [u'Brian Aker'], 3), + ('memcapable', 'memcapable', u'libmemcached Documentation', [u'Brian Aker'], 1), + ('memcat', 'memcat', u'libmemcached Documentation', [u'Brian Aker'], 1), + ('memcp', 'memcp', u'libmemcached Documentation', [u'Brian Aker'], 1), + ('memdump', 'memdump', u'libmemcached Documentation', [u'Brian Aker'], 1), + ('memerror', 'memerror', u'libmemcached Documentation', [u'Brian Aker'], 1), + ('memflush', 'memflush', u'libmemcached Documentation', [u'Brian Aker'], 1), + ('memrm', 'memrm', u'libmemcached Documentation', [u'Brian Aker'], 1), + ('memslap', 'memslap', u'libmemcached Documentation', [u'Brian Aker'], 1), + ('memstat', 'memstat', u'libmemcached Documentation', [u'Brian Aker'], 1), + ] diff --git a/docs/hashkit_create.pod b/docs/hashkit_create.pod deleted file mode 100644 index bcd5390c..00000000 --- a/docs/hashkit_create.pod +++ /dev/null @@ -1,57 +0,0 @@ -=head1 NAME - -hashkit_create, hashkit_clone, hashkit_free, hashkit_is_allocated - -Create and destroy hashkit objects - -=head1 LIBRARY - -C Library for hashing algorithms (libhashkit, -lhashkit) - -=head1 SYNOPSIS - - #include - - hashkit_st *hashkit_create(hashkit_st *hash); - - hashkit_st *hashkit_clone(hashkit_st *destination, const hashkit_st *ptr); - - void hashkit_free(hashkit_st *hash); - - bool hashkit_is_allocated(const hashkit_st *hash); - -=head1 DESCRIPTION - -The hashkit_create() function initializes a hashkit object for use. If -you pass a NULL argument for hash, then the memory for the object is -allocated. If you specify a pre-allocated piece of memory, that is -initialized for use. - -The hashkit_clone() function initializes a hashkit object much like -hashkit_create(), but instead of using default settings it will use -the settings of the ptr hashkit object. - -The hashkit_free() frees any resources being consumed by the hashkit -objects that were initialized with hashkit_create() or hashkit_clone(). - -The hashkit_is_allocated() reports where the memory was allocated -for a hashkit object. - -=head1 RETURN VALUE - -hashkit_create() and hashkit_clone() will return NULL on failure or -non-NULL on success. - -hashkit_is_allocated() returns true if the memory for the hashkit -object was allocated inside of hashkit_create() or hashkit_clone(), -otherwise it is false and was user-supplied memory. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=cut diff --git a/docs/hashkit_create.rst b/docs/hashkit_create.rst new file mode 100644 index 00000000..4fa59746 --- /dev/null +++ b/docs/hashkit_create.rst @@ -0,0 +1,90 @@ +.. highlight:: perl + + +**** +NAME +**** + + +hashkit_create, hashkit_clone, hashkit_free, hashkit_is_allocated - +Create and destroy hashkit objects + + +******* +LIBRARY +******* + + +C Library for hashing algorithms (libhashkit, -lhashkit) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + hashkit_st *hashkit_create(hashkit_st *hash); + + hashkit_st *hashkit_clone(hashkit_st *destination, const hashkit_st *ptr); + + void hashkit_free(hashkit_st *hash); + + bool hashkit_is_allocated(const hashkit_st *hash); + + + +*********** +DESCRIPTION +*********** + + +The hashkit_create() function initializes a hashkit object for use. If +you pass a NULL argument for hash, then the memory for the object is +allocated. If you specify a pre-allocated piece of memory, that is +initialized for use. + +The hashkit_clone() function initializes a hashkit object much like +hashkit_create(), but instead of using default settings it will use +the settings of the ptr hashkit object. + +The hashkit_free() frees any resources being consumed by the hashkit +objects that were initialized with hashkit_create() or hashkit_clone(). + +The hashkit_is_allocated() reports where the memory was allocated +for a hashkit object. + + +************ +RETURN VALUE +************ + + +hashkit_create() and hashkit_clone() will return NULL on failure or +non-NULL on success. + +hashkit_is_allocated() returns true if the memory for the hashkit +object was allocated inside of hashkit_create() or hashkit_clone(), +otherwise it is false and was user-supplied memory. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + diff --git a/docs/hashkit_functions.pod b/docs/hashkit_functions.pod deleted file mode 100644 index 4af84182..00000000 --- a/docs/hashkit_functions.pod +++ /dev/null @@ -1,54 +0,0 @@ -=head1 NAME - -hashkit_default, hashkit_fnv1_64, hashkit_fnv1a_64, hashkit_fnv1_32, -hashkit_fnv1a_32, hashkit_crc32, hashkit_hsieh, hashkit_murmur, -hashkit_jenkins, hashkit_md5 - Various hash functions to use for -calculating values for keys - -=head1 LIBRARY - -C Library for hashing algorithms (libhashkit, -lhashkit) - -=head1 SYNOPSIS - - #include - - uint32_t hashkit_default(const char *key, size_t key_length); - uint32_t hashkit_fnv1_64(const char *key, size_t key_length); - uint32_t hashkit_fnv1a_64(const char *key, size_t key_length); - uint32_t hashkit_fnv1_32(const char *key, size_t key_length); - uint32_t hashkit_fnv1a_32(const char *key, size_t key_length); - uint32_t hashkit_crc32(const char *key, size_t key_length); - uint32_t hashkit_hsieh(const char *key, size_t key_length); - uint32_t hashkit_murmur(const char *key, size_t key_length); - uint32_t hashkit_jenkins(const char *key, size_t key_length); - uint32_t hashkit_md5(const char *key, size_t key_length); - -=head1 DESCRIPTION - -These functions generate hash values from a key using a variety of -algorithms. These functions can be used standalone, or as arguments -to hashkit_set_hash_fn(3) or hashkit_set_continuum_hash_fn(3). - -The hashkit_hsieh() is only available if the library is built with -the appropriate flag enabled. - -=head1 RETURN VALUE - -A 32-bit hash value. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3) -hashkit_set_continuum_hash_fn(3) - -=cut diff --git a/docs/hashkit_functions.rst b/docs/hashkit_functions.rst new file mode 100644 index 00000000..883f6e1d --- /dev/null +++ b/docs/hashkit_functions.rst @@ -0,0 +1,91 @@ +.. highlight:: perl + + +**** +NAME +**** + + +hashkit_default, hashkit_fnv1_64, hashkit_fnv1a_64, hashkit_fnv1_32, +hashkit_fnv1a_32, hashkit_crc32, hashkit_hsieh, hashkit_murmur, +hashkit_jenkins, hashkit_md5 - Various hash functions to use for +calculating values for keys + + +******* +LIBRARY +******* + + +C Library for hashing algorithms (libhashkit, -lhashkit) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + uint32_t hashkit_default(const char *key, size_t key_length); + uint32_t hashkit_fnv1_64(const char *key, size_t key_length); + uint32_t hashkit_fnv1a_64(const char *key, size_t key_length); + uint32_t hashkit_fnv1_32(const char *key, size_t key_length); + uint32_t hashkit_fnv1a_32(const char *key, size_t key_length); + uint32_t hashkit_crc32(const char *key, size_t key_length); + uint32_t hashkit_hsieh(const char *key, size_t key_length); + uint32_t hashkit_murmur(const char *key, size_t key_length); + uint32_t hashkit_jenkins(const char *key, size_t key_length); + uint32_t hashkit_md5(const char *key, size_t key_length); + + + +*********** +DESCRIPTION +*********** + + +These functions generate hash values from a key using a variety of +algorithms. These functions can be used standalone, or as arguments +to hashkit_set_hash_fn(3) or hashkit_set_continuum_hash_fn(3). + +The hashkit_hsieh() is only available if the library is built with +the appropriate flag enabled. + + +************ +RETURN VALUE +************ + + +A 32-bit hash value. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +hashkit_create(3) hashkit_value(3) hashkit_set_hash_fn(3) +hashkit_set_continuum_hash_fn(3) + diff --git a/docs/hashkit_value.pod b/docs/hashkit_value.pod deleted file mode 100644 index db594bc9..00000000 --- a/docs/hashkit_value.pod +++ /dev/null @@ -1,41 +0,0 @@ -=head1 NAME - -hashkit_value - Generate a value for the given key - -=head1 LIBRARY - -C Library for hashing algorithms (libhashkit, -lhashkit) - -=head1 SYNOPSIS - - #include - - uint32_t hashkit_value(hashkit_st *hash, - const char *key, - size_t key_length); - -=head1 DESCRIPTION - -The hashkit_value() function generates a 32-bit hash value from the -given key and key_length. The hash argument is an initialized hashkit -object, and distribution type and hash function is used from this -object while generating the value. - -=head1 RETURN VALUE - -A 32-bit hash value. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -hashkit_create(3) hashkit_set_distribution(3) hashkit_set_hash_fn(3) - -=cut diff --git a/docs/hashkit_value.rst b/docs/hashkit_value.rst new file mode 100644 index 00000000..5c34b157 --- /dev/null +++ b/docs/hashkit_value.rst @@ -0,0 +1,78 @@ +.. highlight:: perl + + +**** +NAME +**** + + +hashkit_value - Generate a value for the given key + + +******* +LIBRARY +******* + + +C Library for hashing algorithms (libhashkit, -lhashkit) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + uint32_t hashkit_value(hashkit_st *hash, + const char *key, + size_t key_length); + + + +*********** +DESCRIPTION +*********** + + +The hashkit_value() function generates a 32-bit hash value from the +given key and key_length. The hash argument is an initialized hashkit +object, and distribution type and hash function is used from this +object while generating the value. + + +************ +RETURN VALUE +************ + + +A 32-bit hash value. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +hashkit_create(3) hashkit_set_distribution(3) hashkit_set_hash_fn(3) + diff --git a/docs/include.am b/docs/include.am new file mode 100644 index 00000000..97026c3c --- /dev/null +++ b/docs/include.am @@ -0,0 +1,535 @@ +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + +EXTRA_DIST+= \ + docs/_static \ + docs/_templates \ + docs/conf.py \ + ${top_srcdir}/docs/*.rst + +AUTO_PAGES= \ + memcached_increment.pop \ + memcached_increment_with_initial.pop \ + memcached_decrement.pop \ + memcached_decrement_with_initial.pop +BUILT_SOURCES += ${AUTO_PAGES} + +BEHAVIOR_PAGES= \ + memcached_behavior_get.pop \ + memcached_behavior_set.pop +BUILT_SOURCES += ${BEHAVIOR_PAGES} + +CALLBACK_PAGES= \ + memcached_callback_get.pop \ + memcached_callback_set.pop +BUILT_SOURCES += ${CALLBACK_PAGES} + +CREATE_PAGES= \ + memcached_clone.pop \ + memcached_create.pop \ + memcached_free.pop \ + memcached_servers_reset.pop +BUILT_SOURCES += ${CREATE_PAGES} + +DELETE_PAGES= \ + memcached_delete.pop \ + memcached_delete_by_key.pop +BUILT_SOURCES += ${DELETE_PAGES} + +GENERIC_PAGES= \ + libmemcached.pop \ + libmemcached_examples.pop \ + libmemcachedutil.pop \ + memcached_analyze.pop \ + memcached_dump.pop \ + memcached_flush.pop \ + memcached_flush_buffers.pop \ + memcached_generate_hash_value.pop \ + memcached_quit.pop \ + memcached_strerror.pop \ + memcached_verbosity.pop \ + memcapable.pop \ + memcat.pop \ + memcp.pop \ + memdump.pop \ + memerror.pop \ + memflush.pop \ + memrm.pop \ + memaslap.pop \ + memslap.pop \ + memstat.pop +BUILT_SOURCES += ${GENERIC_PAGES} + +GET_PAGES= \ + memcached_get.pop \ + memcached_get_by_key.pop \ + memcached_fetch_result.pop \ + memcached_fetch_execute.pop \ + memcached_mget.pop \ + memcached_mget_by_key.pop \ + memcached_mget_execute.pop \ + memcached_mget_execute_by_key.pop \ + memcached_fetch.pop +BUILT_SOURCES += ${GET_PAGES} + +MEMORY_ALLOCATORS_PAGES= \ + memcached_get_memory_allocators.pop \ + memcached_set_memory_allocators.pop \ + memcached_set_memory_allocators_context.pop +BUILT_SOURCES += ${MEMORY_ALLOCATORS_PAGES} + +POOL_PAGES= \ + memcached_pool_behavior_get.pop \ + memcached_pool_behavior_set.pop \ + memcached_pool_create.pop \ + memcached_pool_destroy.pop \ + memcached_pool_pop.pop \ + memcached_pool_push.pop +BUILT_SOURCES += ${POOL_PAGES} + +RESULT_PAGES= \ + memcached_result_cas.pop \ + memcached_result_create.pop \ + memcached_result_flags.pop \ + memcached_result_free.pop \ + memcached_result_key_length.pop \ + memcached_result_key_value.pop \ + memcached_result_length.pop \ + memcached_result_st.pop \ + memcached_result_value.pop +BUILT_SOURCES += ${RESULT_PAGES} + + +SERVER_PAGES= \ + memcached_server_count.pop \ + memcached_server_cursor.pop \ + memcached_server_list.pop \ + memcached_server_add.pop \ + memcached_server_add_unix_socket.pop \ + memcached_server_push.pop +BUILT_SOURCES += ${SERVER_PAGES} + +SERVER_ST_PAGES= \ + memcached_server_list_free.pop \ + memcached_server_list_count.pop \ + memcached_server_list_append.pop \ + memcached_servers_parse.pop +BUILT_SOURCES += ${SERVER_ST_PAGES} + +SET_PAGES= \ + memcached_set.pop \ + memcached_set_by_key.pop \ + memcached_cas.pop \ + memcached_cas_by_key.pop \ + memcached_replace.pop \ + memcached_replace_by_key.pop \ + memcached_add.pop \ + memcached_add_by_key.pop \ + memcached_prepend.pop \ + memcached_prepend_by_key.pop \ + memcached_append.pop \ + memcached_append_by_key.pop +BUILT_SOURCES += ${SET_PAGES} + +STATS_PAGES= \ + memcached_stat.pop \ + memcached_stat_execute.pop\ + memcached_stat_get_keys.pop\ + memcached_stat_get_value.pop \ + memcached_stat_servername.pop +BUILT_SOURCES += ${STATS_PAGES} + +USER_DATA_PAGES= \ + memcached_get_user_data.pop \ + memcached_set_user_data.pop +BUILT_SOURCES += ${USER_DATA_PAGES} + +VERSION_PAGES= \ + memcached_version.pop \ + memcached_lib_version.pop +BUILT_SOURCES += ${VERSION_PAGES} + + +# +# These are for libhashkit +# +HASHKIT_CREATE_PAGES= \ + hashkit_is_allocated.pop \ + hashkit_create.pop \ + hashkit_clone.pop \ + hashkit_free.pop +BUILT_SOURCES += ${HASHKIT_CREATE_PAGES} + +HASHKIT_FUNCTIONS_PAGES= \ + hashkit_crc32.pop \ + hashkit_fnv1_32.pop \ + hashkit_fnv1_64.pop \ + hashkit_fnv1a_32.pop \ + hashkit_fnv1a_64.pop \ + hashkit_functions.pop \ + hashkit_hsieh.pop \ + hashkit_jenkins.pop \ + hashkit_md5.pop \ + hashkit_murmur.pop +BUILT_SOURCES += ${HASHKIT_FUNCTIONS_PAGES} + +HASHKIT_ST_PAGES= \ + hashkit_value.pop +BUILT_SOURCES += ${HASHKIT_ST_PAGES} + +# Makefile for Sphinx documentation +# + +SPHINXOPTS = ${SPHINX_WARNINGS} -D release=${PANDORA_RELEASE_VERSION} +PAPER = +SPHINX_BUILDDIR = ${top_builddir}/docs + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(SPHINX_BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) ${top_srcdir}/docs + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +if HAVE_RECENT_SPHINX + +man_MANS+= \ + docs/man/hashkit_create.3 \ + docs/man/hashkit_functions.3 \ + docs/man/hashkit_value.3 \ + docs/man/libmemcached_examples.3 \ + docs/man/libmemcached.3 \ + docs/man/libmemcachedutil.3 \ + docs/man/memcached_analyze.3 \ + docs/man/memcached_auto.3 \ + docs/man/memcached_behavior.3 \ + docs/man/memcached_callback.3 \ + docs/man/memcached_create.3 \ + docs/man/memcached_delete.3 \ + docs/man/memcached_dump.3 \ + docs/man/memcached_flush_buffers.3 \ + docs/man/memcached_flush.3 \ + docs/man/memcached_generate_hash_value.3 \ + docs/man/memcached_get.3 \ + docs/man/memcached_memory_allocators.3 \ + docs/man/memcached_pool.3 \ + docs/man/memcached_quit.3 \ + docs/man/memcached_result_st.3 \ + docs/man/memcached_sasl.3 \ + docs/man/memcached_servers.3 \ + docs/man/memcached_server_st.3 \ + docs/man/memcached_set.3 \ + docs/man/memcached_stats.3 \ + docs/man/memcached_strerror.3 \ + docs/man/memcached_user_data.3 \ + docs/man/memcached_verbosity.3 \ + docs/man/memcached_version.3 \ + docs/man/memcapable.1 \ + docs/man/memcat.1 \ + docs/man/memcp.1 \ + docs/man/memdump.1 \ + docs/man/memerror.1 \ + docs/man/memflush.1 \ + docs/man/memrm.1 \ + docs/man/memslap.1 \ + docs/man/memstat.1 + +DISTCLEANFILES+= \ + docs/man/hashkit_create.3 \ + docs/man/hashkit_functions.3 \ + docs/man/hashkit_value.3 \ + docs/man/libmemcached_examples.3 \ + docs/man/libmemcached.3 \ + docs/man/libmemcachedutil.3 \ + docs/man/memcached_analyze.3 \ + docs/man/memcached_auto.3 \ + docs/man/memcached_behavior.3 \ + docs/man/memcached_callback.3 \ + docs/man/memcached_create.3 \ + docs/man/memcached_delete.3 \ + docs/man/memcached_dump.3 \ + docs/man/memcached_flush_buffers.3 \ + docs/man/memcached_flush.3 \ + docs/man/memcached_generate_hash_value.3 \ + docs/man/memcached_get.3 \ + docs/man/memcached_memory_allocators.3 \ + docs/man/memcached_pool.3 \ + docs/man/memcached_quit.3 \ + docs/man/memcached_result_st.3 \ + docs/man/memcached_sasl.3 \ + docs/man/memcached_servers.3 \ + docs/man/memcached_server_st.3 \ + docs/man/memcached_set.3 \ + docs/man/memcached_stats.3 \ + docs/man/memcached_strerror.3 \ + docs/man/memcached_user_data.3 \ + docs/man/memcached_verbosity.3 \ + docs/man/memcached_version.3 \ + docs/man/memcapable.1 \ + docs/man/memcat.1 \ + docs/man/memcp.1 \ + docs/man/memdump.1 \ + docs/man/memerror.1 \ + docs/man/memflush.1 \ + docs/man/memrm.1 \ + docs/man/memslap.1 \ + docs/man/memstat.1 + +man_MANS+= \ + memcached_destroy_sasl_auth_data.3 \ + memcached_get_sasl_callbacks.3 \ + memcached_sasl_set_auth_data.3 \ + memcached_set_sasl_callbacks.3 + +HTML_FILES+= \ + memcached_destroy_sasl_auth_data.html \ + memcached_get_sasl_callbacks.html \ + memcached_sasl_set_auth_data.html \ + memcached_set_sasl_callbacks.html + +SASL_PAGES= \ + memcached_destroy_sasl_auth_data.rst \ + memcached_get_sasl_callbacks.rst \ + memcached_sasl_set_auth_data.rst \ + memcached_set_sasl_callbacks.rst +BUILT_SOURCES += ${SASL_PAGES} + +docs/man/hashkit_create.3: man +docs/man/hashkit_functions.3: man +docs/man/hashkit_value.3: man +docs/man/libmemcached_examples.3: man +docs/man/libmemcached.3: man +docs/man/libmemcachedutil.3: man +docs/man/memcached_analyze.3: man +docs/man/memcached_auto.3: man +docs/man/memcached_behavior.3: man +docs/man/memcached_callback.3: man +docs/man/memcached_create.3: man +docs/man/memcached_delete.3: man +docs/man/memcached_dump.3: man +docs/man/memcached_flush_buffers.3: man +docs/man/memcached_flush.3: man +docs/man/memcached_generate_hash_value.3: man +docs/man/memcached_get.3: man +docs/man/memcached_memory_allocators.3: man +docs/man/memcached_pool.3: man +docs/man/memcached_quit.3: man +docs/man/memcached_result_st.3: man +docs/man/memcached_sasl.3: man +docs/man/memcached_servers.3: man +docs/man/memcached_server_st.3: man +docs/man/memcached_set.3: man +docs/man/memcached_stats.3: man +docs/man/memcached_strerror.3: man +docs/man/memcached_user_data.3: man +docs/man/memcached_verbosity.3: man +docs/man/memcached_version.3: man +docs/man/memcapable.1: man +docs/man/memcat.1: man +docs/man/memcp.1: man +docs/man/memdump.1: man +docs/man/memerror.1: man +docs/man/memflush.1: man +docs/man/memrm.1: man +docs/man/memslap.1: man +docs/man/memstat.1: man + +endif + +if HAVE_SPHINX +sphinx-help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +html-local: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(SPHINX_BUILDDIR)/html." + +dirhtml: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(SPHINX_BUILDDIR)/dirhtml." + +singlehtml: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(SPHINX_BUILDDIR)/singlehtml." + +pickle: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(SPHINX_BUILDDIR)/htmlhelp." + +qthelp: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(SPHINX_BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(SPHINX_BUILDDIR)/qthelp/Drizzle.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(SPHINX_BUILDDIR)/qthelp/Drizzle.qhc" + +devhelp: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/Drizzle" + @echo "# ln -s $(SPHINX_BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Drizzle" + @echo "# devhelp" + +epub: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(SPHINX_BUILDDIR)/epub." + +latex: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(SPHINX_BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: latex + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(SPHINX_BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(SPHINX_BUILDDIR)/latex." + +text: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(SPHINX_BUILDDIR)/text." + +man: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(SPHINX_BUILDDIR)/man." + +changes: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/changes + @echo + @echo "The overview file is in $(SPHINX_BUILDDIR)/changes." + +linkcheck: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(SPHINX_BUILDDIR)/linkcheck/output.txt." + +doctest: + PYTHONPATH=${top_srcdir}/docs $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(SPHINX_BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(SPHINX_BUILDDIR)/doctest/output.txt." +endif + +${CREATE_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_create.pod ${top_builddir}/docs/$@ + +${SET_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_set.pod ${top_builddir}/docs/$@ + +${DELETE_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_delete.pod ${top_builddir}/docs/$@ + +${AUTO_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_auto.pod ${top_builddir}/docs/$@ + +${GET_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_get.pod ${top_builddir}/docs/$@ + +${SERVER_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_servers.pod ${top_builddir}/docs/$@ + +${SERVER_ST_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_server_st.pod ${top_builddir}/docs/$@ + +${GENERIC_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/$*.pod ${top_builddir}/docs/$@ + +${BEHAVIOR_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_behavior.pod ${top_builddir}/docs/$@ + +${CALLBACK_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_callback.pod ${top_builddir}/docs/$@ + +${STATS_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_stats.pod ${top_builddir}/docs/$@ + +${RESULT_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_result_st.pod ${top_builddir}/docs/$@ + +${VERSION_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_version.pod ${top_builddir}/docs/$@ + +${MEMORY_ALLOCATORS_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_memory_allocators.pod ${top_builddir}/docs/$@ + +${USER_DATA_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_user_data.pod ${top_builddir}/docs/$@ + +${POOL_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_pool.pod ${top_builddir}/docs/$@ + +${HASHKIT_CREATE_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/hashkit_create.pod ${top_builddir}/docs/$@ + + +${HASHKIT_FUNCTIONS_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/hashkit_functions.pod ${top_builddir}/docs/$@ + +${HASHKIT_ST_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/hashkit_value.pod ${top_builddir}/docs/$@ + +${SASL_PAGES}: + @rm -f $@ + ln -s ${top_srcdir}/docs/memcached_sasl.pod ${top_builddir}/docs/$@ + + diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..316eba02 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,60 @@ +.. libmemcached documentation master file, created by + sphinx-quickstart on Sun Mar 6 12:05:53 2011. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to libmemcached's documentation! +======================================== + +Contents: + +.. toctree:: + :maxdepth: 2 + + hashkit_create.rst + hashkit_functions.rst + hashkit_value.rst + libmemcached_examples.rst + libmemcached.rst + libmemcachedutil.rst + memcached_analyze.rst + memcached_auto.rst + memcached_behavior.rst + memcached_callback.rst + memcached_create.rst + memcached_delete.rst + memcached_dump.rst + memcached_flush_buffers.rst + memcached_flush.rst + memcached_generate_hash_value.rst + memcached_get.rst + memcached_memory_allocators.rst + memcached_pool.rst + memcached_quit.rst + memcached_result_st.rst + memcached_sasl.rst + memcached_servers.rst + memcached_server_st.rst + memcached_set.rst + memcached_stats.rst + memcached_strerror.rst + memcached_user_data.rst + memcached_verbosity.rst + memcached_version.rst + memcapable.rst + memcat.rst + memcp.rst + memdump.rst + memerror.rst + memflush.rst + memrm.rst + memslap.rst + memstat.rst + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/docs/libmemcached.pod b/docs/libmemcached.pod deleted file mode 100644 index 46fc2da0..00000000 --- a/docs/libmemcached.pod +++ /dev/null @@ -1,127 +0,0 @@ -=head1 NAME - -libmemcached - Client library for memcached - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - -=head1 DESCRIPTION - -"Memcached is a high-performance, distributed memory object caching -system, generic in nature, but intended for use in speeding up dynamic web -applications by alleviating database load." L - -B is a small, thread-safe client library for the -memcached protocol. The code has all been written with an eye to allow -for both web and embedded usage. It handles the work behind routing -particular keys to specific servers that you specify (and values are -matched based on server order as supplied by you). It implements both -a modula and consistent method of object distribution. - -There are multiple implemented routing and hashing methods. See the -memcached_behavior_set() manpage. - -All operations are performed against a C structure. -These structures can either be dynamically allocated or statically -allocated and then initialized by memcached_create(). Functions have been -written in order to encapsulate the C. It is not -recommended that you operate directly against the structure. - -Nearly all functions return a C value. -This value can be translated to a printable string with memcached_strerror(3). - -Partitioning based on keys is supported in the library. Using the key partioning -functions it is possible to group sets of object onto servers. - -C structures are thread-safe, but each thread must -contain its own structure (that is, if you want to share these among -threads you must provide your own locking). No global variables are -used in this library. - -If you are working with GNU autotools you will want to add the following to -your configure.ac to properly include libmemcached in your application. - -PKG_CHECK_MODULES(DEPS, libmemcached >= 0.8.0) -AC_SUBST(DEPS_CFLAGS) -AC_SUBST(DEPS_LIBS) - -Some features of the library must be enabled through memcached_behavior_set(). - -Hope you enjoy it! - -=head1 CONSTANTS - -A number of constants have been provided for in the library. - -=over 4 - -=item MEMCACHED_DEFAULT_PORT - -The default port used by memcached(3). - -=item MEMCACHED_MAX_KEY - -Default maximum size of a key (which includes the null pointer). Master keys -have no limit, this only applies to keys used for storage. - -=item MEMCACHED_MAX_KEY - -Default size of key (which includes the null pointer). - -=item MEMCACHED_STRIDE - -This is the "stride" used in the consistent hash used between replicas. - -=item MEMCACHED_MAX_HOST_LENGTH - -Maximum allowed size of the hostname. - -=item MEMCACHED_VERSION_STRING - -String value of libmemcached version such as "1.23.4" - -=item MEMCACHED_MAJOR_VERSION - -Major version value. Such as 1.23.4, would be 1 - -=item MEMCACHED_MINOR_VERSION - -Major version value. Such as 1.23.4, would be 23 - -=item MEMCACHED_MICRO_VERSION - -Major version value. Such as 1.23.4, would be 4 - - -=back - - - -=head1 THREADS AND PROCESSES - -When using threads or forked processes it is important to keep an instance -of C per process or thread. Without creating your own locking -structures you can not share a single C. You can though call -memcached_quit(3) on a C and then use the resulting cloned -structure. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached_examples(3) libmemcached(1) memcat(1) memcp(1) memflush(1) memrm(1) memslap(1) memstat(1) memcached_fetch(3) memcached_replace(3) memcached_server_list_free(3) libmemcached_examples(3) memcached_clone(3) memcached_free(3) memcached_server_add(3) memcached_server_push(3) memcached_add(3) memcached_get(3) memcached_server_count(3) memcached_servers_parse(3) memcached_create(3) memcached_increment(3) memcached_server_list(3) memcached_set(3) memcached_decrement(3) memcached_mget(3) memcached_server_list_append(3) memcached_strerror(3) memcached_delete(3) memcached_quit(3) memcached_server_list_count(3) memcached_verbosity(3) memcached_server_add_unix_socket(3) memcached_result_create(3) memcached_result_free(3) memcached_result_key_value(3) memcached_result_key_length(3) memcached_result_value(3) memcached_result_length(3) memcached_result_flags(3) memcached_result_cas(3) memcached_result_st(3) memcached_append(3) memcached_prepend(3) memcached_fetch_result(3) memerror(1) memcached_get_by_key(3) memcached_mget_by_key(3) memcached_delete_by_key(3) memcached_fetch_execute(3) memcached_callback_get(3) memcached_callback_set(3) memcached_version(3) memcached_lib_version(3) memcached_result_set_value(3) memcached_dump(3) memdump(1) memcached_set_memory_allocators(3) memcached_get_memory_allocators(3) memcached_get_user_data(3) memcached_set_user_data(3) - -=cut - diff --git a/docs/libmemcached.rst b/docs/libmemcached.rst new file mode 100644 index 00000000..db88f68c --- /dev/null +++ b/docs/libmemcached.rst @@ -0,0 +1,179 @@ +.. highlight:: perl + + +**** +NAME +**** + + +libmemcached - Client library for memcached + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + + +*********** +DESCRIPTION +*********** + + +"Memcached is a high-performance, distributed memory object caching +system, generic in nature, but intended for use in speeding up dynamic web +applications by alleviating database load." `http://danga.com/memcached/ `_ + +\ **libmemcached**\ is a small, thread-safe client library for the +memcached protocol. The code has all been written with an eye to allow +for both web and embedded usage. It handles the work behind routing +particular keys to specific servers that you specify (and values are +matched based on server order as supplied by you). It implements both +a modula and consistent method of object distribution. + +There are multiple implemented routing and hashing methods. See the +memcached_behavior_set() manpage. + +All operations are performed against a \ ``memcached_st``\ structure. +These structures can either be dynamically allocated or statically +allocated and then initialized by memcached_create(). Functions have been +written in order to encapsulate the \ ``memcached_st``\ . It is not +recommended that you operate directly against the structure. + +Nearly all functions return a \ ``memcached_return_t``\ value. +This value can be translated to a printable string with memcached_strerror(3). + +Partitioning based on keys is supported in the library. Using the key partioning +functions it is possible to group sets of object onto servers. + +\ ``memcached_st``\ structures are thread-safe, but each thread must +contain its own structure (that is, if you want to share these among +threads you must provide your own locking). No global variables are +used in this library. + +If you are working with GNU autotools you will want to add the following to +your configure.ac to properly include libmemcached in your application. + +PKG_CHECK_MODULES(DEPS, libmemcached >= 0.8.0) +AC_SUBST(DEPS_CFLAGS) +AC_SUBST(DEPS_LIBS) + +Some features of the library must be enabled through memcached_behavior_set(). + +Hope you enjoy it! + + +********* +CONSTANTS +********* + + +A number of constants have been provided for in the library. + + +MEMCACHED_DEFAULT_PORT + + The default port used by memcached(3). + + + +MEMCACHED_MAX_KEY + + Default maximum size of a key (which includes the null pointer). Master keys + have no limit, this only applies to keys used for storage. + + + +MEMCACHED_MAX_KEY + + Default size of key (which includes the null pointer). + + + +MEMCACHED_STRIDE + + This is the "stride" used in the consistent hash used between replicas. + + + +MEMCACHED_MAX_HOST_LENGTH + + Maximum allowed size of the hostname. + + + +MEMCACHED_VERSION_STRING + + String value of libmemcached version such as "1.23.4" + + + +MEMCACHED_MAJOR_VERSION + + Major version value. Such as 1.23.4, would be 1 + + + +MEMCACHED_MINOR_VERSION + + Major version value. Such as 1.23.4, would be 23 + + + +MEMCACHED_MICRO_VERSION + + Major version value. Such as 1.23.4, would be 4 + + + + +********************* +THREADS AND PROCESSES +********************* + + +When using threads or forked processes it is important to keep an instance +of \ ``memcached_st``\ per process or thread. Without creating your own locking +structures you can not share a single \ ``memcached_st``\ . You can though call +memcached_quit(3) on a \ ``memcached_st``\ and then use the resulting cloned +structure. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached_examples(3) libmemcached(1) memcat(1) memcp(1) memflush(1) memrm(1) memslap(1) memstat(1) memcached_fetch(3) memcached_replace(3) memcached_server_list_free(3) libmemcached_examples(3) memcached_clone(3) memcached_free(3) memcached_server_add(3) memcached_server_push(3) memcached_add(3) memcached_get(3) memcached_server_count(3) memcached_servers_parse(3) memcached_create(3) memcached_increment(3) memcached_server_list(3) memcached_set(3) memcached_decrement(3) memcached_mget(3) memcached_server_list_append(3) memcached_strerror(3) memcached_delete(3) memcached_quit(3) memcached_server_list_count(3) memcached_verbosity(3) memcached_server_add_unix_socket(3) memcached_result_create(3) memcached_result_free(3) memcached_result_key_value(3) memcached_result_key_length(3) memcached_result_value(3) memcached_result_length(3) memcached_result_flags(3) memcached_result_cas(3) memcached_result_st(3) memcached_append(3) memcached_prepend(3) memcached_fetch_result(3) memerror(1) memcached_get_by_key(3) memcached_mget_by_key(3) memcached_delete_by_key(3) memcached_fetch_execute(3) memcached_callback_get(3) memcached_callback_set(3) memcached_version(3) memcached_lib_version(3) memcached_result_set_value(3) memcached_dump(3) memdump(1) memcached_set_memory_allocators(3) memcached_get_memory_allocators(3) memcached_get_user_data(3) memcached_set_user_data(3) + diff --git a/docs/libmemcached_examples.pod b/docs/libmemcached_examples.pod deleted file mode 100644 index 1c937fe7..00000000 --- a/docs/libmemcached_examples.pod +++ /dev/null @@ -1,115 +0,0 @@ -=head1 NAME - -libmemcached_examples - Examples for libmemcached - -=head1 DESCRIPTION - -For full examples, test cases are found in tests/*.c in the main -distribution. These are always up to date, and are used for each test run of -the library. - -=head2 Creating and Freeing structure - - memcached_st *memc; - memcached_return_t rc; - - memc= memcached_create(NULL); - ...do stuff... - memcached_free(memc); - -The above code would create a connection and then free the connection when -finished. - -=head2 Connecting to servers - - memcached_server_st *servers; - memcached_st *memc= memcached_create(NULL); - char servername[]= "0.example.com"; - - servers= memcached_server_list_append(NULL, servername, 400, &rc); - - for (x= 0; x < 20; x++) - { - char buffer[SMALL_STRING_LEN]; - - snprintf(buffer, SMALL_STRING_LEN, "%u.example.com", 400+x); - servers= memcached_server_list_append(servers, buffer, 401, &rc); - } - rc= memcached_server_push(memc, servers); - memcached_server_free(servers); - memcached_free(memc); - -In the above code you create a C object that you then feed in a -single host into. In the for loop you build a C -pointer that you then later feed via memcached_server_push() into the -C structure. - -You can reuse the C object with multile C -structures. - -=head2 Adding a value to the server - - char *key= "foo"; - char *value; - size_t value_length= 8191; - unsigned int x; - - value = (char*)malloc(value_length); - assert(value); - - for (x= 0; x < value_length; x++) - value[x] = (char) (x % 127); - - for (x= 0; x < 1; x++) - { - rc= memcached_set(memc, key, strlen(key), - value, value_length, - (time_t)0, (uint32_t)0); - assert(rc == MEMCACHED_SUCCESS); - } - - free(value); - -It is best practice to always look at the return value of any operation. - -=head2 Fetching multiple values - - memcached_return_t rc; - char *keys[]= {"fudge", "son", "food"}; - size_t key_length[]= {5, 3, 4}; - unsigned int x; - uint32_t flags; - - char return_key[MEMCACHED_MAX_KEY]; - size_t return_key_length; - char *return_value; - size_t return_value_length; - - rc= memcached_mget(memc, keys, key_length, 3); - - x= 0; - while ((return_value= memcached_fetch(memc, return_key, &return_key_length, - &return_value_length, &flags, &rc))) - { - free(return_value); - x++; - } - -Notice that you freed values returned from memcached_fetch(). The define -C is provided for usage. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) - -=cut - diff --git a/docs/libmemcached_examples.rst b/docs/libmemcached_examples.rst new file mode 100644 index 00000000..82e28588 --- /dev/null +++ b/docs/libmemcached_examples.rst @@ -0,0 +1,163 @@ +.. highlight:: perl + + +**** +NAME +**** + + +libmemcached_examples - Examples for libmemcached + + +*********** +DESCRIPTION +*********** + + +For full examples, test cases are found in tests/\*.c in the main +distribution. These are always up to date, and are used for each test run of +the library. + +Creating and Freeing structure +============================== + + + +.. code-block:: perl + + memcached_st *memc; + memcached_return_t rc; + + memc= memcached_create(NULL); + ...do stuff... + memcached_free(memc); + + +The above code would create a connection and then free the connection when +finished. + + +Connecting to servers +===================== + + + +.. code-block:: perl + + memcached_server_st *servers; + memcached_st *memc= memcached_create(NULL); + char servername[]= "0.example.com"; + + servers= memcached_server_list_append(NULL, servername, 400, &rc); + + for (x= 0; x < 20; x++) + { + char buffer[SMALL_STRING_LEN]; + + snprintf(buffer, SMALL_STRING_LEN, "%u.example.com", 400+x); + servers= memcached_server_list_append(servers, buffer, 401, &rc); + } + rc= memcached_server_push(memc, servers); + memcached_server_free(servers); + memcached_free(memc); + + +In the above code you create a \ ``memcached_st``\ object that you then feed in a +single host into. In the for loop you build a \ ``memcached_server_st``\ +pointer that you then later feed via memcached_server_push() into the +\ ``memcached_st``\ structure. + +You can reuse the \ ``memcached_server_st``\ object with multile \ ``memcached_st``\ +structures. + + +Adding a value to the server +============================ + + + +.. code-block:: perl + + char *key= "foo"; + char *value; + size_t value_length= 8191; + unsigned int x; + + value = (char*)malloc(value_length); + assert(value); + + for (x= 0; x < value_length; x++) + value[x] = (char) (x % 127); + + for (x= 0; x < 1; x++) + { + rc= memcached_set(memc, key, strlen(key), + value, value_length, + (time_t)0, (uint32_t)0); + assert(rc == MEMCACHED_SUCCESS); + } + + free(value); + + +It is best practice to always look at the return value of any operation. + + +Fetching multiple values +======================== + + + +.. code-block:: perl + + memcached_return_t rc; + char *keys[]= {"fudge", "son", "food"}; + size_t key_length[]= {5, 3, 4}; + unsigned int x; + uint32_t flags; + + char return_key[MEMCACHED_MAX_KEY]; + size_t return_key_length; + char *return_value; + size_t return_value_length; + + rc= memcached_mget(memc, keys, key_length, 3); + + x= 0; + while ((return_value= memcached_fetch(memc, return_key, &return_key_length, + &return_value_length, &flags, &rc))) + { + free(return_value); + x++; + } + + +Notice that you freed values returned from memcached_fetch(). The define +\ ``MEMCACHED_MAX_KEY``\ is provided for usage. + + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) + diff --git a/docs/libmemcachedutil.pod b/docs/libmemcachedutil.pod deleted file mode 100644 index fd2e4f62..00000000 --- a/docs/libmemcachedutil.pod +++ /dev/null @@ -1,40 +0,0 @@ -=head1 NAME - -libmemcachedutil - Utility library for libmemcached - -=head1 LIBRARY - -C Client Library containing utility functions for libmemcached (libmemcachedutil, -lmemcachedutil) - -=head1 SYNOPSIS - - cc [ flag ... ] file ... -lmemcachedutil - - #include - -=head1 DESCRIPTION - -B is a small and thread-safe client library that provides -extra functionality built on top of B. - -=head1 THREADS - -Do not try to access an instance of C from multiple threads -at the same time. If you want to access memcached from multiple threads -you should either clone the C, or use the memcached pool -implementation. see memcached_pool_create(3). - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Trond Norbye, Etrond.norbye@gmail.comE - -=head1 SEE ALSO - -libmemcached(3) memcached_pool_create(3) memcached_pool_destroy(3) memcached_pool_pop(3) memcached_pool_push(3) - -=cut diff --git a/docs/libmemcachedutil.rst b/docs/libmemcachedutil.rst new file mode 100644 index 00000000..d213876d --- /dev/null +++ b/docs/libmemcachedutil.rst @@ -0,0 +1,77 @@ +.. highlight:: perl + + +**** +NAME +**** + + +libmemcachedutil - Utility library for libmemcached + + +******* +LIBRARY +******* + + +C Client Library containing utility functions for libmemcached (libmemcachedutil, -lmemcachedutil) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + cc [ flag ... ] file ... -lmemcachedutil + + #include + + + +*********** +DESCRIPTION +*********** + + +\ **libmemcachedutil**\ is a small and thread-safe client library that provides +extra functionality built on top of \ **libmemcached**\ . + + +******* +THREADS +******* + + +Do not try to access an instance of \ ``memcached_st``\ from multiple threads +at the same time. If you want to access memcached from multiple threads +you should either clone the \ ``memcached_st``\ , or use the memcached pool +implementation. see memcached_pool_create(3). + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Trond Norbye, + + +******** +SEE ALSO +******** + + +libmemcached(3) memcached_pool_create(3) memcached_pool_destroy(3) memcached_pool_pop(3) memcached_pool_push(3) + diff --git a/docs/make_index.pl b/docs/make_index.pl deleted file mode 100644 index cb0d1905..00000000 --- a/docs/make_index.pl +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use CGI; - -sub main { - my $cgi = new CGI; - - print $cgi->start_html('Libmemcached Documentation') . "\n"; - print $cgi->h1('Libmemcached Documentation') . "\n"; - - print $cgi->a({ href => "libmemcached.html" }, "Introduction to Libmemcached") . $cgi->br() . "\n"; - print $cgi->a({ href => "libmemcached_examples.html" }, "Libmemcached Examples") . $cgi->br() . "\n"; - print $cgi->br() . "\n"; - print $cgi->br() . "\n"; - - foreach (@ARGV) - { - my $url= $_; - my $name= $_; - $name =~ s/\.html//g; - next if $name eq 'index'; - next if $name eq 'libmemcached'; - next if $name eq 'libmemcached_examples'; - print "" . $cgi->a({ href => $url }, $name) . $cgi->br() . "\n"; - } - print $cgi->end_html; -} - -main(); diff --git a/docs/memcached_analyze.pod b/docs/memcached_analyze.pod deleted file mode 100644 index 9c0401f8..00000000 --- a/docs/memcached_analyze.pod +++ /dev/null @@ -1,53 +0,0 @@ -=head1 NAME - -memcached_analyze - Analyze server information - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_analysis_st * - memcached_analyze (memcached_st *ptr, - memcached_stat_st *stat, - memcached_return_t *error); - -=head1 DESCRIPTION - -libmemcached(3) has the ability to query a memcached server (or collection -of servers) for their current state. Queries to find state return a -C structure. You are responsible for freeing this structure. - -memcached_analyze() analyzes useful information based on the provided servers -and sets the result to the C structure. The return value -must be freed by the calling application. - -A command line tool, memstat(1) with the option --analyze, is provided so that -you do not have to write an application to use this method. - -=head1 RETURN - -A pointer to the allocated C structure on success and -a NULL pointer on failure. You may inspect the error detail by checking the -C value. - -Any method returning a C expects you to free the -memory allocated for it. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Toru Maesaka, Edev@torum.netE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut diff --git a/docs/memcached_analyze.rst b/docs/memcached_analyze.rst new file mode 100644 index 00000000..cd8f36fb --- /dev/null +++ b/docs/memcached_analyze.rst @@ -0,0 +1,90 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_analyze - Analyze server information + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_analysis_st * + memcached_analyze (memcached_st *ptr, + memcached_stat_st *stat, + memcached_return_t *error); + + + +*********** +DESCRIPTION +*********** + + +libmemcached(3) has the ability to query a memcached server (or collection +of servers) for their current state. Queries to find state return a +\ ``memcached_analysis_st``\ structure. You are responsible for freeing this structure. + +memcached_analyze() analyzes useful information based on the provided servers +and sets the result to the \ ``memcached_analysis_st``\ structure. The return value +must be freed by the calling application. + +A command line tool, memstat(1) with the option --analyze, is provided so that +you do not have to write an application to use this method. + + +****** +RETURN +****** + + +A pointer to the allocated \ ``memcached_analysis_st``\ structure on success and +a NULL pointer on failure. You may inspect the error detail by checking the +\ ``memcached_return_t``\ value. + +Any method returning a \ ``memcached_analysis_st``\ expects you to free the +memory allocated for it. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Toru Maesaka, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_auto.pod b/docs/memcached_auto.pod deleted file mode 100644 index bd6da192..00000000 --- a/docs/memcached_auto.pod +++ /dev/null @@ -1,138 +0,0 @@ -=head1 NAME - -memcached_increment, memcached_decrement, -memcached_increment_with_initial, memcached_decrement_with_initial - Manipulate -counters - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_return_t - memcached_increment (memcached_st *ptr, - const char *key, size_t key_length, - unsigned int offset, - uint64_t *value); - - memcached_return_t - memcached_decrement (memcached_st *ptr, - const char *key, size_t key_length, - unsigned int offset, - uint64_t *value); - - memcached_return_t - memcached_increment_with_initial (memcached_st *ptr, - const char *key, - size_t key_length, - uint64_t offset, - uint64_t initial, - time_t expiration, - uint64_t *value); - - memcached_return_t - memcached_decrement_with_initial (memcached_st *ptr, - const char *key, - size_t key_length, - uint64_t offset, - uint64_t initial, - time_t expiration, - uint64_t *value); - - memcached_return_t - memcached_increment_by_key (memcached_st *ptr, - const char *master_key, size_t master_key_length, - const char *key, size_t key_length, - unsigned int offset, - uint64_t *value); - - memcached_return_t - memcached_decrement_by_key (memcached_st *ptr, - const char *master_key, size_t master_key_length, - const char *key, size_t key_length, - unsigned int offset, - uint64_t *value); - - memcached_return_t - memcached_increment_with_initial_by_key (memcached_st *ptr, - const char *master_key, - size_t master_key_length, - const char *key, - size_t key_length, - uint64_t offset, - uint64_t initial, - time_t expiration, - uint64_t *value); - - memcached_return_t - memcached_decrement_with_initial_by_key (memcached_st *ptr, - const char *master_key, - size_t master_key_length, - const char *key, - size_t key_length, - uint64_t offset, - uint64_t initial, - time_t expiration, - uint64_t *value); - -=head1 DESCRIPTION - -memcached(1) servers have the ability to increment and decrement keys -(overflow and underflow are not detected). This gives you the ability to use -memcached to generate shared sequences of values. - -memcached_increment() takes a key and keylength and increments the value by -the offset passed to it. The value is then returned via the unsigned int -value pointer you pass to it. - -memcached_decrement() takes a key and keylength and decrements the value by -the offset passed to it. The value is then returned via the unsigned int -value pointer you pass to it. - -memcached_increment_with_initial() takes a key and keylength and increments -the value by the offset passed to it. If the object specified by key does -not exist, one of two things may happen: If the expiration value is -MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other -expiration values, the operation will succeed by seeding the value for that -key with a initial value to expire with the provided expiration time. The -flags will be set to zero.The value is then returned via the unsigned int -value pointer you pass to it. - -memcached_decrement_with_initial() takes a key and keylength and decrements -the value by the offset passed to it. If the object specified by key does -not exist, one of two things may happen: If the expiration value is -MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other -expiration values, the operation will succeed by seeding the value for that -key with a initial value to expire with the provided expiration time. The -flags will be set to zero.The value is then returned via the unsigned int -value pointer you pass to it. - -memcached_increment_by_key(), memcached_decrement_by_key(), -memcached_increment_with_initial_by_key(), and -memcached_decrement_with_initial_by_key() are master key equivalents of the -above. - -=head1 RETURN - -A value of type C is returned. -On success that value will be C. -Use memcached_strerror() to translate this value to a printable string. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_auto.rst b/docs/memcached_auto.rst new file mode 100644 index 00000000..a08400e4 --- /dev/null +++ b/docs/memcached_auto.rst @@ -0,0 +1,174 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_increment, memcached_decrement, +memcached_increment_with_initial, memcached_decrement_with_initial - Manipulate +counters + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_return_t + memcached_increment (memcached_st *ptr, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + + memcached_return_t + memcached_decrement (memcached_st *ptr, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + + memcached_return_t + memcached_increment_with_initial (memcached_st *ptr, + const char *key, + size_t key_length, + uint64_t offset, + uint64_t initial, + time_t expiration, + uint64_t *value); + + memcached_return_t + memcached_decrement_with_initial (memcached_st *ptr, + const char *key, + size_t key_length, + uint64_t offset, + uint64_t initial, + time_t expiration, + uint64_t *value); + + memcached_return_t + memcached_increment_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + + memcached_return_t + memcached_decrement_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + unsigned int offset, + uint64_t *value); + + memcached_return_t + memcached_increment_with_initial_by_key (memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char *key, + size_t key_length, + uint64_t offset, + uint64_t initial, + time_t expiration, + uint64_t *value); + + memcached_return_t + memcached_decrement_with_initial_by_key (memcached_st *ptr, + const char *master_key, + size_t master_key_length, + const char *key, + size_t key_length, + uint64_t offset, + uint64_t initial, + time_t expiration, + uint64_t *value); + + + +*********** +DESCRIPTION +*********** + + +memcached(1) servers have the ability to increment and decrement keys +(overflow and underflow are not detected). This gives you the ability to use +memcached to generate shared sequences of values. + +memcached_increment() takes a key and keylength and increments the value by +the offset passed to it. The value is then returned via the unsigned int +value pointer you pass to it. + +memcached_decrement() takes a key and keylength and decrements the value by +the offset passed to it. The value is then returned via the unsigned int +value pointer you pass to it. + +memcached_increment_with_initial() takes a key and keylength and increments +the value by the offset passed to it. If the object specified by key does +not exist, one of two things may happen: If the expiration value is +MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other +expiration values, the operation will succeed by seeding the value for that +key with a initial value to expire with the provided expiration time. The +flags will be set to zero.The value is then returned via the unsigned int +value pointer you pass to it. + +memcached_decrement_with_initial() takes a key and keylength and decrements +the value by the offset passed to it. If the object specified by key does +not exist, one of two things may happen: If the expiration value is +MEMCACHED_EXPIRATION_NOT_ADD, the operation will fail. For all other +expiration values, the operation will succeed by seeding the value for that +key with a initial value to expire with the provided expiration time. The +flags will be set to zero.The value is then returned via the unsigned int +value pointer you pass to it. + +memcached_increment_by_key(), memcached_decrement_by_key(), +memcached_increment_with_initial_by_key(), and +memcached_decrement_with_initial_by_key() are master key equivalents of the +above. + + +****** +RETURN +****** + + +A value of type \ ``memcached_return_t``\ is returned. +On success that value will be \ ``MEMCACHED_SUCCESS``\ . +Use memcached_strerror() to translate this value to a printable string. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_behavior.pod b/docs/memcached_behavior.pod deleted file mode 100644 index 02ab0de4..00000000 --- a/docs/memcached_behavior.pod +++ /dev/null @@ -1,297 +0,0 @@ -=head1 NAME - -memcached_behavior_get, memcached_behavior_set - Manipulate behavior - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - uint64_t - memcached_behavior_get (memcached_st *ptr, - memcached_behavior flag); - - memcached_return_t - memcached_behavior_set (memcached_st *ptr, - memcached_behavior flag, - uint64_t data); - -=head1 DESCRIPTION - -libmemcached(3) behavior can be modified by use memcached_behavior_set(). -Default behavior is the library strives to be quick and accurate. Some -behavior, while being faster, can also result in not entirely accurate -behavior (for instance, memcached_set() will always respond with -C). - -memcached_behavior_get() takes a behavior flag and returns whether or not -that behavior is currently enabled in the client. - -memcached_behavior_set() changes the value of a particular option of the -client. It takes both a flag (listed below) and a value. For simple on or -off options you just need to pass in a value of 1. Calls to -memcached_behavior_set() will flush and reset all connections. - -=over 4 - -=item MEMCACHED_BEHAVIOR_USE_UDP - -Causes libmemcached(3) to use the UDP transport when communicating -with a memcached server. Not all I/O operations are supported -when this behavior is enababled. The following operations will return -C when executed with the MEMCACHED_BEHAVIOR_USE_UDP -enabled: memcached_version(), memcached_stat(), memcached_get(), -memcached_get_by_key(), memcached_mget(), memcached_mget_by_key(), -memcached_fetch(), memcached_fetch_result(), memcached_value_fetch(). - -All other operations are supported but are executed in a 'fire-and-forget' -mode, in which once the client has executed the operation, no attempt -will be made to ensure the operation has been received and acted on by the -server. - -libmemcached(3) does not allow TCP and UDP servers to be shared within -the same libmemached(3) client 'instance'. An attempt to add a TCP server -when this behavior is enabled will result in a C, -as will attempting to add a UDP server when this behavior has not been enabled. - -=item MEMCACHED_BEHAVIOR_NO_BLOCK - -Causes libmemcached(3) to use asychronous IO. This is the fastest transport -available for storage functions. - -=item MEMCACHED_BEHAVIOR_SND_TIMEOUT - -This sets the microsecond behavior of the socket against the SO_SNDTIMEO flag. -In cases where you cannot use non-blocking IO this will allow you to still have -timeouts on the sending of data. - -=item MEMCACHED_BEHAVIOR_RCV_TIMEOUT - -This sets the microsecond behavior of the socket against the SO_RCVTIMEO flag. -In cases where you cannot use non-blocking IO this will allow you to still have -timeouts on the reading of data. - -=item MEMCACHED_BEHAVIOR_TCP_NODELAY - -Turns on the no-delay feature for connecting sockets (may be faster in some -environments). - -=item MEMCACHED_BEHAVIOR_HASH - -Makes the default hashing algorithm for keys use MD5. The value can be set -to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, MEMCACHED_HASH_FNV1A_32, MEMCACHED_HASH_JENKINS, MEMCACHED_HASH_HSIEH, and MEMCACHED_HASH_MURMUR. -Each hash has it's advantages and it's weaknesses. If you don't know or don't care, just go with the default. -Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable support for this hashing algorithm, configure and build libmemcached with the --enable-hash_hsieh. - -=item MEMCACHED_BEHAVIOR_DISTRIBUTION - -Using this you can enable different means of distributing values to servers. -The default method is MEMCACHED_DISTRIBUTION_MODULA. You can enable -consistent hashing by setting MEMCACHED_DISTRIBUTION_CONSISTENT. -Consistent hashing delivers better distribution and allows servers to be -added to the cluster with minimal cache losses. Currently -MEMCACHED_DISTRIBUTION_CONSISTENT is an alias for the value -MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA. - -=item MEMCACHED_BEHAVIOR_CACHE_LOOKUPS - -Memcached can cache named lookups so that DNS lookups are made only once. - -=item MEMCACHED_BEHAVIOR_SUPPORT_CAS - -Support CAS operations (this is not enabled by default at this point in the server since it imposes a slight performance penalty). - -=item MEMCACHED_BEHAVIOR_KETAMA - -Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA -and the hash to MEMCACHED_HASH_MD5. - -=item MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED - -Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted support. -and the hash to MEMCACHED_HASH_MD5. - -=item MEMCACHED_BEHAVIOR_KETAMA_HASH - -Sets the hashing algorithm for host mapping on continuum. The value can be set -to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, and MEMCACHED_HASH_FNV1A_32. - -=item MEMCACHED_BEHAVIOR_KETAMA_COMPAT - -Sets the compatibility mode. The value can be set to either -MEMCACHED_KETAMA_COMPAT_LIBMEMCACHED (this is the default) or -MEMCACHED_KETAMA_COMPAT_SPY to be compatible with the SPY Memcached client -for Java. - -=item MEMCACHED_BEHAVIOR_POLL_TIMEOUT - -Modify the timeout value that is used by poll(). The default value is -1. An signed int pointer must be passed to memcached_behavior_set() to change this value. For memcached_behavior_get() a signed int value will be cast and returned as the unsigned long long. - -=item MEMCACHED_BEHAVIOR_USER_DATA - -This allows you to store a pointer to a specifc piece of data. This can be -retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st - -will copy the pointer to the clone. This was deprecated in 0.14 in favor -of memcached_callback_set(3). This will be removed in 0.15. - -=item MEMCACHED_BEHAVIOR_BUFFER_REQUESTS - -Enabling buffered IO causes commands to "buffer" instead of being sent. Any -action that gets data causes this buffer to be be sent to the remote -connection. Quiting the connection or closing down the connection will also -cause the buffered data to be pushed to the remote connection. - -=item MEMCACHED_BEHAVIOR_VERIFY_KEY - -Enabling this will cause libmemcached(3) to test all keys to verify that they -are valid keys. - -=item MEMCACHED_BEHAVIOR_SORT_HOSTS - -Enabling this will cause hosts that are added to be placed in the host list in -sorted order. This will defeat consisten hashing. - -=item MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT - -In non-blocking mode this changes the value of the timeout during socket -connection. - -=item MEMCACHED_BEHAVIOR_BINARY_PROTOCOL - -Enable the use of the binary protocol. Please note that you cannot toggle -this flag on an open connection. - -=item MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT - -Set this value to enable the server be removed after continuous MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT -times connection failure. - -=item MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK - -Set this value to tune the number of messages that may be sent before -libmemcached should start to automatically drain the input queue. Setting -this value to high, may cause libmemcached to deadlock (trying to send data, -but the send will block because the input buffer in the kernel is full). - -=item MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK - -Set this value to tune the number of bytes that may be sent before -libmemcached should start to automatically drain the input queue (need -at least 10 IO requests sent without reading the input buffer). Setting -this value to high, may cause libmemcached to deadlock (trying to send -data, but the send will block because the input buffer in the kernel is full). - -=item MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH - -The binary protocol works a bit different than the textual protocol in -that a multiget is implemented as a pipe of single get-operations which -are sent to the server in a chunk. If you are using large multigets from -your application, you may improve the latency of the gets by setting -this value so you send out the first chunk of requests when you hit the -specified limit. It allows the servers to start processing the requests -to send the data back while the rest of the requests are created and -sent to the server. - -=item MEMCACHED_BEHAVIOR_NOREPLY - -Set this value to specify that you really don't care about the result -from your storage commands (set, add, replace, append, prepend). - -=item MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS - -If you just want "a poor mans HA", you may specify the numbers of -replicas libmemcached should store of each item (on different servers). -This replication does not dedicate certain memcached servers to store the -replicas in, but instead it will store the replicas together with all of the -other objects (on the 'n' next servers specified in your server list). - -=item MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ - -Allows randomizing the replica reads starting point. Normally the read is -done from primary server and in case of miss the read is done from primary -+ 1, then primary + 2 all the way to 'n' replicas. If this option is set -on the starting point of the replica reads is randomized between the servers. -This allows distributing read load to multiple servers with the expense of -more write traffic. - -=item MEMCACHED_BEHAVIOR_CORK - -Enable TCP_CORK behavior. This is only available as an option Linux. -MEMCACHED_NO_SERVERS is returned if no servers are available to test with. -MEMCACHED_NOT_SUPPORTED is returned if we were not able to determine -if support was available. All other responses then MEMCACHED_SUCCESS -report an error of some sort. This behavior also enables -MEMCACHED_BEHAVIOR_TCP_NODELAY when set. - -=item MEMCACHED_BEHAVIOR_KEEPALIVE - -Enable TCP_KEEPALIVE behavior. - -=item MEMCACHED_BEHAVIOR_KEEPALIVE_IDLE - -Specify time, in seconds, to mark a connection as idle. This is only available as an option Linux. - -=item MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE - -Find the current size of SO_SNDBUF. A value of 0 means either an error -occured or no hosts were available. It is safe to assume system default -if this occurs. If an error occurs you can checked the last cached errno statement to find the specific error. - -=item MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE - -Find the current size of SO_RCVBUF. A value of 0 means either an error -occured or no hosts were available. It is safe to assume system default -if this occurs. If an error occurs you can checked the last cached errno statement to find the specific error. - -=item MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT - -This number of times a host can have an error before it is disabled. - -=item MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS - -If enabled any hosts which have been flagged as disabled will be removed -from the list of servers in the memcached_st structure. This must be used -in combination with MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT. - -=item MEMCACHED_BEHAVIOR_RETRY_TIMEOUT - -When enabled a host which is problematic will only be checked for usage -based on the amount of time set by this behavior. - -=item MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY - -When enabled the prefix key will be added to the key when determining -server by hash. - -=back - -=head1 RETURN - -memcached_behavior_get() returns either the current value of the get, or 0 -or 1 on simple flag behaviors (1 being enabled). memcached_behavior_set() -returns failure or success. - -=head1 NOTES - -memcached_behavior_set() in version .17 was changed from taking a pointer -to data value, to taking a uin64_t. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_behavior.rst b/docs/memcached_behavior.rst new file mode 100644 index 00000000..72815b8b --- /dev/null +++ b/docs/memcached_behavior.rst @@ -0,0 +1,406 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_behavior_get, memcached_behavior_set - Manipulate behavior + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + uint64_t + memcached_behavior_get (memcached_st *ptr, + memcached_behavior flag); + + memcached_return_t + memcached_behavior_set (memcached_st *ptr, + memcached_behavior flag, + uint64_t data); + + + +*********** +DESCRIPTION +*********** + + +libmemcached(3) behavior can be modified by use memcached_behavior_set(). +Default behavior is the library strives to be quick and accurate. Some +behavior, while being faster, can also result in not entirely accurate +behavior (for instance, memcached_set() will always respond with +\ ``MEMCACHED_SUCCESS``\ ). + +memcached_behavior_get() takes a behavior flag and returns whether or not +that behavior is currently enabled in the client. + +memcached_behavior_set() changes the value of a particular option of the +client. It takes both a flag (listed below) and a value. For simple on or +off options you just need to pass in a value of 1. Calls to +memcached_behavior_set() will flush and reset all connections. + + +MEMCACHED_BEHAVIOR_USE_UDP + + Causes libmemcached(3) to use the UDP transport when communicating + with a memcached server. Not all I/O operations are supported + when this behavior is enababled. The following operations will return + \ ``MEMCACHED_NOT_SUPPORTED``\ when executed with the MEMCACHED_BEHAVIOR_USE_UDP + enabled: memcached_version(), memcached_stat(), memcached_get(), + memcached_get_by_key(), memcached_mget(), memcached_mget_by_key(), + memcached_fetch(), memcached_fetch_result(), memcached_value_fetch(). + + All other operations are supported but are executed in a 'fire-and-forget' + mode, in which once the client has executed the operation, no attempt + will be made to ensure the operation has been received and acted on by the + server. + + libmemcached(3) does not allow TCP and UDP servers to be shared within + the same libmemached(3) client 'instance'. An attempt to add a TCP server + when this behavior is enabled will result in a \ ``MEMCACHED_INVALID_HOST_PROTOCOL``\ , + as will attempting to add a UDP server when this behavior has not been enabled. + + + +MEMCACHED_BEHAVIOR_NO_BLOCK + + Causes libmemcached(3) to use asychronous IO. This is the fastest transport + available for storage functions. + + + +MEMCACHED_BEHAVIOR_SND_TIMEOUT + + This sets the microsecond behavior of the socket against the SO_SNDTIMEO flag. + In cases where you cannot use non-blocking IO this will allow you to still have + timeouts on the sending of data. + + + +MEMCACHED_BEHAVIOR_RCV_TIMEOUT + + This sets the microsecond behavior of the socket against the SO_RCVTIMEO flag. + In cases where you cannot use non-blocking IO this will allow you to still have + timeouts on the reading of data. + + + +MEMCACHED_BEHAVIOR_TCP_NODELAY + + Turns on the no-delay feature for connecting sockets (may be faster in some + environments). + + + +MEMCACHED_BEHAVIOR_HASH + + Makes the default hashing algorithm for keys use MD5. The value can be set + to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, MEMCACHED_HASH_FNV1A_32, MEMCACHED_HASH_JENKINS, MEMCACHED_HASH_HSIEH, and MEMCACHED_HASH_MURMUR. + Each hash has it's advantages and it's weaknesses. If you don't know or don't care, just go with the default. + Support for MEMCACHED_HASH_HSIEH is a compile time option that is disabled by default. To enable support for this hashing algorithm, configure and build libmemcached with the --enable-hash_hsieh. + + + +MEMCACHED_BEHAVIOR_DISTRIBUTION + + Using this you can enable different means of distributing values to servers. + The default method is MEMCACHED_DISTRIBUTION_MODULA. You can enable + consistent hashing by setting MEMCACHED_DISTRIBUTION_CONSISTENT. + Consistent hashing delivers better distribution and allows servers to be + added to the cluster with minimal cache losses. Currently + MEMCACHED_DISTRIBUTION_CONSISTENT is an alias for the value + MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA. + + + +MEMCACHED_BEHAVIOR_CACHE_LOOKUPS + + Memcached can cache named lookups so that DNS lookups are made only once. + + + +MEMCACHED_BEHAVIOR_SUPPORT_CAS + + Support CAS operations (this is not enabled by default at this point in the server since it imposes a slight performance penalty). + + + +MEMCACHED_BEHAVIOR_KETAMA + + Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA + and the hash to MEMCACHED_HASH_MD5. + + + +MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED + + Sets the default distribution to MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA with the weighted support. + and the hash to MEMCACHED_HASH_MD5. + + + +MEMCACHED_BEHAVIOR_KETAMA_HASH + + Sets the hashing algorithm for host mapping on continuum. The value can be set + to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, and MEMCACHED_HASH_FNV1A_32. + + + +MEMCACHED_BEHAVIOR_KETAMA_COMPAT + + Sets the compatibility mode. The value can be set to either + MEMCACHED_KETAMA_COMPAT_LIBMEMCACHED (this is the default) or + MEMCACHED_KETAMA_COMPAT_SPY to be compatible with the SPY Memcached client + for Java. + + + +MEMCACHED_BEHAVIOR_POLL_TIMEOUT + + Modify the timeout value that is used by poll(). The default value is -1. An signed int pointer must be passed to memcached_behavior_set() to change this value. For memcached_behavior_get() a signed int value will be cast and returned as the unsigned long long. + + + +MEMCACHED_BEHAVIOR_USER_DATA + + This allows you to store a pointer to a specifc piece of data. This can be + retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st + + will copy the pointer to the clone. This was deprecated in 0.14 in favor + of memcached_callback_set(3). This will be removed in 0.15. + + + +MEMCACHED_BEHAVIOR_BUFFER_REQUESTS + + Enabling buffered IO causes commands to "buffer" instead of being sent. Any + action that gets data causes this buffer to be be sent to the remote + connection. Quiting the connection or closing down the connection will also + cause the buffered data to be pushed to the remote connection. + + + +MEMCACHED_BEHAVIOR_VERIFY_KEY + + Enabling this will cause libmemcached(3) to test all keys to verify that they + are valid keys. + + + +MEMCACHED_BEHAVIOR_SORT_HOSTS + + Enabling this will cause hosts that are added to be placed in the host list in + sorted order. This will defeat consisten hashing. + + + +MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT + + In non-blocking mode this changes the value of the timeout during socket + connection. + + + +MEMCACHED_BEHAVIOR_BINARY_PROTOCOL + + Enable the use of the binary protocol. Please note that you cannot toggle + this flag on an open connection. + + + +MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT + + Set this value to enable the server be removed after continuous MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT + times connection failure. + + + +MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK + + Set this value to tune the number of messages that may be sent before + libmemcached should start to automatically drain the input queue. Setting + this value to high, may cause libmemcached to deadlock (trying to send data, + but the send will block because the input buffer in the kernel is full). + + + +MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK + + Set this value to tune the number of bytes that may be sent before + libmemcached should start to automatically drain the input queue (need + at least 10 IO requests sent without reading the input buffer). Setting + this value to high, may cause libmemcached to deadlock (trying to send + data, but the send will block because the input buffer in the kernel is full). + + + +MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH + + The binary protocol works a bit different than the textual protocol in + that a multiget is implemented as a pipe of single get-operations which + are sent to the server in a chunk. If you are using large multigets from + your application, you may improve the latency of the gets by setting + this value so you send out the first chunk of requests when you hit the + specified limit. It allows the servers to start processing the requests + to send the data back while the rest of the requests are created and + sent to the server. + + + +MEMCACHED_BEHAVIOR_NOREPLY + + Set this value to specify that you really don't care about the result + from your storage commands (set, add, replace, append, prepend). + + + +MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS + + If you just want "a poor mans HA", you may specify the numbers of + replicas libmemcached should store of each item (on different servers). + This replication does not dedicate certain memcached servers to store the + replicas in, but instead it will store the replicas together with all of the + other objects (on the 'n' next servers specified in your server list). + + + +MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ + + Allows randomizing the replica reads starting point. Normally the read is + done from primary server and in case of miss the read is done from primary + + 1, then primary + 2 all the way to 'n' replicas. If this option is set + on the starting point of the replica reads is randomized between the servers. + This allows distributing read load to multiple servers with the expense of + more write traffic. + + + +MEMCACHED_BEHAVIOR_CORK + + Enable TCP_CORK behavior. This is only available as an option Linux. + MEMCACHED_NO_SERVERS is returned if no servers are available to test with. + MEMCACHED_NOT_SUPPORTED is returned if we were not able to determine + if support was available. All other responses then MEMCACHED_SUCCESS + report an error of some sort. This behavior also enables + MEMCACHED_BEHAVIOR_TCP_NODELAY when set. + + + +MEMCACHED_BEHAVIOR_KEEPALIVE + + Enable TCP_KEEPALIVE behavior. + + + +MEMCACHED_BEHAVIOR_KEEPALIVE_IDLE + + Specify time, in seconds, to mark a connection as idle. This is only available as an option Linux. + + + +MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE + + Find the current size of SO_SNDBUF. A value of 0 means either an error + occured or no hosts were available. It is safe to assume system default + if this occurs. If an error occurs you can checked the last cached errno statement to find the specific error. + + + +MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE + + Find the current size of SO_RCVBUF. A value of 0 means either an error + occured or no hosts were available. It is safe to assume system default + if this occurs. If an error occurs you can checked the last cached errno statement to find the specific error. + + + +MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT + + This number of times a host can have an error before it is disabled. + + + +MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS + + If enabled any hosts which have been flagged as disabled will be removed + from the list of servers in the memcached_st structure. This must be used + in combination with MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT. + + + +MEMCACHED_BEHAVIOR_RETRY_TIMEOUT + + When enabled a host which is problematic will only be checked for usage + based on the amount of time set by this behavior. + + + +MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY + + When enabled the prefix key will be added to the key when determining + server by hash. + + + + +****** +RETURN +****** + + +memcached_behavior_get() returns either the current value of the get, or 0 +or 1 on simple flag behaviors (1 being enabled). memcached_behavior_set() +returns failure or success. + + +***** +NOTES +***** + + +memcached_behavior_set() in version .17 was changed from taking a pointer +to data value, to taking a uin64_t. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_callback.pod b/docs/memcached_callback.pod deleted file mode 100644 index a5b5429b..00000000 --- a/docs/memcached_callback.pod +++ /dev/null @@ -1,125 +0,0 @@ -=head1 NAME - -memcached_callback_get, memcached_callback_set - Get and set a callback - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_return_t - memcached_callback_set (memcached_st *ptr, - memcached_callback_t flag, - void *data); - - void * - memcached_callback_get (memcached_st *ptr, - memcached_callback_t flag, - memcached_return_t *error); - -=head1 DESCRIPTION - -libmemcached(3) can have callbacks set key execution points. These either -provide function calls at points in the code, or return pointers to -structures for particular usages. - -memcached_callback_get() takes a callback flag and returns the structure or -function set by memcached_callback_set(). - -memcached_callback_set() changes the function/structure assigned by a -callback flag. No connections are reset. - -You can use MEMCACHED_CALLBACK_USER_DATA to provide custom context if required for any -of the callbacks - -=over 4 - -=item MEMCACHED_CALLBACK_CLEANUP_FUNCTION - -When memcached_delete() is called this function will be excuted. At the -point of its execution all connections have been closed. - -=item MEMCACHED_CALLBACK_CLONE_FUNCTION - -When memcached_delete() is called this function will be excuted. At the -point of its execution all connections have been closed. - -=item MEMCACHED_CALLBACK_PREFIX_KEY - -You can set a value which will be used to create a domain for your keys. -The value specified here will be prefixed to each of your keys. The value can not -be greater then MEMCACHED_PREFIX_KEY_MAX_SIZE - 1 and will reduce MEMCACHED_MAX_KEY by -the value of your key. The prefix key is only applied to the primary key, -not the master key. MEMCACHED_FAILURE will be returned if no key is set. In the case -of a key which is too long MEMCACHED_BAD_KEY_PROVIDED will be returned. - -If you set a value with the value being NULL then the prefix key is disabled. - -=item MEMCACHED_CALLBACK_USER_DATA - -This allows you to store a pointer to a specifc piece of data. This can be -retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st -will copy the pointer to the clone. - -=item MEMCACHED_CALLBACK_MALLOC_FUNCTION - -DEPRECATED: use memcached_set_memory_allocators instead. - -=item MEMCACHED_CALLBACK_REALLOC_FUNCTION - -DEPRECATED: use memcached_set_memory_allocators instead. - -=item MEMCACHED_CALLBACK_FREE_FUNCTION - -DEPRECATED: use memcached_set_memory_allocators instead. - -=item MEMCACHED_CALLBACK_GET_FAILURE - -This function implements the read through cache behavior. On failure of retrieval this callback will be called. -You are responsible for populating the result object provided. This result object will then be stored in the server and -returned to the calling process. You must clone the memcached_st in order to -make use of it. The value will be stored only if you return -MEMCACHED_SUCCESS or MEMCACHED_BUFFERED. Returning MEMCACHED_BUFFERED will -cause the object to be buffered and not sent immediatly (if this is the default behavior based on your connection setup this will happen automatically). - -The prototype for this is: -memcached_return_t (*memcached_trigger_key)(memcached_st *ptr, char *key, size_t key_length, memcached_result_st *result); - -=item MEMCACHED_CALLBACK_DELETE_TRIGGER - -This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned -in order to make use of it. - -The prototype for this is: -typedef memcached_return_t (*memcached_trigger_delete_key)(memcached_st *ptr, char *key, size_t key_length); - - -=back - -=head1 RETURN - -memcached_callback_get() return the function or structure that was provided. -Upon error, nothing is set, null is returned, and the memcached_return_t -argument is set to MEMCACHED_FAILURE. - -memcached_callback_set() returns MEMCACHED_SUCCESS upon successful setting, -otherwise MEMCACHED_FAILURE on error. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_callback.rst b/docs/memcached_callback.rst new file mode 100644 index 00000000..1be0ecea --- /dev/null +++ b/docs/memcached_callback.rst @@ -0,0 +1,174 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_callback_get, memcached_callback_set - Get and set a callback + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_return_t + memcached_callback_set (memcached_st *ptr, + memcached_callback_t flag, + void *data); + + void * + memcached_callback_get (memcached_st *ptr, + memcached_callback_t flag, + memcached_return_t *error); + + + +*********** +DESCRIPTION +*********** + + +libmemcached(3) can have callbacks set key execution points. These either +provide function calls at points in the code, or return pointers to +structures for particular usages. + +memcached_callback_get() takes a callback flag and returns the structure or +function set by memcached_callback_set(). + +memcached_callback_set() changes the function/structure assigned by a +callback flag. No connections are reset. + +You can use MEMCACHED_CALLBACK_USER_DATA to provide custom context if required for any +of the callbacks + + +MEMCACHED_CALLBACK_CLEANUP_FUNCTION + + When memcached_delete() is called this function will be excuted. At the + point of its execution all connections have been closed. + + + +MEMCACHED_CALLBACK_CLONE_FUNCTION + + When memcached_delete() is called this function will be excuted. At the + point of its execution all connections have been closed. + + + +MEMCACHED_CALLBACK_PREFIX_KEY + + You can set a value which will be used to create a domain for your keys. + The value specified here will be prefixed to each of your keys. The value can not + be greater then MEMCACHED_PREFIX_KEY_MAX_SIZE - 1 and will reduce MEMCACHED_MAX_KEY by + the value of your key. The prefix key is only applied to the primary key, + not the master key. MEMCACHED_FAILURE will be returned if no key is set. In the case + of a key which is too long MEMCACHED_BAD_KEY_PROVIDED will be returned. + + If you set a value with the value being NULL then the prefix key is disabled. + + +MEMCACHED_CALLBACK_USER_DATA + + This allows you to store a pointer to a specifc piece of data. This can be + retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st + will copy the pointer to the clone. + + + +MEMCACHED_CALLBACK_MALLOC_FUNCTION + + DEPRECATED: use memcached_set_memory_allocators instead. + + + +MEMCACHED_CALLBACK_REALLOC_FUNCTION + + DEPRECATED: use memcached_set_memory_allocators instead. + + + +MEMCACHED_CALLBACK_FREE_FUNCTION + + DEPRECATED: use memcached_set_memory_allocators instead. + + + +MEMCACHED_CALLBACK_GET_FAILURE + + This function implements the read through cache behavior. On failure of retrieval this callback will be called. + You are responsible for populating the result object provided. This result object will then be stored in the server and + returned to the calling process. You must clone the memcached_st in order to + make use of it. The value will be stored only if you return + MEMCACHED_SUCCESS or MEMCACHED_BUFFERED. Returning MEMCACHED_BUFFERED will + cause the object to be buffered and not sent immediatly (if this is the default behavior based on your connection setup this will happen automatically). + + The prototype for this is: + memcached_return_t (\*memcached_trigger_key)(memcached_st \*ptr, char \*key, size_t key_length, memcached_result_st \*result); + + + +MEMCACHED_CALLBACK_DELETE_TRIGGER + + This function implements a trigger upon successful deletion of a key. The memcached_st structure will need to be cloned + in order to make use of it. + + The prototype for this is: + typedef memcached_return_t (\*memcached_trigger_delete_key)(memcached_st \*ptr, char \*key, size_t key_length); + + + + +****** +RETURN +****** + + +memcached_callback_get() return the function or structure that was provided. +Upon error, nothing is set, null is returned, and the memcached_return_t +argument is set to MEMCACHED_FAILURE. + +memcached_callback_set() returns MEMCACHED_SUCCESS upon successful setting, +otherwise MEMCACHED_FAILURE on error. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_create.pod b/docs/memcached_create.pod deleted file mode 100644 index 4323723b..00000000 --- a/docs/memcached_create.pod +++ /dev/null @@ -1,67 +0,0 @@ -=head1 NAME - -memcached_create, memcached_free, memcached_clone, memcached_servers_reset- Create a memcached_st structure - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_st *memcached_create (memcached_st *ptr); - - void memcached_free (memcached_st *ptr); - - memcached_st *memcached_clone (memcached_st *destination, memcached_st *source); - - void memcached_servers_reset(memcached_st); - -=head1 DESCRIPTION - -memcached_create() is used to create a C structure that will then -be used by other libmemcached(3) functions to communicate with the server. You -should either pass a statically declared C to memcached_create() or -a NULL. If a NULL passed in then a structure is allocated for you. - -memcached_clone() is similar to memcached_create(3) but it copies the -defaults and list of servers from the source C. If you pass a null as -the argument for the source to clone, it is the same as a call to memcached_create(). -If the destination argument is NULL a C will be allocated for you. - -memcached_servers_reset() allows you to zero out the list of servers that -the memcached_st has. - -To clean up memory associated with a C structure you should pass -it to memcached_free() when you are finished using it. memcached_free() is -the only way to make sure all memory is deallocated when you finish using -the structure. - -You may wish to avoid using memcached_create(3) or memcached_clone(3) with a -stack based allocation. The most common issues related to ABI safety involve -heap allocated structures. - -=head1 RETURN - -memcached_create() returns a pointer to the memcached_st that was created -(or initialized). On an allocation failure, it returns NULL. - -memcached_clone() returns a pointer to the memcached_st that was created -(or initialized). On an allocation failure, it returns NULL. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_create.rst b/docs/memcached_create.rst new file mode 100644 index 00000000..31f4af9a --- /dev/null +++ b/docs/memcached_create.rst @@ -0,0 +1,103 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_create, memcached_free, memcached_clone, memcached_servers_reset- Create a memcached_st structure + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_st *memcached_create (memcached_st *ptr); + + void memcached_free (memcached_st *ptr); + + memcached_st *memcached_clone (memcached_st *destination, memcached_st *source); + + void memcached_servers_reset(memcached_st); + + + +*********** +DESCRIPTION +*********** + + +memcached_create() is used to create a \ ``memcached_st``\ structure that will then +be used by other libmemcached(3) functions to communicate with the server. You +should either pass a statically declared \ ``memcached_st``\ to memcached_create() or +a NULL. If a NULL passed in then a structure is allocated for you. + +memcached_clone() is similar to memcached_create(3) but it copies the +defaults and list of servers from the source \ ``memcached_st``\ . If you pass a null as +the argument for the source to clone, it is the same as a call to memcached_create(). +If the destination argument is NULL a \ ``memcached_st``\ will be allocated for you. + +memcached_servers_reset() allows you to zero out the list of servers that +the memcached_st has. + +To clean up memory associated with a \ ``memcached_st``\ structure you should pass +it to memcached_free() when you are finished using it. memcached_free() is +the only way to make sure all memory is deallocated when you finish using +the structure. + +You may wish to avoid using memcached_create(3) or memcached_clone(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. + + +****** +RETURN +****** + + +memcached_create() returns a pointer to the memcached_st that was created +(or initialized). On an allocation failure, it returns NULL. + +memcached_clone() returns a pointer to the memcached_st that was created +(or initialized). On an allocation failure, it returns NULL. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_delete.pod b/docs/memcached_delete.pod deleted file mode 100644 index e104eab5..00000000 --- a/docs/memcached_delete.pod +++ /dev/null @@ -1,61 +0,0 @@ -=head1 NAME - -memcached_delete - Delete a key - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_return_t - memcached_delete (memcached_st *ptr, - const char *key, size_t key_length, - time_t expiration); - - memcached_return_t - memcached_delete_by_key (memcached_st *ptr, - const char *master_key, size_t master_key_length, - const char *key, size_t key_length, - time_t expiration); - -=head1 DESCRIPTION - -memcached_delete() is used to delete a particular key. -memcached_delete_by_key() works the same, but it takes a master key to -find the given value. - -Expiration works by placing the item into a delete queue, which means that -it won't possible to retrieve it by the "get" command, but "add" and -"replace" command with this key will also fail (the "set" command will -succeed, however). After the time passes, the item is finally deleted from server memory. - -Please note the the Danga memcached server removed support for expiration in -the 1.4 version. - -=head1 RETURN - -A value of type C is returned -On success that value will be C. -Use memcached_strerror() to translate this value to a printable string. - -If you are using the non-blocking mode of the library, success only -means that the message was queued for delivery. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_delete.rst b/docs/memcached_delete.rst new file mode 100644 index 00000000..7c992763 --- /dev/null +++ b/docs/memcached_delete.rst @@ -0,0 +1,97 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_delete - Delete a key + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_return_t + memcached_delete (memcached_st *ptr, + const char *key, size_t key_length, + time_t expiration); + + memcached_return_t + memcached_delete_by_key (memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + time_t expiration); + + + +*********** +DESCRIPTION +*********** + + +memcached_delete() is used to delete a particular key. +memcached_delete_by_key() works the same, but it takes a master key to +find the given value. + +Expiration works by placing the item into a delete queue, which means that +it won't possible to retrieve it by the "get" command, but "add" and +"replace" command with this key will also fail (the "set" command will +succeed, however). After the time passes, the item is finally deleted from server memory. + +Please note the the Danga memcached server removed support for expiration in +the 1.4 version. + + +****** +RETURN +****** + + +A value of type \ ``memcached_return_t``\ is returned +On success that value will be \ ``MEMCACHED_SUCCESS``\ . +Use memcached_strerror() to translate this value to a printable string. + +If you are using the non-blocking mode of the library, success only +means that the message was queued for delivery. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_dump.pod b/docs/memcached_dump.pod deleted file mode 100644 index 2d537016..00000000 --- a/docs/memcached_dump.pod +++ /dev/null @@ -1,53 +0,0 @@ -=head1 NAME - -memcached_dump - get a list of keys found on memcached servers - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_return_t - memcached_dump (memcached_st *ptr, - memcached_dump_fn *function, - void *context, - uint32_t number_of_callbacks); - - typedef memcached_return_t (*memcached_dump_fn)(memcached_st *ptr, - const char *key, - size_t key_length, - void *context); - -=head1 DESCRIPTION - -memcached_dump() is used to get a list of keys found memcached(1) servers. -Because memcached(1) does not guarentee to dump all keys you can not assume -you have fetched all keys from the server. The function takes an array -of callbacks that it will use to execute on keys as they are found. - -Currently the binar protocol is not supported. - -=head1 RETURN - -A value of type C is returned -On success that value will be C. -Use memcached_strerror() to translate this value to a printable string. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_dump.rst b/docs/memcached_dump.rst new file mode 100644 index 00000000..c9c110fe --- /dev/null +++ b/docs/memcached_dump.rst @@ -0,0 +1,89 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_dump - get a list of keys found on memcached servers + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_return_t + memcached_dump (memcached_st *ptr, + memcached_dump_fn *function, + void *context, + uint32_t number_of_callbacks); + + typedef memcached_return_t (*memcached_dump_fn)(memcached_st *ptr, + const char *key, + size_t key_length, + void *context); + + + +*********** +DESCRIPTION +*********** + + +memcached_dump() is used to get a list of keys found memcached(1) servers. +Because memcached(1) does not guarentee to dump all keys you can not assume +you have fetched all keys from the server. The function takes an array +of callbacks that it will use to execute on keys as they are found. + +Currently the binar protocol is not supported. + + +****** +RETURN +****** + + +A value of type \ ``memcached_return_t``\ is returned +On success that value will be \ ``MEMCACHED_SUCCESS``\ . +Use memcached_strerror() to translate this value to a printable string. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_flush.pod b/docs/memcached_flush.pod deleted file mode 100644 index 0ca95472..00000000 --- a/docs/memcached_flush.pod +++ /dev/null @@ -1,46 +0,0 @@ -=head1 NAME - -memcached_flush - wipe contents of memcached servers - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_return_t - memcached_flush (memcached_st *ptr, - time_t expiration); - -=head1 DESCRIPTION - -memcached_flush() is used to wipe clean the contents of memcached(1) servers. -It will either do this immediately or expire the content based on the -expiration time passed to the method (a value of zero causes an immediate -flush). The operation is not atomic to multiple servers, just atomic to a -single server. That is, it will flush the servers in the order that they were -added. - -=head1 RETURN - -A value of type C is returned -On success that value will be C. -Use memcached_strerror() to translate this value to a printable string. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_flush.rst b/docs/memcached_flush.rst new file mode 100644 index 00000000..0c6538b0 --- /dev/null +++ b/docs/memcached_flush.rst @@ -0,0 +1,82 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_flush - wipe contents of memcached servers + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_return_t + memcached_flush (memcached_st *ptr, + time_t expiration); + + + +*********** +DESCRIPTION +*********** + + +memcached_flush() is used to wipe clean the contents of memcached(1) servers. +It will either do this immediately or expire the content based on the +expiration time passed to the method (a value of zero causes an immediate +flush). The operation is not atomic to multiple servers, just atomic to a +single server. That is, it will flush the servers in the order that they were +added. + + +****** +RETURN +****** + + +A value of type \ ``memcached_return_t``\ is returned +On success that value will be \ ``MEMCACHED_SUCCESS``\ . +Use memcached_strerror() to translate this value to a printable string. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_flush_buffers.pod b/docs/memcached_flush_buffers.pod deleted file mode 100644 index 11c06dc0..00000000 --- a/docs/memcached_flush_buffers.pod +++ /dev/null @@ -1,42 +0,0 @@ -=head1 NAME - -memcached_flush_buffers - Flush buffers and send buffered commands - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_return_t - memcached_flush_buffers (memcached_st *ptr); - -=head1 DESCRIPTION - -memcached_flush_buffers() is used in conjunction with -MEMCACHED_BEHAVIOR_BUFFER_REQUESTS (see memcached_behavior(3)) to flush -all buffers by sending the buffered commands to the server for processing. - -=head1 RETURN - -A value of type C is returned -On success that value will be C. -Use memcached_strerror() to translate this value to a printable string. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Trond Norbye, Etrond.norbye@gmail.comE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) memcached_behavior(3) - -=cut - diff --git a/docs/memcached_flush_buffers.rst b/docs/memcached_flush_buffers.rst new file mode 100644 index 00000000..497d96ee --- /dev/null +++ b/docs/memcached_flush_buffers.rst @@ -0,0 +1,78 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_flush_buffers - Flush buffers and send buffered commands + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_return_t + memcached_flush_buffers (memcached_st *ptr); + + + +*********** +DESCRIPTION +*********** + + +memcached_flush_buffers() is used in conjunction with +MEMCACHED_BEHAVIOR_BUFFER_REQUESTS (see memcached_behavior(3)) to flush +all buffers by sending the buffered commands to the server for processing. + + +****** +RETURN +****** + + +A value of type \ ``memcached_return_t``\ is returned +On success that value will be \ ``MEMCACHED_SUCCESS``\ . +Use memcached_strerror() to translate this value to a printable string. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Trond Norbye, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) memcached_behavior(3) + diff --git a/docs/memcached_generate_hash_value.pod b/docs/memcached_generate_hash_value.pod deleted file mode 100644 index a2af1fc4..00000000 --- a/docs/memcached_generate_hash_value.pod +++ /dev/null @@ -1,60 +0,0 @@ -=head1 NAME - -memcached_generate_hash_value - Hash a key value - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - uint32_t - memcached_generate_hash_value (const char *key, - size_t key_length, - memcached_hash_t hash_algorithm); - - uint32_t - memcached_generate_hash (memcached_st *ptr, - const char *key, - size_t key_length); - -=head1 DESCRIPTION - -memcached_generate_hash_value() allows you to hash a key using one of -the hash functions defined in the library. This method is provided for -the convenience of higher-level language bindings and is not necessary -for normal memcache operations. - -The allowed hash algorithm constants are listed in the manpage for -memcached_behavior_set(). - -memcached_generate_hash() takes a memcached_st struture and produces -the hash value that would have been generated based on the defaults -of the memcached_st structure. - -As of version 0.36 all hash methods have been placed into the library -libhashkit(3) which is linked with libmemcached(3). - -=head1 RETURN - -A 32-bit integer which is the result of hashing the given key. -For 64-bit hash algorithms, only the least-significant 32 bits are -returned. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_behavior_set(3) libhashkit(3) - -=cut - diff --git a/docs/memcached_generate_hash_value.rst b/docs/memcached_generate_hash_value.rst new file mode 100644 index 00000000..278bf9c5 --- /dev/null +++ b/docs/memcached_generate_hash_value.rst @@ -0,0 +1,96 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_generate_hash_value - Hash a key value + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + uint32_t + memcached_generate_hash_value (const char *key, + size_t key_length, + memcached_hash_t hash_algorithm); + + uint32_t + memcached_generate_hash (memcached_st *ptr, + const char *key, + size_t key_length); + + + +*********** +DESCRIPTION +*********** + + +memcached_generate_hash_value() allows you to hash a key using one of +the hash functions defined in the library. This method is provided for +the convenience of higher-level language bindings and is not necessary +for normal memcache operations. + +The allowed hash algorithm constants are listed in the manpage for +memcached_behavior_set(). + +memcached_generate_hash() takes a memcached_st struture and produces +the hash value that would have been generated based on the defaults +of the memcached_st structure. + +As of version 0.36 all hash methods have been placed into the library +libhashkit(3) which is linked with libmemcached(3). + + +****** +RETURN +****** + + +A 32-bit integer which is the result of hashing the given key. +For 64-bit hash algorithms, only the least-significant 32 bits are +returned. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_behavior_set(3) libhashkit(3) + diff --git a/docs/memcached_get.pod b/docs/memcached_get.pod deleted file mode 100644 index 5faa2db9..00000000 --- a/docs/memcached_get.pod +++ /dev/null @@ -1,177 +0,0 @@ -=head1 NAME - -memcached_get, memcached_mget, memcached_fetch, memcached_mget_execute, -memcached_mget_execute_by_key - Get a value - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_result_st * - 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, - 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 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_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 -works asynchronously. memcached_fetch() is then used to retrieve any keys -found. No error is given on keys that are not found. You must call either -memcached_fetch() or memcached_fetch_result() after a successful call to -memcached_mget(). You should continue to call these functions until they -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_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 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_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) -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 - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_get.rst b/docs/memcached_get.rst new file mode 100644 index 00000000..a489af43 --- /dev/null +++ b/docs/memcached_get.rst @@ -0,0 +1,212 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_get, memcached_mget, memcached_fetch, memcached_mget_execute, +memcached_mget_execute_by_key - Get a value + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_result_st * + 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, + 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); + + + +*********** +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 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_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 +works asynchronously. memcached_fetch() is then used to retrieve any keys +found. No error is given on keys that are not found. You must call either +memcached_fetch() or memcached_fetch_result() after a successful call to +memcached_mget(). You should continue to call these functions until they +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_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 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_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) +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 \ ``MEMCACHED_BEHAVIOR_USE_UDP``\ +has been set. Executing any of these functions with this behavior on will result in +\ ``MEMCACHED_NOT_SUPPORTED``\ being returned or, for those functions which do not return +a \ ``memcached_return_t``\ , the error function parameter will be set to +\ ``MEMCACHED_NOT_SUPPORTED``\ . + + +****** +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. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_memory_allocators.pod b/docs/memcached_memory_allocators.pod deleted file mode 100644 index 6b9ddf9f..00000000 --- a/docs/memcached_memory_allocators.pod +++ /dev/null @@ -1,99 +0,0 @@ -=head1 NAME - -memcached_set_memory_allocators, memcached_get_memory_allocators, memcached_set_memory_allocators_context - Manage memory allocator functions - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_return_t - memcached_set_memory_allocators (memcached_st *ptr, - memcached_malloc_fn mem_malloc, - memcached_free_fn mem_free, - memcached_realloc_fn mem_realloc, - memcached_calloc_fn mem_calloc, - void *context); - - void - memcached_get_memory_allocators (memcached_st *ptr, - memcached_malloc_fn *mem_malloc, - memcached_free_fn *mem_free, - memcached_realloc_fn *mem_realloc, - memcached_calloc_fn *mem_calloc); - - void * - memcached_get_memory_allocators_context(const memcached_st *ptr); - - void * - (*memcached_malloc_fn) (memcached_st *ptr, const size_t size, - void *context); - - void * - (*memcached_realloc_fn) (memcached_st *ptr, void *mem, - const size_t size, - void *context); - - void - (*memcached_free_fn) (memcached_st *ptr, void *mem, - void *context); - - void * - (*memcached_calloc_fn) (memcached_st *ptr, - size_t nelem, - const size_t elsize, - void *context); - - -=head1 DESCRIPTION - -libmemcached(3) allows you to specify your own memory allocators optimized -for your application. - -memcached_set_memory_allocators() is used to set the memory allocators used -by the memcached instance specified by ptr. Please note that you cannot -override only one of the memory allocators, you have to specify a complete -new set if you want to override one of them. All of the memory allocation -functions should behave as specified in the C99 standard. Specify NULL as -all functions to reset them to the default values. - -memcached_get_memory_allocators() is used to get the currently used memory -allocators by a mamcached handle. - -memcached_get_memory_allocators_context() returns the void * that was -passed in during the call to memcached_set_memory_allocators(). - -The first argument to the memory allocator functions is a pointer to a -memcached structure, the is passed as const and you will need to clone -it in order to make use of any operation which would modify it. - -=head1 NOTES - -In version 0.38 all functions were modified to have a context void pointer -passed to them. This was so that customer allocators could have their -own space for memory. - -=head1 RETURN - -memcached_set_memory_allocators() return MEMCACHED_SUCCESS upon success, -and MEMCACHED_FAILURE if you don't pass a complete set of function pointers. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Trond Norbye, Etrond.norbye@gmail.comE -Brian Aker, Ebrian@tangent.orf - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_get_user_data(3) memcached_set_user_data(3) - -=cut - diff --git a/docs/memcached_memory_allocators.rst b/docs/memcached_memory_allocators.rst new file mode 100644 index 00000000..83c96b6b --- /dev/null +++ b/docs/memcached_memory_allocators.rst @@ -0,0 +1,138 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_set_memory_allocators, memcached_get_memory_allocators, memcached_set_memory_allocators_context - Manage memory allocator functions + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_return_t + memcached_set_memory_allocators (memcached_st *ptr, + memcached_malloc_fn mem_malloc, + memcached_free_fn mem_free, + memcached_realloc_fn mem_realloc, + memcached_calloc_fn mem_calloc, + void *context); + + void + memcached_get_memory_allocators (memcached_st *ptr, + memcached_malloc_fn *mem_malloc, + memcached_free_fn *mem_free, + memcached_realloc_fn *mem_realloc, + memcached_calloc_fn *mem_calloc); + + void * + memcached_get_memory_allocators_context(const memcached_st *ptr); + + void * + (*memcached_malloc_fn) (memcached_st *ptr, const size_t size, + void *context); + + void * + (*memcached_realloc_fn) (memcached_st *ptr, void *mem, + const size_t size, + void *context); + + void + (*memcached_free_fn) (memcached_st *ptr, void *mem, + void *context); + + void * + (*memcached_calloc_fn) (memcached_st *ptr, + size_t nelem, + const size_t elsize, + void *context); + + + +*********** +DESCRIPTION +*********** + + +libmemcached(3) allows you to specify your own memory allocators optimized +for your application. + +memcached_set_memory_allocators() is used to set the memory allocators used +by the memcached instance specified by ptr. Please note that you cannot +override only one of the memory allocators, you have to specify a complete +new set if you want to override one of them. All of the memory allocation +functions should behave as specified in the C99 standard. Specify NULL as +all functions to reset them to the default values. + +memcached_get_memory_allocators() is used to get the currently used memory +allocators by a mamcached handle. + +memcached_get_memory_allocators_context() returns the void \* that was +passed in during the call to memcached_set_memory_allocators(). + +The first argument to the memory allocator functions is a pointer to a +memcached structure, the is passed as const and you will need to clone +it in order to make use of any operation which would modify it. + + +***** +NOTES +***** + + +In version 0.38 all functions were modified to have a context void pointer +passed to them. This was so that customer allocators could have their +own space for memory. + + +****** +RETURN +****** + + +memcached_set_memory_allocators() return MEMCACHED_SUCCESS upon success, +and MEMCACHED_FAILURE if you don't pass a complete set of function pointers. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Trond Norbye, +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_get_user_data(3) memcached_set_user_data(3) + diff --git a/docs/memcached_pool.pod b/docs/memcached_pool.pod deleted file mode 100644 index b974be67..00000000 --- a/docs/memcached_pool.pod +++ /dev/null @@ -1,99 +0,0 @@ -=head1 NAME - -memcached_pool_create, memcached_pool_destroy, memcached_pool_push, memcached_pool_pop - Manage pools - -=head1 LIBRARY - -C Client Library for memcached (libmemcachedutil, -lmemcachedutil) - -=head1 SYNOPSIS - - #include - - memcached_pool_st * - memcached_pool_create(memcached_st* mmc, int initial, int max); - - memcached_st * - memcached_pool_destroy(memcached_pool_st* pool); - - memcached_st * - memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc); - - memcached_return_t - memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc); - - memcached_st *memcached_create (memcached_st *ptr); - - memcached_return_t - memcached_pool_behavior_set(memcached_pool_st *pool, - memcached_behavior_t flag, - uint64_t data) - - memcached_return_t - memcached_pool_behavior_get(memcached_pool_st *pool, - memcached_behavior_t flag, - uint64_t *value) - -=head1 DESCRIPTION - -memcached_pool_create() is used to create a connection pool of objects you -may use to remove the overhead of using memcached_clone for short -lived C objects. The mmc argument should be an -initialised C structure, and a successfull invocation of -memcached_pool_create takes full ownership of the variable (until it -is released by memcached_pool_destroy). The C argument -specifies the initial size of the connection pool, and the C -argument specifies the maximum size the connection pool should grow -to. Please note that the library will allocate a fixed size buffer -scaled to the max size of the connection pool, so you should not pass -MAXINT or some other large number here. - -memcached_pool_destroy() is used to destroy the connection pool -created with memcached_pool_create() and release all allocated -resources. It will return the pointer to the C structure -passed as an argument to memcached_pool_create(), and returns the -ownership of the pointer to the caller. - -memcached_pool_pop() is used to grab a connection structure from the -connection pool. The block argument specifies if the function should -block and wait for a connection structure to be available if we try -to exceed the maximum size. - -memcached_pool_push() is used to return a connection structure back to the pool. - -memcached_pool_behavior_set() and memcached_pool_behagior_get() is -used to get/set behavior flags on all connections in the pool. - - -=head1 RETURN - -memcached_pool_create() returns a pointer to the newly created -memcached_pool_st structure. On an allocation failure, it returns -NULL. - -memcached_pool_destroy() returns the pointer (and ownership) to the -memcached_st structure used to create the pool. If connections are in -use it returns NULL. - -memcached_pool_pop() returns a pointer to a memcached_st structure -from the pool (or NULL if an allocation cannot be satisfied). - -memcached_pool_push() returns MEMCACHED_SUCCESS upon success. - -memcached_pool_behavior_get() and memcached_pool_behavior_get() -returns MEMCACHED_SUCCESS upon success. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Trond Norbye, Etrond.norbye@gmail.comE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3) - -=cut diff --git a/docs/memcached_pool.rst b/docs/memcached_pool.rst new file mode 100644 index 00000000..a3e57899 --- /dev/null +++ b/docs/memcached_pool.rst @@ -0,0 +1,135 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_pool_create, memcached_pool_destroy, memcached_pool_push, memcached_pool_pop - Manage pools + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcachedutil, -lmemcachedutil) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_pool_st * + memcached_pool_create(memcached_st* mmc, int initial, int max); + + memcached_st * + memcached_pool_destroy(memcached_pool_st* pool); + + memcached_st * + memcached_pool_pop (memcached_pool_st* pool, bool block, memcached_return_t *rc); + + memcached_return_t + memcached_pool_push(memcached_pool_st* pool, memcached_st *mmc); + + memcached_st *memcached_create (memcached_st *ptr); + + memcached_return_t + memcached_pool_behavior_set(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t data) + + memcached_return_t + memcached_pool_behavior_get(memcached_pool_st *pool, + memcached_behavior_t flag, + uint64_t *value) + + + +*********** +DESCRIPTION +*********** + + +memcached_pool_create() is used to create a connection pool of objects you +may use to remove the overhead of using memcached_clone for short +lived \ ``memcached_st``\ objects. The mmc argument should be an +initialised \ ``memcached_st``\ structure, and a successfull invocation of +memcached_pool_create takes full ownership of the variable (until it +is released by memcached_pool_destroy). The \ ``initial``\ argument +specifies the initial size of the connection pool, and the \ ``max``\ +argument specifies the maximum size the connection pool should grow +to. Please note that the library will allocate a fixed size buffer +scaled to the max size of the connection pool, so you should not pass +MAXINT or some other large number here. + +memcached_pool_destroy() is used to destroy the connection pool +created with memcached_pool_create() and release all allocated +resources. It will return the pointer to the \ ``memcached_st``\ structure +passed as an argument to memcached_pool_create(), and returns the +ownership of the pointer to the caller. + +memcached_pool_pop() is used to grab a connection structure from the +connection pool. The block argument specifies if the function should +block and wait for a connection structure to be available if we try +to exceed the maximum size. + +memcached_pool_push() is used to return a connection structure back to the pool. + +memcached_pool_behavior_set() and memcached_pool_behagior_get() is +used to get/set behavior flags on all connections in the pool. + + +****** +RETURN +****** + + +memcached_pool_create() returns a pointer to the newly created +memcached_pool_st structure. On an allocation failure, it returns +NULL. + +memcached_pool_destroy() returns the pointer (and ownership) to the +memcached_st structure used to create the pool. If connections are in +use it returns NULL. + +memcached_pool_pop() returns a pointer to a memcached_st structure +from the pool (or NULL if an allocation cannot be satisfied). + +memcached_pool_push() returns MEMCACHED_SUCCESS upon success. + +memcached_pool_behavior_get() and memcached_pool_behavior_get() +returns MEMCACHED_SUCCESS upon success. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Trond Norbye, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_create(3) memcached_free(3) libmemcachedutil(3) memcached_behavior_get(3) memcached_behavior_set(3) + diff --git a/docs/memcached_quit.pod b/docs/memcached_quit.pod deleted file mode 100644 index 270dd467..00000000 --- a/docs/memcached_quit.pod +++ /dev/null @@ -1,47 +0,0 @@ -=head1 NAME - -memcached_quit - Disconnect from all servers - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - void memcached_quit (memcached_st *ptr); - -=head1 DESCRIPTION - -memcached_quit() will disconnect you from all currently connected servers. -It will also reset the state of the connection (ie, any memcached_fetch() you -are in the middle of will be terminated). This function is called -automatically when you call memcached_free() on the C structure. - -You do not need to call this on your own. All operations to change server -hashes and parameters will handle connections to the server for you. This -function is provided mainly so that you can timeout your connections or -reset connections during the middle of a memcached_fetch(). - -=head1 RETURN - -A value of type C is returned -On success that value will be C. -Use memcached_strerror() to translate this value to a printable string. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_quit.rst b/docs/memcached_quit.rst new file mode 100644 index 00000000..cf5abdbe --- /dev/null +++ b/docs/memcached_quit.rst @@ -0,0 +1,83 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_quit - Disconnect from all servers + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + void memcached_quit (memcached_st *ptr); + + + +*********** +DESCRIPTION +*********** + + +memcached_quit() will disconnect you from all currently connected servers. +It will also reset the state of the connection (ie, any memcached_fetch() you +are in the middle of will be terminated). This function is called +automatically when you call memcached_free() on the \ ``memcached_st``\ structure. + +You do not need to call this on your own. All operations to change server +hashes and parameters will handle connections to the server for you. This +function is provided mainly so that you can timeout your connections or +reset connections during the middle of a memcached_fetch(). + + +****** +RETURN +****** + + +A value of type \ ``memcached_return``\ is returned +On success that value will be \ ``MEMCACHED_SUCCESS``\ . +Use memcached_strerror() to translate this value to a printable string. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_result_st.pod b/docs/memcached_result_st.pod deleted file mode 100644 index 7fbc394b..00000000 --- a/docs/memcached_result_st.pod +++ /dev/null @@ -1,115 +0,0 @@ -=head1 NAME - -memcached_result_create, memcached_result_free, -memcached_result_key_value, memcached_result_key_length, -memcached_result_value, memcached_result_length, -memcached_result_flags, memcached_result_cas - Work with memcached_result_st - - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_result_st * - memcached_result_create (memcached_st *ptr, - memcached_result_st *result); - - void memcached_result_free (memcached_result_st *result); - - const char * memcached_result_key_value (memcached_result_st *result); - - size_t memcached_result_key_length (const memcached_result_st *result); - - const char *memcached_result_value (memcached_result_st *ptr); - - size_t memcached_result_length (const memcached_result_st *ptr); - - uint32_t memcached_result_flags (const memcached_result_st *result) - - uint64_t memcached_result_cas (const memcached_result_st *result); - - memcached_return_t - memcached_result_set_value (memcached_result_st *ptr, - const char *value, size_t length) - - void memcached_result_set_flags (memcached_result_st *ptr, uint32_t flags) - - void memcached_result_set_expiration (memcached_result_st *ptr, time_t) - -=head1 DESCRIPTION - -libmemcached(3) can optionally return a memcached_result_st which acts as a -result object. The result objects have added benefits over the character -pointer returns in that they are forward compatible with new return items -that future memcached servers may implement (the best current example of -this is the CAS return item). The structures can also be reused which will -save on calls to malloc(3). It is suggested that you use result objects over -char * return functions. - -The structure of memcached_result_st has been encapsulated, you should not -write code to directly access members of the structure. - -memcached_result_create() will either allocate memory for a -memcached_result_st or will initialize a structure passed to it. - -memcached_result_free() will deallocate any memory attached to the -structure. If the structure was also alloacted, it will deallocate it. - -memcached_result_key_value() returns the key value associated with the -current result object. - -memcached_result_key_length() returns the key length associated with the -current result object. - -memcached_result_value() returns the result value associated with the -current result object. - -memcached_result_length() returns the result length associated with the -current result object. - -memcached_result_flags() returns the flags associated with the -current result object. - -memcached_result_cas() returns the cas associated with the -current result object. This value will only be available if the server -supports it. - -memcached_result_set_value() takes a byte array and a size and sets -the result to this value. This function is used for trigger responses. - -void memcached_result_set_flags() takes a result structure and stores -a new value for the flags field. - -void memcached_result_set_expiration(A) takes a result structure and stores -a new value for the expiration field (this is only used by read through -triggers). - -You may wish to avoid using memcached_result_create(3) with a -stack based allocation. The most common issues related to ABI safety involve -heap allocated structures. - -=head1 RETURN - -Varies, see particular functions. All structures must have -memcached_result_free() called on them for cleanup purposes. Failure to -do this will result in leaked memory. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_result_st.rst b/docs/memcached_result_st.rst new file mode 100644 index 00000000..c33852d2 --- /dev/null +++ b/docs/memcached_result_st.rst @@ -0,0 +1,150 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_result_create, memcached_result_free, +memcached_result_key_value, memcached_result_key_length, +memcached_result_value, memcached_result_length, +memcached_result_flags, memcached_result_cas - Work with memcached_result_st + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_result_st * + memcached_result_create (memcached_st *ptr, + memcached_result_st *result); + + void memcached_result_free (memcached_result_st *result); + + const char * memcached_result_key_value (memcached_result_st *result); + + size_t memcached_result_key_length (const memcached_result_st *result); + + const char *memcached_result_value (memcached_result_st *ptr); + + size_t memcached_result_length (const memcached_result_st *ptr); + + uint32_t memcached_result_flags (const memcached_result_st *result) + + uint64_t memcached_result_cas (const memcached_result_st *result); + + memcached_return_t + memcached_result_set_value (memcached_result_st *ptr, + const char *value, size_t length) + + void memcached_result_set_flags (memcached_result_st *ptr, uint32_t flags) + + void memcached_result_set_expiration (memcached_result_st *ptr, time_t) + + + +*********** +DESCRIPTION +*********** + + +libmemcached(3) can optionally return a memcached_result_st which acts as a +result object. The result objects have added benefits over the character +pointer returns in that they are forward compatible with new return items +that future memcached servers may implement (the best current example of +this is the CAS return item). The structures can also be reused which will +save on calls to malloc(3). It is suggested that you use result objects over +char \* return functions. + +The structure of memcached_result_st has been encapsulated, you should not +write code to directly access members of the structure. + +memcached_result_create() will either allocate memory for a +memcached_result_st or will initialize a structure passed to it. + +memcached_result_free() will deallocate any memory attached to the +structure. If the structure was also alloacted, it will deallocate it. + +memcached_result_key_value() returns the key value associated with the +current result object. + +memcached_result_key_length() returns the key length associated with the +current result object. + +memcached_result_value() returns the result value associated with the +current result object. + +memcached_result_length() returns the result length associated with the +current result object. + +memcached_result_flags() returns the flags associated with the +current result object. + +memcached_result_cas() returns the cas associated with the +current result object. This value will only be available if the server +supports it. + +memcached_result_set_value() takes a byte array and a size and sets +the result to this value. This function is used for trigger responses. + +void memcached_result_set_flags() takes a result structure and stores +a new value for the flags field. + +void memcached_result_set_expiration(A) takes a result structure and stores +a new value for the expiration field (this is only used by read through +triggers). + +You may wish to avoid using memcached_result_create(3) with a +stack based allocation. The most common issues related to ABI safety involve +heap allocated structures. + + +****** +RETURN +****** + + +Varies, see particular functions. All structures must have +memcached_result_free() called on them for cleanup purposes. Failure to +do this will result in leaked memory. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_sasl.pod b/docs/memcached_sasl.pod deleted file mode 100644 index 541cd487..00000000 --- a/docs/memcached_sasl.pod +++ /dev/null @@ -1,64 +0,0 @@ -=head1 NAME - -memcached_set_sasl_callbacks, memcached_get_sasl_callbacks, -memcached_sasl_set_auth_data, memcached_destroy_sasl_auth_data - SASL support - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - void memcached_set_sasl_callbacks(memcached_st *ptr, - const sasl_callback_t *callbacks) - - const sasl_callback_t *memcached_get_sasl_callbacks(memcached_st *ptr) - - memcached_return memcached_set_sasl_auth_data(memcached_st *ptr, - const char *username, - const char *password) - memcached_return memcached_destroy_sasl_auth_data(memcached_st *ptr) - - -=head1 DESCRIPTION - -libmemcached(3) allows you to plug in your own callbacks function used by -libsasl to perform SASL authentication. - -Please note that SASL requires the memcached binary protocol, and you have -to specify the callbacks before you connect to the server. - -memcached_set_sasl_auth_data() is a helper function for you defining -the basic functionality for you, but it will store the username and password -in memory. If you choose to use this method you have to call -memcached_destroy_sasl_auth_data before calling memcached_free to avoid -a memory leak. You should NOT call memcached_destroy_sasl_auth_data if you -specify your own callback function with memcached_set_sasl_callbacks(). - -You as a client user have to initialize libsasl by using sasl_client_init -before enabling it in libmemcached, and you have to shut down libsasl by -calling sasl_done() when you are done using SASL from libmemcached. - - -=head1 RETURN - -memcached_get_sasl_callbacks() returns the callbacks currently used -by this memcached handle. -memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Trond Norbye, Etrond.norbye@gmail.comE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) - -=cut diff --git a/docs/memcached_sasl.rst b/docs/memcached_sasl.rst new file mode 100644 index 00000000..1994c751 --- /dev/null +++ b/docs/memcached_sasl.rst @@ -0,0 +1,99 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_set_sasl_callbacks, memcached_get_sasl_callbacks, +memcached_sasl_set_auth_data, memcached_destroy_sasl_auth_data - SASL support + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + void memcached_set_sasl_callbacks(memcached_st *ptr, + const sasl_callback_t *callbacks) + + const sasl_callback_t *memcached_get_sasl_callbacks(memcached_st *ptr) + + memcached_return memcached_set_sasl_auth_data(memcached_st *ptr, + const char *username, + const char *password) + memcached_return memcached_destroy_sasl_auth_data(memcached_st *ptr) + + + +*********** +DESCRIPTION +*********** + + +libmemcached(3) allows you to plug in your own callbacks function used by +libsasl to perform SASL authentication. + +Please note that SASL requires the memcached binary protocol, and you have +to specify the callbacks before you connect to the server. + +memcached_set_sasl_auth_data() is a helper function for you defining +the basic functionality for you, but it will store the username and password +in memory. If you choose to use this method you have to call +memcached_destroy_sasl_auth_data before calling memcached_free to avoid +a memory leak. You should NOT call memcached_destroy_sasl_auth_data if you +specify your own callback function with memcached_set_sasl_callbacks(). + +You as a client user have to initialize libsasl by using sasl_client_init +before enabling it in libmemcached, and you have to shut down libsasl by +calling sasl_done() when you are done using SASL from libmemcached. + + +****** +RETURN +****** + + +memcached_get_sasl_callbacks() returns the callbacks currently used +by this memcached handle. +memcached_get_sasl_set_auth_data() returns MEMCACHED_SUCCESS upon success. + + +**** +HOME +**** + + +To find out more information please check: +`http://libmemcached.org/ `_ + + +****** +AUTHOR +****** + + +Trond Norbye, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) + diff --git a/docs/memcached_server_st.pod b/docs/memcached_server_st.pod deleted file mode 100644 index d50334ae..00000000 --- a/docs/memcached_server_st.pod +++ /dev/null @@ -1,84 +0,0 @@ -=head1 NAME - -memcached_server_list_free, memcached_server_list_append, -memcached_server_list_count, memcached_servers_parse - Manage server list - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - const memcached_server_instance_st - memcached_server_list (memcached_st *ptr); - - void memcached_server_list_free (memcached_server_list_st list); - - memcached_server_list_st - memcached_server_list_append (memcached_server_list_st list, - const char *hostname, - unsigned int port, - memcached_return_t *error); - - uint32_t memcached_server_list_count (memcached_server_list_st list); - - memcached_server_list_st memcached_servers_parse (const char *server_strings); - - const char *memcached_server_error (memcached_server_instance_st instance); - - DEPRECATED - void memcached_server_error_reset (memcached_server_instance_st list); - -=head1 DESCRIPTION - -libmemcached(3) operates on a list of hosts which are stored in -memcached_server_st structures. You should not modify these structures -directly. Functions are provided to modify these structures (and more can be -added, just ask!). - -memcached_server_list() is used to provide an array of all defined hosts. -This was incorrectly documented as "requiring free()" up till version 0.39. - -memcached_server_list_free() deallocates all memory associated with the array -of memcached_server_st that you passed to it. - -memcached_server_list_append() adds a server to the end of a -memcached_server_st array. On error null will be returned and the -memcached_return_t pointer you passed into the function will be set with the -appropriate error. If the value of port is zero, it is set to the default -port of a memcached server. - -memcached_servers_parse() takes a string, the type that is used for the -command line applications, and parse it to an array of memcached_server_st. -The example is "localhost, foo:555, foo, bar". All hosts except foo:555 will -be set to the default port, while that host will have a port of 555. - -memcached_server_error() can be used to look at the text of the last error -message sent by the server to to the client. - -Before version 0.39 theses functions used a memcache_server_st *. In 0.39 -memcached_server_st * was aliased to memcached_server_list_st. This was -done for a style reason/to help clean up some concepts in the code. - - -=head1 RETURN - -Varies, see particular functions. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_server_st.rst b/docs/memcached_server_st.rst new file mode 100644 index 00000000..b1c54501 --- /dev/null +++ b/docs/memcached_server_st.rst @@ -0,0 +1,119 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_server_list_free, memcached_server_list_append, +memcached_server_list_count, memcached_servers_parse - Manage server list + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + const memcached_server_instance_st + memcached_server_list (memcached_st *ptr); + + void memcached_server_list_free (memcached_server_list_st list); + + memcached_server_list_st + memcached_server_list_append (memcached_server_list_st list, + const char *hostname, + unsigned int port, + memcached_return_t *error); + + uint32_t memcached_server_list_count (memcached_server_list_st list); + + memcached_server_list_st memcached_servers_parse (const char *server_strings); + + const char *memcached_server_error (memcached_server_instance_st instance); + + DEPRECATED + void memcached_server_error_reset (memcached_server_instance_st list); + + + +*********** +DESCRIPTION +*********** + + +libmemcached(3) operates on a list of hosts which are stored in +memcached_server_st structures. You should not modify these structures +directly. Functions are provided to modify these structures (and more can be +added, just ask!). + +memcached_server_list() is used to provide an array of all defined hosts. +This was incorrectly documented as "requiring free()" up till version 0.39. + +memcached_server_list_free() deallocates all memory associated with the array +of memcached_server_st that you passed to it. + +memcached_server_list_append() adds a server to the end of a +memcached_server_st array. On error null will be returned and the +memcached_return_t pointer you passed into the function will be set with the +appropriate error. If the value of port is zero, it is set to the default +port of a memcached server. + +memcached_servers_parse() takes a string, the type that is used for the +command line applications, and parse it to an array of memcached_server_st. +The example is "localhost, foo:555, foo, bar". All hosts except foo:555 will +be set to the default port, while that host will have a port of 555. + +memcached_server_error() can be used to look at the text of the last error +message sent by the server to to the client. + +Before version 0.39 theses functions used a memcache_server_st \*. In 0.39 +memcached_server_st \* was aliased to memcached_server_list_st. This was +done for a style reason/to help clean up some concepts in the code. + + +****** +RETURN +****** + + +Varies, see particular functions. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_servers.pod b/docs/memcached_servers.pod deleted file mode 100644 index f2d66c94..00000000 --- a/docs/memcached_servers.pod +++ /dev/null @@ -1,118 +0,0 @@ -=head1 NAME - -memcached_server_count, memcached_server_list, memcached_server_add, memcached_server_push, memcached_server_get_last_disconnect, memcached_server_cursor - Manage server list - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - uint32_t memcached_server_count (memcached_st *ptr); - - memcached_return_t - memcached_server_add (memcached_st *ptr, - const char *hostname, - in_port_t port); - - memcached_return_t - memcached_server_add_udp (memcached_st *ptr, - const char *hostname, - in_port_t port); - - memcached_return_t - memcached_server_add_unix_socket (memcached_st *ptr, - const char *socket); - - memcached_return_t - memcached_server_push (memcached_st *ptr, - const memcached_server_st *list); - - memcached_server_instance_st - memcached_server_by_key (const memcached_st *ptr, - const char *key, - size_t key_length, - memcached_return_t *error); - - memcached_server_instance_st - memcached_server_get_last_disconnect (const memcached_st *ptr) - - memcached_return_t - memcached_server_cursor(const memcached_st *ptr, - const memcached_server_fn *callback, - void *context, - uint32_t number_of_callbacks); - - -=head1 DESCRIPTION - -libmemcached(3) performs operations on a list of hosts. The order of these -hosts determine routing to keys. Functions are provided to add keys to -memcached_st structures. To manipulate lists of servers see -memcached_server_st(3). - -memcached_server_count() provides you a count of the current number of -servers being used by a C structure. - -memcached_server_add() pushes a single TCP server into the C -structure. This server will be placed at the end. Duplicate servers are -allowed, so duplication is not checked. Executing this function with the -C behavior set will result in a -C. - -memcached_server_add_udp() pushes a single UDP server into the C -structure. This server will be placed at the end. Duplicate servers are -allowed, so duplication is not checked. Executing this function with out -setting the C behavior will result in a -C. - -memcached_server_add_unix_socket() pushes a single UNIX socket into the -C structure. This UNIX socket will be placed at the end. -Duplicate servers are allowed, so duplication is not checked. The length -of the filename must be one character less then MEMCACHED_MAX_HOST_LENGTH. - -memcached_server_push() pushes an array of C into -the C structure. These servers will be placed at the -end. Duplicate servers are allowed, so duplication is not checked. A -copy is made of structure so the list provided (and any operations on -the list) are not saved. - -memcached_server_by_key() allows you to provide a key and retrieve the -server which would be used for assignment. This structure is cloned -from its original structure and must be freed. If NULL is returned you -should consult *error. The returning structure should be freed with -memcached_server_free(). - -memcached_server_get_last_disconnect() returns a pointer to the last server -for which there was a connection problem. It does not mean this particular -server is currently dead but if the library is reporting a server is, -the returned server is a very good candidate. - -memcached_server_cursor() takes a memcached_st and loops through the -list of hosts currently in the cursor calling the list of callback -functions provided. You can optionally pass in a value via -context which will be provided to each callback function. An error -return from any callback will terminate the loop. memcached_server_cursor() -is passed the original caller memcached_st in its current state. - -=head1 RETURN - -Varies, see particular functions. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_servers.rst b/docs/memcached_servers.rst new file mode 100644 index 00000000..2d58d9c6 --- /dev/null +++ b/docs/memcached_servers.rst @@ -0,0 +1,153 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_server_count, memcached_server_list, memcached_server_add, memcached_server_push, memcached_server_get_last_disconnect, memcached_server_cursor - Manage server list + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + uint32_t memcached_server_count (memcached_st *ptr); + + memcached_return_t + memcached_server_add (memcached_st *ptr, + const char *hostname, + in_port_t port); + + memcached_return_t + memcached_server_add_udp (memcached_st *ptr, + const char *hostname, + in_port_t port); + + memcached_return_t + memcached_server_add_unix_socket (memcached_st *ptr, + const char *socket); + + memcached_return_t + memcached_server_push (memcached_st *ptr, + const memcached_server_st *list); + + memcached_server_instance_st + memcached_server_by_key (const memcached_st *ptr, + const char *key, + size_t key_length, + memcached_return_t *error); + + memcached_server_instance_st + memcached_server_get_last_disconnect (const memcached_st *ptr) + + memcached_return_t + memcached_server_cursor(const memcached_st *ptr, + const memcached_server_fn *callback, + void *context, + uint32_t number_of_callbacks); + + + +*********** +DESCRIPTION +*********** + + +libmemcached(3) performs operations on a list of hosts. The order of these +hosts determine routing to keys. Functions are provided to add keys to +memcached_st structures. To manipulate lists of servers see +memcached_server_st(3). + +memcached_server_count() provides you a count of the current number of +servers being used by a \ ``memcached_st``\ structure. + +memcached_server_add() pushes a single TCP server into the \ ``memcached_st``\ +structure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with the +\ ``MEMCACHED_BEHAVIOR_USE_UDP``\ behavior set will result in a +\ ``MEMCACHED_INVALID_HOST_PROTOCOL``\ . + +memcached_server_add_udp() pushes a single UDP server into the \ ``memcached_st``\ +structure. This server will be placed at the end. Duplicate servers are +allowed, so duplication is not checked. Executing this function with out +setting the \ ``MEMCACHED_BEHAVIOR_USE_UDP``\ behavior will result in a +\ ``MEMCACHED_INVALID_HOST_PROTOCOL``\ . + +memcached_server_add_unix_socket() pushes a single UNIX socket into the +\ ``memcached_st``\ structure. This UNIX socket will be placed at the end. +Duplicate servers are allowed, so duplication is not checked. The length +of the filename must be one character less then MEMCACHED_MAX_HOST_LENGTH. + +memcached_server_push() pushes an array of \ ``memcached_server_st``\ into +the \ ``memcached_st``\ structure. These servers will be placed at the +end. Duplicate servers are allowed, so duplication is not checked. A +copy is made of structure so the list provided (and any operations on +the list) are not saved. + +memcached_server_by_key() allows you to provide a key and retrieve the +server which would be used for assignment. This structure is cloned +from its original structure and must be freed. If NULL is returned you +should consult \*error. The returning structure should be freed with +memcached_server_free(). + +memcached_server_get_last_disconnect() returns a pointer to the last server +for which there was a connection problem. It does not mean this particular +server is currently dead but if the library is reporting a server is, +the returned server is a very good candidate. + +memcached_server_cursor() takes a memcached_st and loops through the +list of hosts currently in the cursor calling the list of callback +functions provided. You can optionally pass in a value via +context which will be provided to each callback function. An error +return from any callback will terminate the loop. memcached_server_cursor() +is passed the original caller memcached_st in its current state. + + +****** +RETURN +****** + + +Varies, see particular functions. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_set.pod b/docs/memcached_set.pod deleted file mode 100644 index 13330dcf..00000000 --- a/docs/memcached_set.pod +++ /dev/null @@ -1,187 +0,0 @@ -=head1 NAME - -memcached_set, memcached_add, memcached_replace - Store value on server - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - 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); - - 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); - - 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); - - memcached_return_t - memcached_prepend(memcached_st *ptr, - const char *key, size_t key_length, - const char *value, size_t value_length, - time_t expiration, - uint32_t flags) - - memcached_return_t - memcached_append(memcached_st *ptr, - const char *key, size_t key_length, - const char *value, size_t value_length, - time_t expiration, - uint32_t flags) - 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); - - memcached_return_t - memcached_set_by_key(memcached_st *ptr, - const char *master_key, size_t master_key_length, - const char *key, size_t key_length, - const char *value, size_t value_length, - time_t expiration, - uint32_t flags); - - memcached_return_t - memcached_add_by_key(memcached_st *ptr, - const char *master_key, size_t master_key_length, - const char *key, size_t key_length, - const char *value, size_t value_length, - time_t expiration, - uint32_t flags); - - memcached_return_t - memcached_replace_by_key(memcached_st *ptr, - const char *master_key, size_t master_key_length, - const char *key, size_t key_length, - const char *value, size_t value_length, - time_t expiration, - uint32_t flags); - - memcached_return_t - memcached_prepend_by_key(memcached_st *ptr, - const char *master_key, size_t master_key_length, - const char *key, size_t key_length, - const char *value, size_t value_length, - time_t expiration, - uint32_t flags); - - memcached_return_t - memcached_append_by_key(memcached_st *ptr, - const char *master_key, size_t master_key_length, - const char *key, size_t key_length, - const char *value, size_t value_length, - time_t expiration, - uint32_t flags); - - memcached_return_t - memcached_cas_by_key(memcached_st *ptr, - const char *master_key, size_t master_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); - -=head1 DESCRIPTION - -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 support an expiration time for the object and a 16 byte value (it is -meant to be used as a bitmap). - -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. - -memcached_replace() replaces an object on the server. If the object is not -found on the server an error occurs. - -memcached_add() adds an object to the server. If the object is found on the -server an error occurs, otherwise the value is stored. - -memcached_prepend() places a segment of data before the last piece of data -stored. Currently expiration and key are not used in the server. - -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. - -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 support -for it in libmemcached(3) is optional. Please see memcached_set() for -information on how to do this. - -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 master_key parameter to map -objects to particular servers. - -If you are looking for performance, memcached_set() with non-blocking IO is -the fastest way to store data on the server. - -All of the above functions are supported with the C -behavior 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, C< MEMCACHED_BEHAVIOR_BINARY_PROTOCOL>, -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 C -will be returned. - - -=head1 RETURN - -All methods return a value of type C. -On success the value will be C. -Use memcached_strerror() to translate this value to a printable string. - -For memcached_replace() and memcached_add(), C is a -legitmate error in the case of a collision. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_set.rst b/docs/memcached_set.rst new file mode 100644 index 00000000..b09d8637 --- /dev/null +++ b/docs/memcached_set.rst @@ -0,0 +1,222 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_set, memcached_add, memcached_replace - Store value on server + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + 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); + + 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); + + 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); + + memcached_return_t + memcached_prepend(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + + memcached_return_t + memcached_append(memcached_st *ptr, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags) + 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); + + memcached_return_t + memcached_set_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + + memcached_return_t + memcached_add_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + + memcached_return_t + memcached_replace_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + + memcached_return_t + memcached_prepend_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + + memcached_return_t + memcached_append_by_key(memcached_st *ptr, + const char *master_key, size_t master_key_length, + const char *key, size_t key_length, + const char *value, size_t value_length, + time_t expiration, + uint32_t flags); + + memcached_return_t + memcached_cas_by_key(memcached_st *ptr, + const char *master_key, size_t master_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); + + + +*********** +DESCRIPTION +*********** + + +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 support an expiration time for the object and a 16 byte value (it is +meant to be used as a bitmap). + +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. + +memcached_replace() replaces an object on the server. If the object is not +found on the server an error occurs. + +memcached_add() adds an object to the server. If the object is found on the +server an error occurs, otherwise the value is stored. + +memcached_prepend() places a segment of data before the last piece of data +stored. Currently expiration and key are not used in the server. + +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. + +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 support +for it in libmemcached(3) is optional. Please see memcached_set() for +information on how to do this. + +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 master_key parameter to map +objects to particular servers. + +If you are looking for performance, memcached_set() with non-blocking IO is +the fastest way to store data on the server. + +All of the above functions are supported with the \ ``MEMCACHED_BEHAVIOR_USE_UDP``\ +behavior 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, \ `` MEMCACHED_BEHAVIOR_BINARY_PROTOCOL``\ , +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 \ ``MEMCACHED_WRITE_FAILURE``\ +will be returned. + + +****** +RETURN +****** + + +All methods return a value of type \ ``memcached_return_t``\ . +On success the value will be \ ``MEMCACHED_SUCCESS``\ . +Use memcached_strerror() to translate this value to a printable string. + +For memcached_replace() and memcached_add(), \ ``MEMCACHED_NOTSTORED``\ is a +legitmate error in the case of a collision. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemached(3) memcached_strerror(3) + diff --git a/docs/memcached_stats.pod b/docs/memcached_stats.pod deleted file mode 100644 index 3b198d99..00000000 --- a/docs/memcached_stats.pod +++ /dev/null @@ -1,96 +0,0 @@ -=head1 NAME - -memcached_stat, memcached_stat_servername, memcached_stat_get_value, memcached_stat_get_keys - Get memcached statistics - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_stat_st *memcached_stat (memcached_st *ptr, - char *args, - memcached_return_t *error); - - memcached_return_t memcached_stat_servername (memcached_stat_st *stat, - char *args, - const char *hostname, - unsigned int port); - - char * - memcached_stat_get_value (memcached_st *ptr, - memcached_stat_st *stat, - const char *key, - memcached_return_t *error); - - char ** - memcached_stat_get_keys (memcached_st *ptr, - memcached_stat_st *stat, - memcached_return_t *error); - - memcached_return_t - memcached_stat_execute (memcached_st *memc, - const char *args, - memcached_stat_fn func, - void *context); - -=head1 DESCRIPTION - -libmemcached(3) has the ability to query a memcached server (or collection -of servers) for their current state. Queries to find state return a -C structure. You are responsible for freeing this structure. -While it is possible to access the structure directly it is not advisable. - and -executes a "stat" command on each server. args is an optional argument that -can be passed in to modify the behavior of "stats". You will need to supply -a callback function that will be supplied each pair of values returned by -the memcached server. - -memcached_stat() fetches an array of C structures containing -the state of all available memcached servers. The return value must be freed -by the calling application. If called with the C -behavior set, a NULL value is returned and the error parameter is set to -C. - -memcached_stat_servername() can be used standalone without a C to -obtain the state of a particular server. "args" is used to define a -particular state object (a list of these are not provided for by either -the memcached_stat_get_keys() call nor are they defined in the memcached -protocol). You must specify the hostname and port of the server you want to -obtain information on. - -memcached_stat_get_value() returns the value of a particular state key. You -specify the key you wish to obtain. The key must be null terminated. - -memcached_stat_get_keys() returns a list of keys that the server has state -objects on. You are responsible for freeing this list. - -A command line tool, memstat(1), is provided so that you do not have to write -an application to do this. - -=head1 RETURN - -Varies, see particular functions. - -Any method returning a C expects you to free the -memory allocated for it. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_stats.rst b/docs/memcached_stats.rst new file mode 100644 index 00000000..f1f89701 --- /dev/null +++ b/docs/memcached_stats.rst @@ -0,0 +1,132 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_stat, memcached_stat_servername, memcached_stat_get_value, memcached_stat_get_keys - Get memcached statistics + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_stat_st *memcached_stat (memcached_st *ptr, + char *args, + memcached_return_t *error); + + memcached_return_t memcached_stat_servername (memcached_stat_st *stat, + char *args, + const char *hostname, + unsigned int port); + + char * + memcached_stat_get_value (memcached_st *ptr, + memcached_stat_st *stat, + const char *key, + memcached_return_t *error); + + char ** + memcached_stat_get_keys (memcached_st *ptr, + memcached_stat_st *stat, + memcached_return_t *error); + + memcached_return_t + memcached_stat_execute (memcached_st *memc, + const char *args, + memcached_stat_fn func, + void *context); + + + +*********** +DESCRIPTION +*********** + + +libmemcached(3) has the ability to query a memcached server (or collection +of servers) for their current state. Queries to find state return a +\ ``memcached_stat_st``\ structure. You are responsible for freeing this structure. +While it is possible to access the structure directly it is not advisable. +`_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_strerror.pod b/docs/memcached_strerror.pod deleted file mode 100644 index 07801d8c..00000000 --- a/docs/memcached_strerror.pod +++ /dev/null @@ -1,47 +0,0 @@ -=head1 NAME - -memcached_strerror - Get error string - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - const char * - memcached_strerror (memcached_st *ptr, - memcached_return_t rc); - -=head1 DESCRIPTION - -memcached_strerror() takes a C value and returns a string -describing the error. - -This string must not be modified by the application. - -C values are returned from nearly all libmemcached(3) functions. - -C values are of an enum type so that you can set up responses -with switch/case and know that you are capturing all possible return values. - -=head1 RETURN - -memcached_strerror() returns a string describing a C value. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) - -=cut - diff --git a/docs/memcached_strerror.rst b/docs/memcached_strerror.rst new file mode 100644 index 00000000..9ae63822 --- /dev/null +++ b/docs/memcached_strerror.rst @@ -0,0 +1,83 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_strerror - Get error string + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + const char * + memcached_strerror (memcached_st *ptr, + memcached_return_t rc); + + + +*********** +DESCRIPTION +*********** + + +memcached_strerror() takes a \ ``memcached_return_t``\ value and returns a string +describing the error. + +This string must not be modified by the application. + +\ ``memcached_return_t``\ values are returned from nearly all libmemcached(3) functions. + +\ ``memcached_return_t``\ values are of an enum type so that you can set up responses +with switch/case and know that you are capturing all possible return values. + + +****** +RETURN +****** + + +memcached_strerror() returns a string describing a \ ``memcached_return_t``\ value. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) + diff --git a/docs/memcached_user_data.pod b/docs/memcached_user_data.pod deleted file mode 100644 index fc339dfc..00000000 --- a/docs/memcached_user_data.pod +++ /dev/null @@ -1,50 +0,0 @@ -=head1 NAME - -memcached_set_user_data, memcached_get_user_data - Manage user specific data - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - void *memcached_get_user_data (memcached_st *ptr); - - void *memcached_set_user_data (memcached_st *ptr, void *data); - -=head1 DESCRIPTION - -libmemcached(3) allows you to store a pointer to a user specific data inside -the memcached_st structure. - -memcached_set_user_data() is used to set the user specific data in the -memcached_st structure. - -memcached_get_user_data() is used to retrieve the user specific data in -the memcached_st structure. - -=head1 RETURN - -memcached_set_user_data() returns the previous value of the user specific -data. - -memcached_get_user_data() returns the current value uf the user specific -data. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Trond Norbye, Etrond.norbye@gmail.comE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) - -=cut - diff --git a/docs/memcached_user_data.rst b/docs/memcached_user_data.rst new file mode 100644 index 00000000..5f555f3f --- /dev/null +++ b/docs/memcached_user_data.rst @@ -0,0 +1,86 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_set_user_data, memcached_get_user_data - Manage user specific data + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + void *memcached_get_user_data (memcached_st *ptr); + + void *memcached_set_user_data (memcached_st *ptr, void *data); + + + +*********** +DESCRIPTION +*********** + + +libmemcached(3) allows you to store a pointer to a user specific data inside +the memcached_st structure. + +memcached_set_user_data() is used to set the user specific data in the +memcached_st structure. + +memcached_get_user_data() is used to retrieve the user specific data in +the memcached_st structure. + + +****** +RETURN +****** + + +memcached_set_user_data() returns the previous value of the user specific +data. + +memcached_get_user_data() returns the current value uf the user specific +data. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Trond Norbye, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) + diff --git a/docs/memcached_verbosity.pod b/docs/memcached_verbosity.pod deleted file mode 100644 index 6cdac914..00000000 --- a/docs/memcached_verbosity.pod +++ /dev/null @@ -1,42 +0,0 @@ -=head1 NAME - -memcached_verbosity - Modifiy verbosity of servers - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - memcached_return_t - memcached_verbosity (memcached_st *ptr, - unsigned int verbosity); - -=head1 DESCRIPTION - -memcached_verbosity() modifies the "verbosity" of the -memcached(1) servers referenced in the C parameter. - -=head1 RETURN - -A value of type C is returned -On success that value will be C. -Use memcached_strerror() to translate this value to a printable string. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_verbosity.rst b/docs/memcached_verbosity.rst new file mode 100644 index 00000000..4ec50e38 --- /dev/null +++ b/docs/memcached_verbosity.rst @@ -0,0 +1,78 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_verbosity - Modifiy verbosity of servers + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + memcached_return_t + memcached_verbosity (memcached_st *ptr, + unsigned int verbosity); + + + +*********** +DESCRIPTION +*********** + + +memcached_verbosity() modifies the "verbosity" of the +memcached(1) servers referenced in the \ ``memcached_st``\ parameter. + + +****** +RETURN +****** + + +A value of type \ ``memcached_return_t``\ is returned +On success that value will be \ ``MEMCACHED_SUCCESS``\ . +Use memcached_strerror() to translate this value to a printable string. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcached_version.pod b/docs/memcached_version.pod deleted file mode 100644 index 26e54e0a..00000000 --- a/docs/memcached_version.pod +++ /dev/null @@ -1,56 +0,0 @@ -=head1 NAME - -memcached_lib_version, memcached_version - Get library version - -=head1 LIBRARY - -C Client Library for memcached (libmemcached, -lmemcached) - -=head1 SYNOPSIS - - #include - - const char * - memcached_lib_version (void) - - - memcached_return_t - memcached_version (memcached_st *ptr) - - -=head1 DESCRIPTION - -memcached_lib_version() is used to return a simple version string representing -the libmemcached version (version of the client library, not server) - - -memcached_version() is used to set the major, minor, and micro versions of each -memcached server being used by the memcached_st connection structure. It returns the -memcached server return code. - -=head1 RETURN - -A string with the version of libmemcached driver is returned from -memcached_lib_version() - -A value of type C is returned from memcached_version() -On success that value will be C. If called with the -C behavior set, the value C -will be returned. Use memcached_strerror() to translate this value to -a printable string. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) memcached_strerror(3) - -=cut - diff --git a/docs/memcached_version.rst b/docs/memcached_version.rst new file mode 100644 index 00000000..00573d66 --- /dev/null +++ b/docs/memcached_version.rst @@ -0,0 +1,90 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcached_lib_version, memcached_version - Get library version + + +******* +LIBRARY +******* + + +C Client Library for memcached (libmemcached, -lmemcached) + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + #include + + const char * + memcached_lib_version (void) + + + memcached_return_t + memcached_version (memcached_st *ptr) + + + +*********** +DESCRIPTION +*********** + + +memcached_lib_version() is used to return a simple version string representing +the libmemcached version (version of the client library, not server) + +memcached_version() is used to set the major, minor, and micro versions of each +memcached server being used by the memcached_st connection structure. It returns the +memcached server return code. + + +****** +RETURN +****** + + +A string with the version of libmemcached driver is returned from +memcached_lib_version() + +A value of type \ ``memcached_return_t``\ is returned from memcached_version() +On success that value will be \ ``MEMCACHED_SUCCESS``\ . If called with the +\ ``MEMCACHED_BEHAVIOR_USE_UDP``\ behavior set, the value \ ``MEMCACHED_NOT_SUPPORTED``\ +will be returned. Use memcached_strerror() to translate this value to +a printable string. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) memcached_strerror(3) + diff --git a/docs/memcapable.pod b/docs/memcapable.pod deleted file mode 100644 index bd4d48f8..00000000 --- a/docs/memcapable.pod +++ /dev/null @@ -1,61 +0,0 @@ -=head1 NAME - -memcapable - Check memcached server capabilities - -=head1 SYNOPSIS - - memcat [-h hostname] [-p port] [-c] [-v] [-t n] - -=head1 DESCRIPTION - -B connects to the specified memcached server and tries to -determine its capabilities by running the various commands and verifying -the response. - -=head1 OPTIONS - -The following options are supported: - -=over 3 - -=item -h hostname - -Specify the hostname to connect to. The default is I - -=item -p port - -Specify the port number to connect to. The default is I<11211> - -=item -c - -Generate a coredump when it detects an error from the server. - -=item -v - -Print out the comparison when it detects an error from the server. - -=item -t n - -Set the timeout from an IO operation to/from the server to I seconds. - -=back - -=head1 LIMITATIONS - -The current version of memcapable will only verify the binary protocol. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Trond Norbye, Etrond.norbye@gmail.comE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) - -=cut - diff --git a/docs/memcapable.rst b/docs/memcapable.rst new file mode 100644 index 00000000..1583cc4c --- /dev/null +++ b/docs/memcapable.rst @@ -0,0 +1,104 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcapable - Check memcached server capabilities + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + memcat [-h hostname] [-p port] [-c] [-v] [-t n] + + + +*********** +DESCRIPTION +*********** + + +\ **memcapable**\ connects to the specified memcached server and tries to +determine its capabilities by running the various commands and verifying +the response. + + +******* +OPTIONS +******* + + +The following options are supported: + + +-h hostname + + Specify the hostname to connect to. The default is \ *localhost*\ + + + +-p port + + Specify the port number to connect to. The default is \ *11211*\ + + + +-c + + Generate a coredump when it detects an error from the server. + + + +-v + + Print out the comparison when it detects an error from the server. + + + +-t n + + Set the timeout from an IO operation to/from the server to \ *n*\ seconds. + + + + +*********** +LIMITATIONS +*********** + + +The current version of memcapable will only verify the binary protocol. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Trond Norbye, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) + diff --git a/docs/memcat.pod b/docs/memcat.pod deleted file mode 100644 index 8e572b7c..00000000 --- a/docs/memcat.pod +++ /dev/null @@ -1,37 +0,0 @@ -=head1 NAME - -memcat - Copy a set of keys to stdout - -=head1 SYNOPSIS - - memcat [options] key key ... - -=head1 DESCRIPTION - -B outputs to stdout the value a single or multiple set of keys -stored in a memcached(1) server. If any key is not found an error is returned. - -It is similar to the standard UNIX cat(1) utility. - -You can specify servers via the B<--servers> option or via the -environment variable C. - -For a full list of operations run the tool with the B<--help> option. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -Mark Atwood Emark@fallenpegasus.comE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) - -=cut - diff --git a/docs/memcat.rst b/docs/memcat.rst new file mode 100644 index 00000000..c3265735 --- /dev/null +++ b/docs/memcat.rst @@ -0,0 +1,65 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcat - Copy a set of keys to stdout + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + memcat [options] key key ... + + + +*********** +DESCRIPTION +*********** + + +\ **memcat**\ outputs to stdout the value a single or multiple set of keys +stored in a memcached(1) server. If any key is not found an error is returned. + +It is similar to the standard UNIX cat(1) utility. + +You can specify servers via the \ **--servers**\ option or via the +environment variable \ ``MEMCACHED_SERVERS``\ . + +For a full list of operations run the tool with the \ **--help**\ option. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + +Mark Atwood + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) + diff --git a/docs/memcp.pod b/docs/memcp.pod deleted file mode 100644 index 9be7cdda..00000000 --- a/docs/memcp.pod +++ /dev/null @@ -1,40 +0,0 @@ -=head1 NAME - -memcp - Copies files to a collection of memcached servers - -=head1 SYNOPSIS - - memcp [options] file file - -=head1 DESCRIPTION - -B copies one or more files into memcached(1) servers. -It is similar to the standard UNIX cp(1) command. - -The key names will be the names of the files, -without any directory path part. - -You can specify servers via the B<--servers> option or via the -environment variable C. If you specify neither of -these, the final value in the command line list is the name of a -server(s). - -For a full list of operations run the tool with the B<--help> option. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -Mark Atwood, Emark@fallenpegasus.comE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) - -=cut - diff --git a/docs/memcp.rst b/docs/memcp.rst new file mode 100644 index 00000000..dda0100c --- /dev/null +++ b/docs/memcp.rst @@ -0,0 +1,68 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memcp - Copies files to a collection of memcached servers + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + memcp [options] file file + + + +*********** +DESCRIPTION +*********** + + +\ **memcp**\ copies one or more files into memcached(1) servers. +It is similar to the standard UNIX cp(1) command. + +The key names will be the names of the files, +without any directory path part. + +You can specify servers via the \ **--servers**\ option or via the +environment variable \ ``MEMCACHED_SERVERS``\ . If you specify neither of +these, the final value in the command line list is the name of a +server(s). + +For a full list of operations run the tool with the \ **--help**\ option. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + +Mark Atwood, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) + diff --git a/docs/memdump.pod b/docs/memdump.pod deleted file mode 100644 index 5a26be57..00000000 --- a/docs/memdump.pod +++ /dev/null @@ -1,31 +0,0 @@ -=head1 NAME - -memdump - Dump a list of keys from a server. - -=head1 SYNOPSIS - - memdump [options] - -=head1 DESCRIPTION - -B currently dumps a list of "keys" from all servers that -it is told to fetch from. Because memcached does not guarentee to -provide all keys it is not possible to get a complete "dump". - -For a full list of operations run the tool with the B<--help> option. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) - -=cut - diff --git a/docs/memdump.rst b/docs/memdump.rst new file mode 100644 index 00000000..8436470d --- /dev/null +++ b/docs/memdump.rst @@ -0,0 +1,59 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memdump - Dump a list of keys from a server. + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + memdump [options] + + + +*********** +DESCRIPTION +*********** + + +\ **memdump**\ currently dumps a list of "keys" from all servers that +it is told to fetch from. Because memcached does not guarentee to +provide all keys it is not possible to get a complete "dump". + +For a full list of operations run the tool with the \ **--help**\ option. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) + diff --git a/docs/memerror.pod b/docs/memerror.pod deleted file mode 100644 index 40278771..00000000 --- a/docs/memerror.pod +++ /dev/null @@ -1,30 +0,0 @@ -=head1 NAME - -memerror - Translate a memcached error code to a string - -=head1 SYNOPSIS - - memerror [options] error_code - -=head1 DESCRIPTION - -B translate an error code from libmemcached(3) to a human -readable string. - -For a full list of operations run the tool with the B<--help> option. - -=head1 HOME - -To find out more infoerroration please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) - -=cut - diff --git a/docs/memerror.rst b/docs/memerror.rst new file mode 100644 index 00000000..72536789 --- /dev/null +++ b/docs/memerror.rst @@ -0,0 +1,58 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memerror - Translate a memcached error code to a string + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + memerror [options] error_code + + + +*********** +DESCRIPTION +*********** + + +\ **memerror**\ translate an error code from libmemcached(3) to a human +readable string. + +For a full list of operations run the tool with the \ **--help**\ option. + + +**** +HOME +**** + + +To find out more infoerroration please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) + diff --git a/docs/memflush.pod b/docs/memflush.pod deleted file mode 100644 index f26e10c3..00000000 --- a/docs/memflush.pod +++ /dev/null @@ -1,35 +0,0 @@ -=head1 NAME - -memflush - Reset a server or list of servers - -=head1 SYNOPSIS - - memflush [options] - -=head1 DESCRIPTION - -B resets the contents of memcached(1) servers. -This means all data in these servers will be deleted. - -You can specify servers via the B<--servers> option or via the -environment variable C. - -For a full list of operations run the tool with the B<--help> option. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -Mark Atwood Emark@fallenpegasus.comE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) - -=cut - diff --git a/docs/memflush.rst b/docs/memflush.rst new file mode 100644 index 00000000..5d6b865b --- /dev/null +++ b/docs/memflush.rst @@ -0,0 +1,63 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memflush - Reset a server or list of servers + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + memflush [options] + + + +*********** +DESCRIPTION +*********** + + +\ **memflush**\ resets the contents of memcached(1) servers. +This means all data in these servers will be deleted. + +You can specify servers via the \ **--servers**\ option or via the +environment variable \ ``MEMCACHED_SERVERS``\ . + +For a full list of operations run the tool with the \ **--help**\ option. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + +Mark Atwood + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) + diff --git a/docs/memrm.pod b/docs/memrm.pod deleted file mode 100644 index 9554f0a0..00000000 --- a/docs/memrm.pod +++ /dev/null @@ -1,34 +0,0 @@ -=head1 NAME - -memrm - Remove a key(s) from a collection of memcached servers - -=head1 SYNOPSIS - - memrm [options] key key ... - -=head1 DESCRIPTION - -B removes items, specified by key, from memcached(1) servers. - -You can specify servers via the B<--servers> option or via the -environment variable C. - -For a full list of operations run the tool with the B<--help> option. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -Mark Atwood, Emark@fallenpegasus.comE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) - -=cut - diff --git a/docs/memrm.rst b/docs/memrm.rst new file mode 100644 index 00000000..21f57476 --- /dev/null +++ b/docs/memrm.rst @@ -0,0 +1,62 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memrm - Remove a key(s) from a collection of memcached servers + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + memrm [options] key key ... + + + +*********** +DESCRIPTION +*********** + + +\ **memrm**\ removes items, specified by key, from memcached(1) servers. + +You can specify servers via the \ **--servers**\ option or via the +environment variable \ ``MEMCACHED_SERVERS``\ . + +For a full list of operations run the tool with the \ **--help**\ option. + + +**** +HOME +**** + + +To find out more information please check: +`https://launchpad.net/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + +Mark Atwood, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) + diff --git a/docs/memslap.pod b/docs/memslap.pod deleted file mode 100644 index 43f714cc..00000000 --- a/docs/memslap.pod +++ /dev/null @@ -1,33 +0,0 @@ -=head1 NAME - -memslap - Load testing and benchmarking tool for memcached - -=head1 SYNOPSIS - - memslap [options] - -=head1 DESCRIPTION - -B is a load generation and benchmark tool for memcached(1) -servers. It simulates loads on memcached server clusters. - -You can specify servers via the B<--servers> option or via the -environment variable C. - -For a full list of operations run the tool with the B<--help> option. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) - -=cut - diff --git a/docs/memslap.pod.THIS b/docs/memslap.pod.THIS new file mode 100644 index 00000000..43f714cc --- /dev/null +++ b/docs/memslap.pod.THIS @@ -0,0 +1,33 @@ +=head1 NAME + +memslap - Load testing and benchmarking tool for memcached + +=head1 SYNOPSIS + + memslap [options] + +=head1 DESCRIPTION + +B is a load generation and benchmark tool for memcached(1) +servers. It simulates loads on memcached server clusters. + +You can specify servers via the B<--servers> option or via the +environment variable C. + +For a full list of operations run the tool with the B<--help> option. + +=head1 HOME + +To find out more information please check: +L + +=head1 AUTHOR + +Brian Aker, Ebrian@tangent.orgE + +=head1 SEE ALSO + +memcached(1) libmemcached(3) + +=cut + diff --git a/docs/memslap.rst b/docs/memslap.rst new file mode 100644 index 00000000..80fb7a79 --- /dev/null +++ b/docs/memslap.rst @@ -0,0 +1,1260 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memslap - Load testing and benchmarking tool for memcached + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + memslap [options] + + + +*********** +DESCRIPTION +*********** + + +\ **memslap**\ is a load generation and benchmark tool for memcached(1) +servers. It generates configurable workload such as threads, concurrencies, connections, +run time, overwrite, miss rate, key size, value size, get/set proportion, +expected throughput, and so on. Furthermore, it also supports data +verification, expire-time verification, UDP, binary protocol, facebook test, +replication test, multi-get and reconnection, etc. + +Memslap manages network connections like memcached with +libevent. Each thread of memslap is bound with a CPU core, all +the threads don't communicate with each other, and there are several socket +connections in each thread. Each connection keeps key size distribution, +value size distribution, and command distribution by itself. + +You can specify servers via the \ **--servers**\ option or via the +environment variable \ ``MEMCACHED_SERVERS``\ . + + +******** +FEATURES +******** + + +Memslap is developed to for the following purposes: + + +Manages network connections with libevent asynchronously. + + + +Set both TCP and UDP up to use non-blocking IO. + + + +Improves parallelism: higher performance in multi-threads environments. + + + +Improves time efficiency: faster processing speed. + + + +Generates key and value more efficiently; key size distribution and value size distribution are configurable. + + + +Supports get, multi-get, and set commands; command distribution is configurable. + + + +Supports controllable miss rate and overwrite rate. + + + +Supports data and expire-time verification. + + + +Supports dumping statistic information periodically. + + + +Supports thousands of TCP connections. + + + +Supports binary protocol. + + + +Supports facebook test (set with TCP and multi-get with UDP) and replication test. + + + + +******* +DETAILS +******* + + +Effective implementation of network. +==================================== + + +For memslap, both TCP and UDP use non-blocking network IO. All +the network events are managed by libevent as memcached. The network module +of memslap is similar to memcached. Libevent can ensure +memslap can handle network very efficiently. + + +Effective implementation of multi-threads and concurrency +========================================================= + + +Memslap has the similar implementation of multi-threads to +memcached. Memslap creates one or more self-governed threads; +each thread is bound with one CPU core if the system supports setting CPU +core affinity. + +In addition, each thread has a libevent to manage the events of the network; +each thread has one or more self-governed concurrencies; and each +concurrency has one or more socket connections. All the concurrencies don’t +communicate with each other even though they are in the same thread. + +Memslap can create thousands of socket connections, and each +concurrency has tens of socket connections. Each concurrency randomly or +sequentially selects one socket connection from its socket connection pool +to run, so memslap can ensure each concurrency handles one +socket connection at any given time. Users can specify the number of +concurrency and socket connections of each concurrency according to their +expected workload. + + +Effective implementation of generating key and value +==================================================== + + +In order to improve time efficiency and space efficiency, +memslap creates a random characters table with 10M characters. All the +suffixes of keys and values are generated from this random characters table. + +Memslap uses the offset in the character table and the length +of the string to identify a string. It can save much memory. +Each key contains two parts, a prefix and a suffix. The prefix is an +uint64_t, 8 bytes. In order to verify the data set before, +memslap need to ensure each key is unique, so it uses the prefix to identify +a key. The prefix cannot include illegal characters, such as ‘\r’, ‘\n’, +‘\0’ and ‘ ‘. And memslap has an algorithm to ensure that. + +Memslap doesn’t generate all the objects (key-value pairs) at +the beginning. It only generates enough objects to fill the task window +(default 10K objects) of each concurrency. Each object has the following +basic information, key prefix, key suffix offset in the character table, key +length, value offset in the character table, and value length. + +In the work process, each concurrency sequentially or randomly selects an +object from the window to do set operation or get operation. At the same +time, each concurrency kicks objects out of its window and adds new object +into it. + + +Simple but useful task scheduling +================================= + + +Memslap uses libevent to schedule all the concurrencies of +threads, and each concurrency schedules tasks based on the local task +window. Memslap assumes that if each concurrency keeps the same +key distribution, value distribution and commands distribution, from +outside, memslap keeps all the distribution as a whole. +Each task window includes a lot of objects, each object stores its basic +information, such as key, value, expire time, and so on. At any time, all +the objects in the window keep the same and fixed key and value +distribution. If an object is overwritten, the value of the object will be +updated. Memslap verifies the data or expire-time according to +the object information stored in the task window. + +Libevent selects which concurrency to handle based on a specific network +event. Then the concurrency selects which command (get or set) to operate +based on the command distribution. If it needs to kick out an old object and +add a new object, in order to keep the same key and value distribution, the +new object must have the same key length and value length. + +If memcached server has two cache layers (memory and SSD), running +memslap with different window sizes can get different cache +miss rates. If memslap adds enough objects into the windows at +the beginning, and the cache of memcached cannot store all the objects +initialized, then memslap will get some objects from the second +cache layer. It causes the first cache layer to miss. So the user can +specify the window size to get the expected miss rate of the first cache +layer. + + +Useful implementation of multi-servers , UDP, TCP, multi-get and binary protocol +================================================================================ + + +Because each thread is self-governed, memslap can assign +different threads to handle different memcached servers. This is just one of +the ways in which memslap supports multiple servers. The only +limitation is that the number of servers cannot be greater than the number +of threads. The other way to support multiple servers is for replication +test. Each concurrency has one socket connection to each memcached server. +For the implementation, memslap can set some objects to one +memcached server, and get these objects from the other servers. + +By default, Memslap does single get. If the user specifies +multi-get option, memslap will collect enough get commands and +pack and send the commands together. + +Memslap supports both the ASCII protocol and binary protocol, +but it runs on the ASCII protocol by default. +Memslap by default runs on the TCP protocol, but it also +supports UDP. Because UDP is unreliable, dropped packages and out-of-order +packages may occur. Memslap creates a memory buffer to handle +these problems. Memslap tries to read all the response data of +one command from the server and reorders the response data. If some packages +get lost, the waiting timeout mechanism can ensure half-baked packages will +be discarded and the next command will be sent. + + + +***** +USAGE +***** + + +Below are some usage samples: + + +memslap -s 127.0.0.1:11211 -S 5s + + + +memslap -s 127.0.0.1:11211 -t 2m -v 0.2 -e 0.05 -b + + + +memslap -s 127.0.0.1:11211 -F config -t 2m -w 40k -S 20s -o 0.2 + + + +memslap -s 127.0.0.1:11211 -F config -t 2m -T 4 -c 128 -d 20 -P 40k + + + +memslap -s 127.0.0.1:11211 -F config -t 2m -d 50 -a -n 40 + + + +memslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m + + + +memslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m -p 2 + + + +The user must specify one server at least to run memslap. The +rest of the parameters have default values, as shown below: + +Thread number = 1 Concurrency = 16 + +Run time = 600 seconds Configuration file = NULL + +Key size = 64 Value size = 1024 + +Get/set = 9:1 Window size = 10k + +Execute number = 0 Single get = true + +Multi-get = false Number of sockets of each concurrency = 1 + +Reconnect = false Data verification = false + +Expire-time verification = false ASCII protocol = true + +Binary protocol = false Dumping statistic information + +periodically = false + +Overwrite proportion = 0% UDP = false + +TCP = true Limit throughput = false + +Facebook test = false Replication test = false + +Key size, value size and command distribution. +============================================== + + +All the distributions are read from the configuration file specified by user +with “—cfg_cmd” option. If the user does not specify a configuration file, +memslap will run with the default distribution (key size = 64, +value size = 1024, get/set = 9:1). For information on how to edit the +configuration file, refer to the “Configuration File” section. + +The minimum key size is 16 bytes; the maximum key size is 250 bytes. The +precision of proportion is 0.001. The proportion of distribution will be +rounded to 3 decimal places. + +The minimum value size is 1 bytes; the maximum value size is 1M bytes. The +precision of proportion is 0.001. The proportion of distribution will be +rounded to 3 decimal places. +Currently, memslap only supports set and get commands. And it +supports 100% set and 100% get. For 100% get, it will preset some objects to +the server. + + +Multi-thread and concurrency +============================ + + +The high performance of memslap benefits from the special +schedule of thread and concurrency. It’s important to specify the proper +number of them. The default number of threads is 1; the default number of +concurrency is 16. The user can use “—threads” and “--concurrency” to +specify these variables. + +If the system supports setting CPU affinity and the number of threads +specified by the user is greater than 1, memslap will try to +bind each thread to a different CPU core. So if you want to get the best +performance memslap, it is better to specify the number of +thread equal to the number of CPU cores. The number of threads specified by +the user can also be less or greater than the number of CPU cores. Because +of the limitation of implementation, the number of concurrencies could be +the multiple of the number of threads. + +1. For 8 CPU cores system + +For example: + +--threads=2 --concurrency=128 + +--threads=8 --concurrency=128 + +--threads=8 --concurrency=256 + +--threads=12 --concurrency=144 + +2. For 16 CPU cores system + +For example: + +--threads=8 --concurrency=128 + +--threads=16 --concurrency=256 + +--threads=16 --concurrency=512 + +--threads=24 --concurrency=288 + +The memslap performs very well, when +used to test the performance of memcached servers. +Most of the time, the bottleneck is the network or +the server. If for some reason the user wants to +limit the performance of memslap, there +are two ways to do this: + +Decrease the number of threads and concurrencies. +Use the option “--tps” that memslap +provides to limit the throughput. This option allows +the user to get the expected throughput. For +example, assume that the maximum throughput is 50 +kops/s for a specific configuration, you can specify +the throughput equal to or less than the maximum +throughput using “--tps” option. + + +Window size +=========== + + +Most of the time, the user does not need to specify the window size. The +default window size is 10k. For Schooner Memcached, the user can specify +different window sizes to get different cache miss rates based on the test +case. Memslap supports cache miss rate between 0% and 100%. +If you use this utility to test the performance of Schooner Memcached, you +can specify a proper window size to get the expected cache miss rate. The +formula for calculating window size is as follows: + +Assume that the key size is 128 bytes, and the value size is 2048 bytes, and +concurrency=128. + +1. Small cache cache_size=1M, 100% cache miss (all data get from SSD). +win_size=10k + +2. cache_size=4G + +(1). cache miss rate 0% + +win_size=8k + +(2). cache miss rate 5% + +win_size=11k + +3. cache_size=16G + +(1). cache miss rate 0% + +win_size=32k + +(2). cache miss + +rate 5% + +win_size=46k + +The formula for calculating window size for cache miss rate 0%: + +cache_size / concurrency / (key_size + value_size) \* 0.5 + +The formula for calculating window size for cache miss rate 5%: + +cache_size / concurrency / (key_size + value_size) \* 0.7 + + +Verification +============ + + +Memslap supports both data verification and expire-time +verification. The user can use "--verify=" or "-v" to specify the proportion +of data verification. In theory, it supports 100% data verification. The +user can use "--exp_verify=" or "-e" to specify the proportion of +expire-time verification. In theory, it supports 100% expire-time +verification. Specify the "--verbose" options to get more detailed error +information. + +For example: --exp_verify=0.01 –verify=0.1 , it means that 1% of the objects +set with expire-time, 10% of the objects gotten will be verified. If the +objects are gotten, memslap will verify the expire-time and +value. + + +multi-servers and multi-clients +=============================== + + +Memslap supports multi-servers based on self-governed thread. +There is a limitation that the number of servers cannot be greater than the +number of threads. Memslap assigns one thread to handle one +server at least. The user can use the "--servers=" or "-s" option to specify +multi-servers. + +For example: + +--servers=10.1.1.1:11211,10.1.1.2:11212,10.1.1.3:11213 --threads=6 --concurrency=36 + +The above command means that there are 6 threads, with each thread having 6 +concurrencies and that threads 0 and 3 handle server 0 (10.1.1.1); threads 1 +and 4 handle server 1 (10.1.1.2); and thread 2 and 5 handle server 2 +(10.1.1.3). + +All the threads and concurrencies in memslap are self-governed. + +So is memslap. The user can start up several +memslap instances. The user can run memslap on different client +machines to communicate with the same memcached server at the same. It is +recommended that the user start different memslap on different +machines using the same configuration. + + +Run with execute number mode or time mode +========================================= + + +The default memslap runs with time mode. The default run time +is 10 minutes. If it times out, memslap will exit. Do not +specify both execute number mode and time mode at the same time; just +specify one instead. + +For example: + +--time=30s (It means the test will run 30 seconds.) + +--execute_number=100000 (It means that after running 100000 commands, the test will exit.) + + +Dump statistic information periodically. +======================================== + + +The user can use "--stat_freq=" or "-S" to specify the frequency. + +For example: + +--stat_freq=20s + +Memslap will dump the statistics of the commands (get and set) at the frequency of every 20 +seconds. + +For more information on the format of dumping statistic information, refer to “Format of Output” section. + + +Multi-get +========= + + +The user can use "--division=" or "-d" to specify multi-get keys count. +Memslap by default does single get with TCP. Memslap also supports data +verification and expire-time verification for multi-get. + +Memslap supports multi-get with both TCP and UDP. Because of +the different implementation of the ASCII protocol and binary protocol, +there are some differences between the two. For the ASCII protocol, +memslap sends one “multi-get” to the server once. For the +binary protocol, memslap sends several single get commands +together as “multi-get” to the server. + + +UDP and TCP +=========== + + +Memslap supports both UDP and TCP. For TCP, +memslap does not reconnect the memcached server if socket connections are +lost. If all the socket connections are lost or memcached server crashes, +memslap will exit. If the user specifies the “--reconnect” +option when socket connections are lost, it will reconnect them. + +User can use “--udp” to enable the UDP feature, but UDP comes with some +limitations: + +UDP cannot set data more than 1400 bytes. + +UDP is not supported by the binary protocol because the binary protocol of +memcached does not support that. + +UDP doesn’t support reconnection. + + +Facebook test +============= + + +Set data with TCP and multi-get with UDP. Specify the following options: + +"--facebook --division=50" + +If you want to create thousands of TCP connections, specify the + +"--conn_sock=" option. + +For example: --facebook --division=50 --conn_sock=200 + +The above command means that memslap will do facebook test, +each concurrency has 200 socket TCP connections and one UDP socket. + +Memslap sets objects with the TCP socket, and multi-gets 50 +objects once with the UDP socket. + +If you specify "--division=50", the key size must be less that 25 bytes +because the UDP packet size is 1400 bytes. + + +Replication test +================ + + +For replication test, the user must specify at least two memcached servers. +The user can use “—rep_write=” option to enable feature. + +For example: + +--servers=10.1.1.1:11211,10.1.1.2:11212 –rep_write=2 + +The above command means that there are 2 replication memcached servers, +memslap will set objects to both server 0 and server 1, get +objects which are set to server 0 before from server 1, and also get objects +which are set to server 1 before from server 0. If server 0 crashes, +memslap will only get objects from server 1. If server 0 comes +back to life again, memslap will reconnect server 0. If both +server 0 and server 1 crash, memslap will exit. + + +Supports thousands of TCP connections +===================================== + + +Start memslap with "--conn_sock=" or "-n" to enable this +feature. Make sure that your system can support opening thousands of files +and creating thousands of sockets. However, this feature does not support +reconnection if sockets disconnect. + +For example: + +--threads=8 --concurrency=128 --conn_sock=128 + +The above command means that memslap starts up 8 threads, each +thread has 16 concurrencies, each concurrency has 128 TCP socket +connections, and the total number of TCP socket connections is 128 \* 128 = +16384. + + +Supports binary protocol +======================== + + +Start memslap with "--binary" or "-B" options to enable this +feature. It supports all the above features except UDP, because the latest +memcached 1.3.3 does not implement binary UDP protocol. + +For example: + +--binary + +Since memcached 1.3.3 doesn't implement binary UDP protocol, +memslap does not support UDP. In addition, memcached 1.3.3 does not support +multi-get. If you specify "--division=50" option, it just sends 50 get +commands together as “mulit-get” to the server. + + + +****************** +Configuration file +****************** + + +This section describes the format of the configuration file. By default +when no configuration file is specified memslap reads the default +one located at ~/.memslap.cnf. + +Below is a sample configuration file: + + +.. code-block:: perl + + *************************************************************************** + #comments should start with '#' + #key + #start_len end_len proportion + # + #key length range from start_len to end_len + #start_len must be equal to or greater than 16 + #end_len must be equal to or less than 250 + #start_len must be equal to or greater than end_len + #memslap will generate keys according to the key range + #proportion: indicates keys generated from one range accounts for the total + generated keys + # + #example1: key range 16~100 accounts for 80% + # key range 101~200 accounts for 10% + # key range 201~250 accounts for 10% + # total should be 1 (0.8+0.1+0.1 = 1) + # + # 16 100 0.8 + # 101 200 0.1 + # 201 249 0.1 + # + #example2: all keys length are 128 bytes + # + # 128 128 1 + key + 128 128 1 + #value + #start_len end_len proportion + # + #value length range from start_len to end_len + #start_len must be equal to or greater than 1 + #end_len must be equal to or less than 1M + #start_len must be equal to or greater than end_len + #memslap will generate values according to the value range + #proportion: indicates values generated from one range accounts for the + total generated values + # + #example1: value range 1~1000 accounts for 80% + # value range 1001~10000 accounts for 10% + # value range 10001~100000 accounts for 10% + # total should be 1 (0.8+0.1+0.1 = 1) + # + # 1 1000 0.8 + # 1001 10000 0.1 + # 10001 100000 0.1 + # + #example2: all value length are 128 bytes + # + # 128 128 1 + value + 2048 2048 1 + #cmd + #cmd_type cmd_proportion + # + #currently memslap only supports get and set command. + # + #cmd_type + #set 0 + #get 1 + # + #example: set command accounts for 50% + # get command accounts for 50% + # total should be 1 (0.5+0.5 = 1) + # + # cmd + # 0 0.5 + # 1 0.5 + cmd + 0 0.1 + 1.0 0.9 + + + +**************** +Format of output +**************** + + +At the beginning, memslap displays some configuration information as follows: + + +servers : 127.0.0.1:11211 + + + +threads count: 1 + + + +concurrency: 16 + + + +run time: 20s + + + +windows size: 10k + + + +set proportion: set_prop=0.10 + + + +get proportion: get_prop=0.90 + + + +Where +===== + + + +servers : "servers" + + The servers used by memslap. + + + +threads count + + The number of threads memslap runs with. + + + +concurrency + + The number of concurrencies memslap runs with. + + + +run time + + How long to run memslap. + + + +windows size + + The task window size of each concurrency. + + + +set proportion + + The proportion of set command. + + + +get proportion + + The proportion of get command. + + + +The output of dynamic statistics is something like this: + + +.. code-block:: perl + + --------------------------------------------------------------------------------------------------------------------------------- + Get Statistics + Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us) + Avg(us) Std_dev Geo_dist + Period 5 345826 69165 65.3 0 27 2198 203 + 95.43 177.29 + Global 20 1257935 62896 71.8 0 26 3791 224 + 117.79 192.60 + + + Set Statistics + Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us) + Avg(us) Std_dev Geo_dist + Period 5 38425 7685 7.3 0 42 628 240 + 88.05 220.21 + Global 20 139780 6989 8.0 0 37 3790 253 + 117.93 224.83 + + + Total Statistics + Type Time(s) Ops TPS(ops/s) Net(M/s) Get_miss Min(us) Max(us) + Avg(us) Std_dev Geo_dist + Period 5 384252 76850 72.5 0 27 2198 207 + 94.72 181.18 + Global 20 1397720 69886 79.7 0 26 3791 227 + 117.93 195.60 + --------------------------------------------------------------------------------------------------------------------------------- + + + +Where +===== + + + +Get Statistics + + Statistics information of get command + + + +Set Statistics + + Statistics information of set command + + + +Total Statistics + + Statistics information of both get and set command + + + +Period + + Result within a period + + + +Global + + Accumulated results + + + +Ops + + Total operations + + + +TPS + + Throughput, operations/second + + + +Net + + The rate of network + + + +Get_miss + + How many objects can’t be gotten + + + +Min + + The minimum response time + + + +Max + + The maximum response time + + + +Avg: + + The average response time + + + +Std_dev + + Standard deviation of response time + + + +Geo_dist + + Geometric distribution based on natural exponential function + + + +At the end, memslap will output something like this: + + +.. code-block:: perl + + --------------------------------------------------------------------------------------------------------------------------------- + Get Statistics (1257956 events) + Min: 26 + Max: 3791 + Avg: 224 + Geo: 192.60 + Std: 116.23 + Log2 Dist: + 4: 0 10 84490 215345 + 8: 484890 459823 12543 824 + 12: 31 + + Set Statistics (139782 events) + Min: 37 + Max: 3790 + Avg: 253 + Geo: 224.84 + Std: 116.83 + Log2 Dist: + 4: 0 0 4200 16988 + 8: 50784 65574 2064 167 + 12: 5 + + Total Statistics (1397738 events) + Min: 26 + Max: 3791 + Avg: 227 + Geo: 195.60 + Std: 116.60 + Log2 Dist: + 4: 0 10 88690 232333 + 8: 535674 525397 14607 991 + 12: 36 + + cmd_get: 1257969 + cmd_set: 139785 + get_misses: 0 + verify_misses: 0 + verify_failed: 0 + expired_get: 0 + unexpired_unget: 0 + written_bytes: 242516030 + read_bytes: 1003702556 + object_bytes: 152086080 + packet_disorder: 0 + packet_drop: 0 + udp_timeout: 0 + + Run time: 20.0s Ops: 1397754 TPS: 69817 Net_rate: 59.4M/s + --------------------------------------------------------------------------------------------------------------------------------- + + + +Where +===== + + + +Get Statistics + + Get statistics of response time + + + +Set Statistics + + Set statistics of response time + + + +Total Statistics + + Both get and set statistics of response time + + + +Min + + The accumulated and minimum response time + + + +Max + + The accumulated and maximum response time + + + +Avg + + The accumulated and average response time + + + +Std + + Standard deviation of response time + + + +Log2 Dist + + Geometric distribution based on logarithm 2 + + + +cmd_get + + Total get commands done + + + +cmd_set + + Total set commands done + + + +get_misses + + How many objects can’t be gotten from server + + + +verify_misses + + How many objects need to verify but can’t get them + + + +verify_failed + + How many objects with insistent value + + + +expired_get + + How many objects are expired but we get them + + + +unexpired_unget + + How many objects are unexpired but we can’t get them + + + +written_bytes + + Total written bytes + + + +read_bytes + + Total read bytes + + + +object_bytes + + Total object bytes + + + +packet_disorder + + How many UDP packages are disorder + + + +packet_drop + + How many UDP packages are lost + + + +udp_timeout + + How many times UDP time out happen + + + +Run time + + Total run time + + + +Ops + + Total operations + + + +TPS + + Throughput, operations/second + + + +Net_rate + + The average rate of network + + + + + +******* +OPTIONS +******* + + +-s, --servers= + List one or more servers to connect. Servers count must be less than + threads count. e.g.: --servers=localhost:1234,localhost:11211 + +-T, --threads= + Number of threads to startup, better equal to CPU numbers. Default 8. + +-c, --concurrency= + Number of concurrency to simulate with load. Default 128. + +-n, --conn_sock= + Number of TCP socks per concurrency. Default 1. + +-x, --execute_number= + Number of operations(get and set) to execute for the + given test. Default 1000000. + +-t, --time= + How long the test to run, suffix: s-seconds, m-minutes, h-hours, + d-days e.g.: --time=2h. + +-F, --cfg_cmd= + Load the configure file to get command,key and value distribution list. + +-w, --win_size= + Task window size of each concurrency, suffix: K, M e.g.: --win_size=10k. + Default 10k. + +-X, --fixed_size= + Fixed length of value. + +-v, --verify= + The proportion of date verification, e.g.: --verify=0.01 + +-d, --division= + Number of keys to multi-get once. Default 1, means single get. + +-S, --stat_freq= + Frequency of dumping statistic information. suffix: s-seconds, + m-minutes, e.g.: --resp_freq=10s. + +-e, --exp_verify= + The proportion of objects with expire time, e.g.: --exp_verify=0.01. + Default no object with expire time + +-o, --overwrite= + The proportion of objects need overwrite, e.g.: --overwrite=0.01. + Default never overwrite object. + +-R, --reconnect + Reconnect support, when connection is closed it will be reconnected. + +-U, --udp + UDP support, default memslap uses TCP, TCP port and UDP port of + server must be same. + +-a, --facebook + Whether it enables facebook test feature, set with TCP and multi-get with UDP. + +-B, --binary + Whether it enables binary protocol. Default with ASCII protocol. + +-P, --tps= + Expected throughput, suffix: K, e.g.: --tps=10k. + +-p, --rep_write= + The first nth servers can write data, e.g.: --rep_write=2. + +-b, --verbose + Whether it outputs detailed information when verification fails. + +-h, --help + Display this message and then exit. + +-V, --version + Display the version of the application and then exit. + + +******** +EXAMPLES +******** + + +memslap -s 127.0.0.1:11211 -S 5s + +memslap -s 127.0.0.1:11211 -t 2m -v 0.2 -e 0.05 -b + +memslap -s 127.0.0.1:11211 -F config -t 2m -w 40k -S 20s -o 0.2 + +memslap -s 127.0.0.1:11211 -F config -t 2m -T 4 -c 128 -d 20 -P 40k + +memslap -s 127.0.0.1:11211 -F config -t 2m -d 50 -a -n 40 + +memslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m + +memslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m -p 2 + + +**** +HOME +**** + + +To find out more information please check: +`http://launchpad.org/libmemcached `_ + + +******* +AUTHORS +******* + + +Mingqiang Zhuang (Schooner Technolgy) +Brian Aker, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) + diff --git a/docs/memstat.pod b/docs/memstat.pod deleted file mode 100644 index a1079cc0..00000000 --- a/docs/memstat.pod +++ /dev/null @@ -1,37 +0,0 @@ -=head1 NAME - -memstat - Display the operating status of a single or group of memcached servers - -=head1 SYNOPSIS - - memstat [options] - -=head1 DESCRIPTION - -B dumps the state of memcached(1) servers. -It displays all data to stdout. - -You can specify servers via the B<--servers> option or via the -environment variable C. B<--args> can be used -to specify the "argument" sent to the stats command (ie slab, size, items, -etc..). - -For a full list of operations run the tool with the B<--help> option. - -=head1 HOME - -To find out more information please check: -L - -=head1 AUTHOR - -Brian Aker, Ebrian@tangent.orgE - -Mark Atwood, Emark@fallenpegasus.comE - -=head1 SEE ALSO - -memcached(1) libmemcached(3) - -=cut - diff --git a/docs/memstat.rst b/docs/memstat.rst new file mode 100644 index 00000000..8422943f --- /dev/null +++ b/docs/memstat.rst @@ -0,0 +1,65 @@ +.. highlight:: perl + + +**** +NAME +**** + + +memstat - Display the operating status of a single or group of memcached servers + + +******** +SYNOPSIS +******** + + + +.. code-block:: perl + + memstat [options] + + + +*********** +DESCRIPTION +*********** + + +\ **memstat**\ dumps the state of memcached(1) servers. +It displays all data to stdout. + +You can specify servers via the \ **--servers**\ option or via the +environment variable \ ``MEMCACHED_SERVERS``\ . \ **--args**\ can be used +to specify the "argument" sent to the stats command (ie slab, size, items, +etc..). + +For a full list of operations run the tool with the \ **--help**\ option. + + +**** +HOME +**** + + +To find out more information please check: +`http://launchpad.org/libmemcached `_ + + +****** +AUTHOR +****** + + +Brian Aker, + +Mark Atwood, + + +******** +SEE ALSO +******** + + +memcached(1) libmemcached(3) + diff --git a/m4/pandora_canonical.m4 b/m4/pandora_canonical.m4 index 002f2fd3..ceb859af 100644 --- a/m4/pandora_canonical.m4 +++ b/m4/pandora_canonical.m4 @@ -4,7 +4,7 @@ dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Which version of the canonical setup we're using -AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.171]) +AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.175]) AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[ AC_ARG_ENABLE([fat-binaries], @@ -115,7 +115,7 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[ vc_changelog=yes ]) m4_if(PCT_VERSION_FROM_VC,yes,[ - PANDORA_VC_VERSION + PANDORA_VC_INFO_HEADER ],[ PANDORA_TEST_VC_DIR @@ -268,6 +268,7 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[ AC_LIB_PREFIX PANDORA_HAVE_BETTER_MALLOC + PANDORA_WITH_VALGRIND AC_CHECK_PROGS([DOXYGEN], [doxygen]) AC_CHECK_PROGS([PERL], [perl]) @@ -328,6 +329,7 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[ #error "You should include config.h as your first include file" #endif +#include ]) mkdir -p config cat > config/top.h.stamp < + ], + [ + int aio_cmd= IO_CMD_PREAD; + ]) + + AM_CONDITIONAL(HAVE_LIBAIO, [test "x${ac_cv_libaio}" = "xyes"]) + + AS_IF([test "x${ac_cv_libaio}" = "xyes"],[ + AC_DEFINE([LINUX_NATIVE_AIO], [1], [Enabel libaio support in InnoDB]) + ]) +]) + +AC_DEFUN([_PANDORA_HAVE_LIBAIO],[ + + AC_ARG_ENABLE([libaio], + [AS_HELP_STRING([--disable-libaio], + [Build with libaio support @<:@default=on@:>@])], + [ac_enable_libaio="$enableval"], + [ac_enable_libaio="yes"]) + + _PANDORA_SEARCH_LIBAIO +]) + + +AC_DEFUN([PANDORA_HAVE_LIBAIO],[ + AC_REQUIRE([_PANDORA_HAVE_LIBAIO]) +]) + +AC_DEFUN([_PANDORA_REQUIRE_LIBAIO],[ + ac_enable_libaio="yes" + _PANDORA_SEARCH_LIBAIO + AS_IF([test "x$ac_cv_header_libaio_h" = "xno"],[ + AC_MSG_ERROR([Couldn't find libaio.h. On Debian this can be found in libaio-dev. On Redhat this can be found in libaio-devel.]) + ]) +]) + +AC_DEFUN([PANDORA_REQUIRE_LIBAIO],[ + AC_REQUIRE([_PANDORA_REQUIRE_LIBAIO]) +]) diff --git a/m4/pandora_have_libboost_filesystem.m4 b/m4/pandora_have_libboost_filesystem.m4 index 6b9ecba5..ea6953ec 100644 --- a/m4/pandora_have_libboost_filesystem.m4 +++ b/m4/pandora_have_libboost_filesystem.m4 @@ -28,6 +28,8 @@ AC_DEFUN([_PANDORA_SEARCH_BOOST_FILESYSTEM],[ AM_CONDITIONAL(HAVE_BOOST_FILESYSTEM, [test "x${ac_cv_libboost_filesystem}" = "xyes" -o "x${ac_cv_libboost_filesystem_mt}" = "xyes"]) BOOST_LIBS="${BOOST_LIBS} ${LTLIBBOOST_FILESYSTEM_MT} ${LTLIBBOOST_FILESYSTEM}" + AC_DEFINE([BOOST_FILESYSTEM_DEPRECATED], [1], + [Use the v2 interface until we can stop using old versions]) AC_SUBST(BOOST_LIBS) ]) diff --git a/m4/pandora_have_libboost_test.m4 b/m4/pandora_have_libboost_test.m4 new file mode 100644 index 00000000..7a526c04 --- /dev/null +++ b/m4/pandora_have_libboost_test.m4 @@ -0,0 +1,45 @@ +dnl Copyright (C) 2011 Andrew Hutchings +dnl This file is free software; Andrew Hutchings +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([_PANDORA_SEARCH_BOOST_TEST],[ + AC_REQUIRE([AC_LIB_PREFIX]) + + dnl -------------------------------------------------------------------- + dnl Check for boost::test + dnl -------------------------------------------------------------------- + + AC_LANG_PUSH(C++) + AC_LIB_HAVE_LINKFLAGS(boost_unit_test_framework-mt,,[ + #include + ],[ + boost::unit_test::unit_test_log.set_threshold_level(boost::unit_test::log_messages); + ]) + AS_IF([test "x${ac_cv_libboost_unit_test_framework_mt}" = "xno"],[ + AC_LIB_HAVE_LINKFLAGS(boost_unit_test_framework,,[ + #include + ],[ + boost::unit_test::unit_test_log.set_threshold_level(boost::unit_test::log_messages); + ]) + ]) + AC_LANG_POP() + + AM_CONDITIONAL(HAVE_BOOST_TEST, + [test "x${ac_cv_libboost_unit_test_framework}" = "xyes" -o "x${ac_cv_libboost_unit_test_framework_mt}" = "xyes"]) + BOOST_LIBS="${BOOST_LIBS} ${LTLIBBOOST_TEST_MT} ${LTLIBBOOST_TEST}" + AC_SUBST(BOOST_LIBS) +]) + +AC_DEFUN([PANDORA_HAVE_BOOST_TEST],[ + PANDORA_HAVE_BOOST($1) + _PANDORA_SEARCH_BOOST_TEST($1) +]) + +AC_DEFUN([PANDORA_REQUIRE_BOOST_TEST],[ + PANDORA_REQUIRE_BOOST($1) + _PANDORA_SEARCH_BOOST_TEST($1) + AS_IF([test "x${ac_cv_libboost_unit_test_framework}" = "xno" -a "x${ac_cv_libboost_unit_test_framework_mt}" = "xno"], + AC_MSG_ERROR([boost::test is required for ${PACKAGE}])) +]) + diff --git a/m4/pandora_have_libhaildb.m4 b/m4/pandora_have_libhaildb.m4 index 56f71ccc..b957f64c 100644 --- a/m4/pandora_have_libhaildb.m4 +++ b/m4/pandora_have_libhaildb.m4 @@ -21,7 +21,7 @@ AC_DEFUN([_PANDORA_SEARCH_LIBHAILDB],[ AC_LIB_HAVE_LINKFLAGS(haildb,,[ #include ],[ - ib_set_panic_handler(NULL); + ib_update_table_statistics(NULL); ]) AS_IF([test "x${ac_cv_libhaildb}" = "xyes"],[ AC_DEFINE([HAVE_HAILDB_H],[1],[Do we have haildb.h]) @@ -39,5 +39,5 @@ AC_DEFUN([PANDORA_HAVE_LIBHAILDB],[ AC_DEFUN([PANDORA_REQUIRE_LIBHAILDB],[ AC_REQUIRE([PANDORA_HAVE_LIBHAILDB]) AS_IF([test "x${ac_cv_libhaildb}" = "xno"], - AC_MSG_ERROR([libhaildb 2.2.0 or later is required for ${PACKAGE}])) + AC_MSG_ERROR([libhaildb 2.3.2 or later is required for ${PACKAGE}])) ]) diff --git a/m4/pandora_have_libuuid.m4 b/m4/pandora_have_libuuid.m4 index f1c583e6..0bd28b9a 100644 --- a/m4/pandora_have_libuuid.m4 +++ b/m4/pandora_have_libuuid.m4 @@ -46,7 +46,7 @@ AC_DEFUN([_PANDORA_REQUIRE_LIBUUID],[ ac_enable_libuuid="yes" _PANDORA_SEARCH_LIBUUID AS_IF([test "x$ac_cv_header_uuid_uuid_h" = "xno"],[ - AC_MSG_ERROR([Couldn't find uuid/uuid.h. On Debian this can be found in uuid-dev. On Redhat this can be found in e2fsprogs-devel.]) + AC_MSG_ERROR([Couldn't find uuid/uuid.h. On Debian this can be found in uuid-dev. On RHEL 4 this can be found in e2fsprogs-devel and Fedora/RHEL 6 in libuuid-devel.]) ]) ]) diff --git a/m4/pandora_plugins.m4 b/m4/pandora_plugins.m4 index 6ee13da0..540443b0 100644 --- a/m4/pandora_plugins.m4 +++ b/m4/pandora_plugins.m4 @@ -17,7 +17,7 @@ AC_DEFUN([PANDORA_PLUGINS],[ dnl get called probably during autoconf too, so it's important to protect dnl with test -f ... if the files exist, we don't have the chicken/egg dnl problem and therefore don't need to do anything here - m4_syscmd([python config/pandora-plugin > /dev/null]) + m4_syscmd([PYTHON=${PYTHON:-python} && $PYTHON config/pandora-plugin > /dev/null]) m4_syscmd([test -f config/plugin.stamp || touch config/plugin.stamp aclocal.m4]) m4_sinclude(config/pandora-plugin.ac) diff --git a/m4/pandora_stl_hash.m4 b/m4/pandora_stl_hash.m4 index 30277d2f..ef1daac7 100644 --- a/m4/pandora_stl_hash.m4 +++ b/m4/pandora_stl_hash.m4 @@ -1,3 +1,8 @@ +# Copyright (C) 2008 Sun Microsystems, Inc. +# This file is free software; Sun Microsystems, Inc. +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + # We check two things: where the include file is for unordered_map, and # what namespace unordered_map lives in within that include file. We # include AC_COMPILE_IFELSE for all the combinations we've seen in the diff --git a/m4/pandora_vc_build.m4 b/m4/pandora_vc_build.m4 index 5e7ed652..a1fb60b3 100644 --- a/m4/pandora_vc_build.m4 +++ b/m4/pandora_vc_build.m4 @@ -60,10 +60,19 @@ AC_DEFUN([PANDORA_BUILDING_FROM_VC],[ PANDORA_VC_REVNO="${PANDORA_BZR_REVNO}" PANDORA_VC_REVID=`bzr log -r-1 --show-ids | grep revision-id | cut -f2 -d' ' | head -1` PANDORA_VC_BRANCH=`bzr nick` + PANDORA_VC_TAG=`bzr tags -r-1 | cut -f1 -d' ' | head -1` + PANDORA_VC_LATEST_TAG=`bzr tags --sort=time | grep -v '\?'| cut -f1 -d' ' | tail -1` if test "x${vc_changelog}" = "xyes"; then bzr log --gnu > ChangeLog fi fi + elif test "${pandora_building_from_git}" = "yes"; then + echo "# Grabbing changelog and version information from git" + PANDORA_GIT_REVID=`git --no-pager log --max-count=1 | cut -f2 -d' ' | head -1` + if test "x$PANDORA_GIT_REVID" != "x${PANDORA_VC_REVNO}" ; then + PANDORA_VC_REVID="${PANDORA_GIT_REVID}" + PANDORA_VC_BRANCH=`git branch | grep -Ei "\* (.*)" | cut -f2 -d' '` + fi fi if ! test -d config ; then @@ -75,6 +84,8 @@ AC_DEFUN([PANDORA_BUILDING_FROM_VC],[ PANDORA_VC_REVNO=${PANDORA_VC_REVNO} PANDORA_VC_REVID=${PANDORA_VC_REVID} PANDORA_VC_BRANCH=${PANDORA_VC_BRANCH} +PANDORA_VC_TAG=${PANDORA_VC_TAG} +PANDORA_VC_LATEST_TAG=${PANDORA_VC_LATEST_TAG} PANDORA_RELEASE_DATE=${PANDORA_RELEASE_DATE} PANDORA_RELEASE_NODOTS_DATE=${PANDORA_RELEASE_NODOTS_DATE} EOF @@ -100,6 +111,10 @@ AC_DEFUN([PANDORA_VC_VERSION],[ _PANDORA_READ_FROM_FILE([PANDORA_VC_REVID],${srcdir}/config/pandora_vc_revinfo) _PANDORA_READ_FROM_FILE([PANDORA_VC_BRANCH], ${srcdir}/config/pandora_vc_revinfo) + _PANDORA_READ_FROM_FILE([PANDORA_VC_TAG], + ${srcdir}/config/pandora_vc_revinfo) + _PANDORA_READ_FROM_FILE([PANDORA_VC_LATEST_TAG], + ${srcdir}/config/pandora_vc_revinfo) _PANDORA_READ_FROM_FILE([PANDORA_RELEASE_DATE], ${srcdir}/config/pandora_vc_revinfo) _PANDORA_READ_FROM_FILE([PANDORA_RELEASE_NODOTS_DATE], @@ -111,8 +126,19 @@ AC_DEFUN([PANDORA_VC_VERSION],[ PANDORA_RELEASE_COMMENT="trunk" ]) - PANDORA_RELEASE_VERSION="${PANDORA_RELEASE_DATE}.${PANDORA_VC_REVNO}" - PANDORA_RELEASE_ID="${PANDORA_RELEASE_NODOTS_DATE}${PANDORA_VC_REVNO}" + AS_IF([test "x${PANDORA_VC_TAG}" != "x"],[ + PANDORA_RELEASE_VERSION="${PANDORA_VC_TAG}" + ],[ + AS_IF([test "x${PANDORA_VC_LATEST_TAG}" != "x"],[ + PANDORA_RELEASE_VERSION="${PANDORA_VC_LATEST_TAG}.${PANDORA_VC_REVNO}" + ],[ + PANDORA_RELEASE_VERSION="${PANDORA_RELEASE_DATE}.${PANDORA_VC_REVNO}" + ]) + ]) + changequote(<<, >>)dnl + PANDORA_RELEASE_ID=`echo ${PANDORA_RELEASE_VERSION} | sed 's/[^0-9]//g'` + changequote([, ])dnl + VERSION="${PANDORA_RELEASE_VERSION}" AC_DEFINE_UNQUOTED([PANDORA_RELEASE_VERSION],["${PANDORA_RELEASE_VERSION}"], diff --git a/m4/pandora_visibility.m4 b/m4/pandora_visibility.m4 index a85d68b0..f0baa601 100644 --- a/m4/pandora_visibility.m4 +++ b/m4/pandora_visibility.m4 @@ -35,23 +35,33 @@ AC_DEFUN([PANDORA_CHECK_VISIBILITY], extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void);], - [], - [gl_cv_cc_visibility=yes], - [gl_cv_cc_visibility=no]) + [],[ + case "$host_os" in + *darwin*) + gl_cv_cc_visibility=no + ;; + *) + gl_cv_cc_visibility=yes + ;; + esac + ],[gl_cv_cc_visibility=no]) CFLAGS="$gl_save_CFLAGS"]) AC_MSG_RESULT([$gl_cv_cc_visibility]) if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" + CXXFLAG_VISIBILITY="-fvisibility=hidden -fvisibility-inlines-hidden" NO_VISIBILITY="-fvisibility=default" HAVE_VISIBILITY=1 fi ]) AS_IF([test "x$SUNCC" = "xyes"],[ CFLAG_VISIBILITY="-xldscope=hidden" + CXXFLAG_VISIBILITY="-xldscope=hidden" NO_VISIBILITY="-xldscope=global" HAVE_VISIBILITY=1 ]) AC_SUBST([CFLAG_VISIBILITY]) + AC_SUBST([CXXFLAG_VISIBILITY]) AC_SUBST([NO_VISIBILITY]) AC_SUBST([HAVE_VISIBILITY]) AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], @@ -61,5 +71,5 @@ AC_DEFUN([PANDORA_CHECK_VISIBILITY], AC_DEFUN([PANDORA_ENABLE_VISIBILITY],[ AC_REQUIRE([PANDORA_CHECK_VISIBILITY]) AM_CFLAGS="${AM_CFLAGS} ${CFLAG_VISIBILITY}" - AM_CXXFLAGS="${AM_CXXFLAGS} ${CFLAG_VISIBILITY}" + AM_CXXFLAGS="${AM_CXXFLAGS} ${CXXFLAG_VISIBILITY}" ]) diff --git a/m4/pandora_warnings.m4 b/m4/pandora_warnings.m4 index 7ef435ff..0f6d47af 100644 --- a/m4/pandora_warnings.m4 +++ b/m4/pandora_warnings.m4 @@ -75,8 +75,11 @@ AC_DEFUN([PANDORA_WARNINGS],[ - AS_IF([test "$ac_cv_warnings_as_errors" = "yes"], - [W_FAIL="-Werror"]) + AS_IF([test "$ac_cv_warnings_as_errors" = "yes"],[ + W_FAIL="-Werror" + SPHINX_WARNINGS="-W" + INTLTOOL_WARNINGS="yes" + ]) AC_CACHE_CHECK([whether it is safe to use -fdiagnostics-show-option], [ac_cv_safe_to_use_fdiagnostics_show_option_], @@ -127,7 +130,7 @@ AC_DEFUN([PANDORA_WARNINGS],[ ],[ m4_if(PW_LESS_WARNINGS,[no],[ - BASE_WARNINGS_FULL="${W_CONVERSION} -Wstrict-aliasing" + BASE_WARNINGS_FULL="${W_CONVERSION} -Wstrict-aliasing -Wswitch-enum " CC_WARNINGS_FULL="-Wswitch-default -Wswitch-enum -Wwrite-strings" CXX_WARNINGS_FULL="" NO_OLD_STYLE_CAST="-Wno-old-style-cast" @@ -153,7 +156,7 @@ AC_DEFUN([PANDORA_WARNINGS],[ [ac_cv_safe_to_use_Wextra_=no]) CFLAGS="$save_CFLAGS"]) - BASE_WARNINGS="${W_FAIL} -pedantic -Wall -Wswitch-enum -Wundef -Wshadow ${NO_UNUSED} ${F_DIAGNOSTICS_SHOW_OPTION} ${F_LOOP_PARALLELIZE_ALL} ${BASE_WARNINGS_FULL}" + BASE_WARNINGS="${W_FAIL} -pedantic -Wall -Wundef -Wshadow ${NO_UNUSED} ${F_DIAGNOSTICS_SHOW_OPTION} ${F_LOOP_PARALLELIZE_ALL} ${BASE_WARNINGS_FULL}" AS_IF([test "$ac_cv_safe_to_use_Wextra_" = "yes"], [BASE_WARNINGS="${BASE_WARNINGS} -Wextra"], [BASE_WARNINGS="${BASE_WARNINGS} -W"]) @@ -372,6 +375,7 @@ inline const EnumDescriptor* GetEnumDescriptor() { PROTOSKIP_WARNINGS="-Wno-effc++ -Wno-shadow -Wno-missing-braces ${NO_ATTRIBUTES}" NO_WERROR="-Wno-error" PERMISSIVE_WARNINGS="-Wno-error -Wno-unused-function -fpermissive" + PERMISSIVE_C_WARNINGS="-Wno-error -Wno-redundant-decls" AS_IF([test "$host_vendor" = "apple"],[ BOOSTSKIP_WARNINGS="-Wno-uninitialized" ]) @@ -434,7 +438,10 @@ inline const EnumDescriptor* GetEnumDescriptor() { AC_SUBST(INNOBASE_SKIP_WARNINGS) AC_SUBST(BOOSTSKIP_WARNINGS) AC_SUBST(PERMISSIVE_WARNINGS) + AC_SUBST(PERMISSIVE_C_WARNINGS) AC_SUBST(NO_WERROR) AC_SUBST([GCOV_LIBS]) + AC_SUBST([SPHINX_WARNINGS]) + AC_SUBST([INTLTOOL_WARNINGS]) ]) diff --git a/m4/pandora_with_valgrind.m4 b/m4/pandora_with_valgrind.m4 new file mode 100644 index 00000000..47944d8b --- /dev/null +++ b/m4/pandora_with_valgrind.m4 @@ -0,0 +1,17 @@ +dnl Copyright (C) 2010 Brian Aker +dnl This file is free software; Brian Aker +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([PANDORA_WITH_VALGRIND],[ + + AC_ARG_WITH([valgrind], + [AS_HELP_STRING([--with-valgrind], + [Add additional valgrind code for testing with valgrind.])], + [with_valgrind=yes], + [with_valgrind=no]) + AM_CONDITIONAL(HAVE_VALGRIND,[test "x${with_valgrind}" = "xyes"]) + AS_IF([test "x$with_valgrind" = "xyes"], + AC_DEFINE([HAVE_VALGRIND],[1], + [Add additional valgrind code for testing with valgrind.])) +]) diff --git a/m4/pod2man.m4 b/m4/pod2man.m4 deleted file mode 100644 index 26589981..00000000 --- a/m4/pod2man.m4 +++ /dev/null @@ -1,7 +0,0 @@ -AC_DEFUN([REQUIRE_POD2MAN],[ - AC_PATH_PROG([POD2MAN], [pod2man], - "no", [$PATH:/usr/bin:/usr/local/bin:/usr/perl5/bin]) - AS_IF([test "x$POD2MAN" = "xno"], - AC_MSG_ERROR(["Could not find pod2man anywhere in path"])) - AC_SUBST(POD2MAN) -]) diff --git a/m4/podchecker.m4 b/m4/podchecker.m4 deleted file mode 100644 index ae10a6bd..00000000 --- a/m4/podchecker.m4 +++ /dev/null @@ -1,7 +0,0 @@ -AC_DEFUN([REQUIRE_PODCHECKER],[ - AC_PATH_PROG([PODCHECKER], [podchecker], - "no", [$PATH:/usr/bin:/usr/local/bin:/usr/perl5/bin]) - AS_IF([test "x$PODCHECKER" = "xno"], - AC_MSG_ERROR(["Could not find podchecker anywhere in path"])) - AC_SUBST(PODCHECKER) -])