From 1687e3788497216af5caf0bf11f3ac578ac4566d Mon Sep 17 00:00:00 2001 From: appkins Date: Fri, 23 Nov 2018 22:28:58 -0600 Subject: [PATCH 01/58] added additional gitignore --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index 016cde11..df844345 100644 --- a/.gitignore +++ b/.gitignore @@ -22,7 +22,13 @@ *.a *.lib +# IDE Project files +.idea +.vscode + +# Autogen directories build +*build* deps target lib From 1110dbc245dbabc61bb6f040c7a93a130ecdc62b Mon Sep 17 00:00:00 2001 From: appkins Date: Fri, 23 Nov 2018 22:31:23 -0600 Subject: [PATCH 02/58] redis 5 support added stream methods to client --- Doxyfile | 281 + docs/_config.yml | 1 + docs/html/annotated.html | 15 +- docs/html/array__builder_8hpp.html | 10 +- docs/html/array__builder_8hpp_source.html | 17 +- docs/html/builder__iface_8hpp.html | 10 +- docs/html/builder__iface_8hpp_source.html | 17 +- docs/html/builders__factory_8hpp.html | 10 +- docs/html/builders__factory_8hpp_source.html | 17 +- docs/html/bulk__string__builder_8hpp.html | 10 +- .../bulk__string__builder_8hpp_source.html | 17 +- ...1_1builders_1_1array__builder-members.html | 15 +- ...__redis_1_1builders_1_1array__builder.html | 23 +- ...1_1builders_1_1builder__iface-members.html | 15 +- ...__redis_1_1builders_1_1builder__iface.html | 23 +- ...ders_1_1bulk__string__builder-members.html | 15 +- ..._1_1builders_1_1bulk__string__builder.html | 23 +- ...1_1builders_1_1error__builder-members.html | 15 +- ...__redis_1_1builders_1_1error__builder.html | 23 +- ...1builders_1_1integer__builder-members.html | 15 +- ...redis_1_1builders_1_1integer__builder.html | 23 +- ...1_1builders_1_1reply__builder-members.html | 18 +- ...__redis_1_1builders_1_1reply__builder.html | 44 +- ...rs_1_1simple__string__builder-members.html | 15 +- ..._1builders_1_1simple__string__builder.html | 23 +- .../classcpp__redis_1_1client-members.html | 97 +- docs/html/classcpp__redis_1_1client.html | 1107 ++- .../classcpp__redis_1_1logger-members.html | 17 +- docs/html/classcpp__redis_1_1logger.html | 23 +- ...sscpp__redis_1_1logger__iface-members.html | 15 +- .../classcpp__redis_1_1logger__iface.html | 21 +- ...1network_1_1redis__connection-members.html | 15 +- ...redis_1_1network_1_1redis__connection.html | 21 +- ...dis_1_1network_1_1tcp__client-members.html | 15 +- ...scpp__redis_1_1network_1_1tcp__client.html | 23 +- ...network_1_1tcp__client__iface-members.html | 15 +- ...edis_1_1network_1_1tcp__client__iface.html | 25 +- ...asscpp__redis_1_1redis__error-members.html | 15 +- .../html/classcpp__redis_1_1redis__error.html | 21 +- .../classcpp__redis_1_1reply-members.html | 31 +- docs/html/classcpp__redis_1_1reply.html | 31 +- .../classcpp__redis_1_1sentinel-members.html | 33 +- docs/html/classcpp__redis_1_1sentinel.html | 47 +- ..._1_1sentinel_1_1sentinel__def-members.html | 15 +- ...p__redis_1_1sentinel_1_1sentinel__def.html | 19 +- ...classcpp__redis_1_1subscriber-members.html | 47 +- docs/html/classcpp__redis_1_1subscriber.html | 242 +- docs/html/classes.html | 37 +- docs/html/client_8hpp.html | 10 +- docs/html/client_8hpp_source.html | 67 +- docs/html/client_8ipp.html | 8 +- .../dir_09e761304027c904456130627fd4dcf5.html | 15 +- .../dir_352251206f2e216e88810b5fb29f51c8.html | 15 +- .../dir_385d11d1b9f28fad9d9928b9e15978bd.html | 15 +- .../dir_4a9a619cb35b7ba799bd8912e91a56ec.html | 15 +- .../dir_4c391377e6d701cd473ddfe3ca211243.html | 15 +- .../dir_4cd0548f4edb17fdac03175eefab51fa.html | 15 +- .../dir_a1e54deb92a7436074f1a80a5fcea478.html | 15 +- .../dir_aabee9b2b90be9a3c8dcec590ad04d13.html | 17 +- docs/html/doxygen.css | 2 +- docs/html/dynsections.js | 33 +- docs/html/error_8hpp.html | 10 +- docs/html/error_8hpp_source.html | 17 +- docs/html/error__builder_8hpp.html | 10 +- docs/html/error__builder_8hpp_source.html | 17 +- docs/html/files.html | 15 +- docs/html/functions.html | 15 +- docs/html/functions_0x7e.html | 19 +- docs/html/functions_b.html | 15 +- docs/html/functions_c.html | 33 +- docs/html/functions_d.html | 15 +- docs/html/functions_e.html | 15 +- docs/html/functions_enum.html | 15 +- docs/html/functions_f.html | 6 +- docs/html/functions_func.html | 412 +- docs/html/functions_func_0x7e.html | 22 +- docs/html/functions_func_b.html | 52 +- docs/html/functions_func_c.html | 167 +- docs/html/functions_func_d.html | 39 +- docs/html/functions_func_e.html | 41 +- docs/html/functions_func_f.html | 6 +- docs/html/functions_func_g.html | 49 +- docs/html/functions_func_h.html | 8 +- docs/html/functions_func_i.html | 34 +- docs/html/functions_func_k.html | 18 +- docs/html/functions_func_l.html | 48 +- docs/html/functions_func_m.html | 6 +- docs/html/functions_func_o.html | 23 +- docs/html/functions_func_p.html | 49 +- docs/html/functions_func_q.html | 6 +- docs/html/functions_func_r.html | 74 +- docs/html/functions_func_s.html | 135 +- docs/html/functions_func_t.html | 34 +- docs/html/functions_func_u.html | 33 +- docs/html/functions_func_w.html | 21 +- docs/html/functions_func_x.html | 88 + docs/html/functions_func_z.html | 6 +- docs/html/functions_g.html | 19 +- docs/html/functions_h.html | 8 +- docs/html/functions_i.html | 23 +- docs/html/functions_k.html | 15 +- docs/html/functions_l.html | 15 +- docs/html/functions_m.html | 10 +- docs/html/functions_o.html | 15 +- docs/html/functions_p.html | 15 +- docs/html/functions_q.html | 6 +- docs/html/functions_r.html | 22 +- docs/html/functions_s.html | 19 +- docs/html/functions_t.html | 15 +- docs/html/functions_type.html | 27 +- docs/html/functions_u.html | 15 +- docs/html/functions_v.html | 15 +- docs/html/functions_vars.html | 15 +- docs/html/functions_w.html | 15 +- docs/html/functions_x.html | 88 + docs/html/functions_z.html | 6 +- docs/html/globals.html | 6 +- docs/html/globals_defs.html | 6 +- docs/html/globals_func.html | 6 +- docs/html/hierarchy.html | 15 +- docs/html/index.html | 38 +- docs/html/integer__builder_8hpp.html | 10 +- docs/html/integer__builder_8hpp_source.html | 17 +- docs/html/jquery.js | 38 +- docs/html/logger_8hpp.html | 16 +- docs/html/logger_8hpp_source.html | 24 +- docs/html/macro_8hpp_source.html | 17 +- docs/html/menu.js | 26 +- docs/html/menudata.js | 72 +- docs/html/namespacecpp__redis.html | 14 +- .../html/namespacecpp__redis_1_1builders.html | 10 +- docs/html/namespacecpp__redis_1_1helpers.html | 8 +- docs/html/namespacecpp__redis_1_1network.html | 10 +- docs/html/namespacemembers.html | 6 +- docs/html/namespacemembers_func.html | 6 +- docs/html/namespacemembers_vars.html | 6 +- docs/html/namespaces.html | 6 +- docs/html/redis__connection_8hpp.html | 12 +- docs/html/redis__connection_8hpp_source.html | 17 +- docs/html/reply_8hpp.html | 14 +- docs/html/reply_8hpp_source.html | 18 +- docs/html/reply__builder_8hpp.html | 10 +- docs/html/reply__builder_8hpp_source.html | 18 +- docs/html/search/all_0.html | 6 +- docs/html/search/all_1.html | 6 +- docs/html/search/all_10.html | 6 +- docs/html/search/all_11.html | 6 +- docs/html/search/all_12.html | 6 +- docs/html/search/all_12.js | 19 +- docs/html/search/all_13.html | 6 +- docs/html/search/all_13.js | 26 +- docs/html/search/all_14.html | 2 +- docs/html/search/all_14.js | 2 +- docs/html/search/all_15.html | 2 +- docs/html/search/all_16.html | 2 +- docs/html/search/all_17.html | 2 +- docs/html/search/all_18.html | 2 +- docs/html/search/all_2.html | 6 +- docs/html/search/all_2.js | 14 +- docs/html/search/all_3.html | 6 +- docs/html/search/all_4.html | 6 +- docs/html/search/all_5.html | 6 +- docs/html/search/all_6.html | 6 +- docs/html/search/all_6.js | 2 +- docs/html/search/all_7.html | 6 +- docs/html/search/all_7.js | 4 +- docs/html/search/all_8.html | 6 +- docs/html/search/all_9.html | 6 +- docs/html/search/all_a.html | 6 +- docs/html/search/all_a.js | 2 +- docs/html/search/all_b.html | 6 +- docs/html/search/all_c.html | 6 +- docs/html/search/all_c.js | 7 +- docs/html/search/all_d.html | 6 +- docs/html/search/all_d.js | 6 +- docs/html/search/all_e.html | 6 +- docs/html/search/all_f.html | 6 +- docs/html/search/classes_0.html | 6 +- docs/html/search/classes_1.html | 6 +- docs/html/search/classes_2.html | 6 +- docs/html/search/classes_3.html | 6 +- docs/html/search/classes_4.html | 6 +- docs/html/search/classes_5.html | 6 +- docs/html/search/classes_6.html | 6 +- docs/html/search/classes_7.html | 6 +- docs/html/search/classes_8.html | 6 +- docs/html/search/classes_9.html | 6 +- docs/html/search/classes_a.html | 6 +- docs/html/search/defines_0.html | 2 +- docs/html/search/enums_0.html | 6 +- docs/html/search/enums_1.html | 6 +- docs/html/search/enums_2.html | 6 +- docs/html/search/enums_3.html | 6 +- docs/html/search/enums_4.html | 6 +- docs/html/search/enums_5.html | 6 +- docs/html/search/enums_6.html | 6 +- docs/html/search/enums_7.html | 6 +- docs/html/search/enumvalues_0.html | 2 +- docs/html/search/enumvalues_1.html | 2 +- docs/html/search/enumvalues_2.html | 2 +- docs/html/search/enumvalues_3.html | 2 +- docs/html/search/enumvalues_4.html | 2 +- docs/html/search/enumvalues_5.html | 2 +- docs/html/search/enumvalues_6.html | 2 +- docs/html/search/enumvalues_7.html | 2 +- docs/html/search/enumvalues_8.html | 2 +- docs/html/search/enumvalues_9.html | 2 +- docs/html/search/enumvalues_a.html | 2 +- docs/html/search/enumvalues_b.html | 2 +- docs/html/search/enumvalues_c.html | 2 +- docs/html/search/files_0.html | 2 +- docs/html/search/files_1.html | 2 +- docs/html/search/files_2.html | 2 +- docs/html/search/files_3.html | 2 +- docs/html/search/files_4.html | 2 +- docs/html/search/files_5.html | 2 +- docs/html/search/files_6.html | 2 +- docs/html/search/files_7.html | 2 +- docs/html/search/files_8.html | 2 +- docs/html/search/files_9.html | 2 +- docs/html/search/functions_0.html | 6 +- docs/html/search/functions_1.html | 6 +- docs/html/search/functions_10.html | 6 +- docs/html/search/functions_10.js | 19 +- docs/html/search/functions_11.html | 6 +- docs/html/search/functions_11.js | 24 +- docs/html/search/functions_12.html | 2 +- docs/html/search/functions_12.js | 2 +- docs/html/search/functions_13.html | 2 +- docs/html/search/functions_14.html | 2 +- docs/html/search/functions_15.html | 2 +- docs/html/search/functions_2.html | 6 +- docs/html/search/functions_2.js | 12 +- docs/html/search/functions_3.html | 6 +- docs/html/search/functions_4.html | 6 +- docs/html/search/functions_5.html | 6 +- docs/html/search/functions_5.js | 2 +- docs/html/search/functions_6.html | 6 +- docs/html/search/functions_6.js | 4 +- docs/html/search/functions_7.html | 6 +- docs/html/search/functions_8.html | 6 +- docs/html/search/functions_9.html | 6 +- docs/html/search/functions_9.js | 2 +- docs/html/search/functions_a.html | 6 +- docs/html/search/functions_b.html | 6 +- docs/html/search/functions_b.js | 5 +- docs/html/search/functions_c.html | 6 +- docs/html/search/functions_c.js | 4 +- docs/html/search/functions_d.html | 6 +- docs/html/search/functions_e.html | 6 +- docs/html/search/functions_f.html | 6 +- docs/html/search/namespaces_0.html | 2 +- docs/html/search/search.js | 39 +- docs/html/search/searchdata.js | 18 - docs/html/search/typedefs_0.html | 6 +- docs/html/search/typedefs_1.html | 6 +- docs/html/search/typedefs_1.js | 2 +- docs/html/search/typedefs_2.html | 6 +- docs/html/search/typedefs_3.html | 6 +- docs/html/search/typedefs_3.js | 2 +- docs/html/search/typedefs_4.html | 6 +- docs/html/search/typedefs_4.js | 2 +- docs/html/search/typedefs_5.html | 6 +- docs/html/search/variables_0.html | 6 +- docs/html/search/variables_1.html | 6 +- docs/html/search/variables_2.html | 6 +- docs/html/search/variables_3.html | 6 +- docs/html/search/variables_4.html | 6 +- docs/html/search/variables_5.html | 6 +- docs/html/sentinel_8hpp.html | 10 +- docs/html/sentinel_8hpp_source.html | 19 +- docs/html/simple__string__builder_8hpp.html | 10 +- .../simple__string__builder_8hpp_source.html | 17 +- ...client_1_1bitfield__operation-members.html | 15 +- ...edis_1_1client_1_1bitfield__operation.html | 21 +- ...1_1client_1_1command__request-members.html | 6 +- ...__redis_1_1client_1_1command__request.html | 10 +- ...cpp__redis_1_1helpers_1_1back-members.html | 15 +- .../structcpp__redis_1_1helpers_1_1back.html | 19 +- ..._1helpers_1_1back_3_01_t_01_4-members.html | 15 +- ..._redis_1_1helpers_1_1back_3_01_t_01_4.html | 19 +- ...pp__redis_1_1helpers_1_1front-members.html | 15 +- .../structcpp__redis_1_1helpers_1_1front.html | 19 +- ...lpers_1_1is__different__types-members.html | 15 +- ...is_1_1helpers_1_1is__different__types.html | 19 +- ...different__types_3_01_t1_01_4-members.html | 15 +- ..._1_1is__different__types_3_01_t1_01_4.html | 19 +- ...1helpers_1_1is__type__present-members.html | 15 +- ...redis_1_1helpers_1_1is__type__present.html | 19 +- ...present_3_01_t1_00_01_t2_01_4-members.html | 15 +- ...__type__present_3_01_t1_00_01_t2_01_4.html | 19 +- ...lient__iface_1_1read__request-members.html | 15 +- ..._1tcp__client__iface_1_1read__request.html | 19 +- ...client__iface_1_1read__result-members.html | 15 +- ...1_1tcp__client__iface_1_1read__result.html | 19 +- ...ient__iface_1_1write__request-members.html | 15 +- ...1tcp__client__iface_1_1write__request.html | 19 +- ...lient__iface_1_1write__result-members.html | 15 +- ..._1tcp__client__iface_1_1write__result.html | 19 +- ...ubscriber_1_1callback__holder-members.html | 8 +- ...dis_1_1subscriber_1_1callback__holder.html | 16 +- docs/html/subscriber_8hpp.html | 10 +- docs/html/subscriber_8hpp_source.html | 53 +- docs/html/tcp__client_8hpp.html | 12 +- docs/html/tcp__client_8hpp_source.html | 17 +- docs/html/tcp__client__iface_8hpp.html | 10 +- docs/html/tcp__client__iface_8hpp_source.html | 17 +- docs/html/variadic__template_8hpp.html | 10 +- docs/html/variadic__template_8hpp_source.html | 19 +- docs/latex/annotated.tex | 60 +- ...p__redis_1_1builders_1_1array__builder.tex | 24 +- ...p__redis_1_1builders_1_1builder__iface.tex | 16 +- ...s_1_1builders_1_1bulk__string__builder.tex | 28 +- ...p__redis_1_1builders_1_1error__builder.tex | 26 +- ..._redis_1_1builders_1_1integer__builder.tex | 26 +- ...p__redis_1_1builders_1_1reply__builder.tex | 32 +- ...1_1builders_1_1simple__string__builder.tex | 26 +- docs/latex/classcpp__redis_1_1client.tex | 1520 +-- docs/latex/classcpp__redis_1_1logger.tex | 28 +- .../classcpp__redis_1_1logger__iface.tex | 26 +- ..._redis_1_1network_1_1redis__connection.tex | 46 +- ...sscpp__redis_1_1network_1_1tcp__client.tex | 38 +- ...redis_1_1network_1_1tcp__client__iface.tex | 58 +- .../latex/classcpp__redis_1_1redis__error.tex | 4 +- docs/latex/classcpp__redis_1_1reply.tex | 86 +- docs/latex/classcpp__redis_1_1sentinel.tex | 116 +- ...pp__redis_1_1sentinel_1_1sentinel__def.tex | 12 +- docs/latex/classcpp__redis_1_1subscriber.tex | 201 +- docs/latex/doxygen.sty | 6 +- docs/latex/refman.tex | 39 +- ...redis_1_1client_1_1bitfield__operation.tex | 38 +- .../structcpp__redis_1_1helpers_1_1back.tex | 4 +- ...__redis_1_1helpers_1_1back_3_01_t_01_4.tex | 4 +- .../structcpp__redis_1_1helpers_1_1front.tex | 4 +- ...dis_1_1helpers_1_1is__different__types.tex | 8 +- ...s_1_1is__different__types_3_01_t1_01_4.tex | 4 +- ..._redis_1_1helpers_1_1is__type__present.tex | 6 +- ...s__type__present_3_01_t1_00_01_t2_01_4.tex | 4 +- ...1_1tcp__client__iface_1_1read__request.tex | 6 +- ..._1_1tcp__client__iface_1_1read__result.tex | 4 +- ..._1tcp__client__iface_1_1write__request.tex | 6 +- ...1_1tcp__client__iface_1_1write__result.tex | 4 +- examples/CMakeLists.txt | 3 + examples/cpp_redis_consumer.cpp | 100 + html/bc_s.png | Bin 0 -> 676 bytes html/bdwn.png | Bin 0 -> 147 bytes html/closed.png | Bin 0 -> 132 bytes html/doc.png | Bin 0 -> 746 bytes html/doxygen.css | 1596 +++ html/doxygen.png | Bin 0 -> 3779 bytes html/dynsections.js | 120 + html/folderclosed.png | Bin 0 -> 616 bytes html/folderopen.png | Bin 0 -> 597 bytes html/index.html | 76 + html/jquery.js | 115 + html/md_CHANGELOG.html | 364 + html/md_CONTRIBUTING.html | 95 + html/md_README.html | 103 + html/menu.js | 50 + html/menudata.js | 26 + html/nav_f.png | Bin 0 -> 153 bytes html/nav_g.png | Bin 0 -> 95 bytes html/nav_h.png | Bin 0 -> 98 bytes html/open.png | Bin 0 -> 123 bytes html/pages.html | 83 + html/search/all_0.html | 30 + html/search/all_0.js | 5 + html/search/all_1.html | 30 + html/search/all_1.js | 4 + html/search/close.png | Bin 0 -> 273 bytes html/search/mag_sel.png | Bin 0 -> 563 bytes html/search/nomatches.html | 12 + html/search/pages_0.html | 30 + html/search/pages_0.js | 5 + html/search/pages_1.html | 30 + html/search/pages_1.js | 4 + html/search/search.css | 271 + html/search/search.js | 814 ++ html/search/search_l.png | Bin 0 -> 604 bytes html/search/search_m.png | Bin 0 -> 158 bytes html/search/search_r.png | Bin 0 -> 612 bytes html/search/searchdata.js | 18 + html/splitbar.png | Bin 0 -> 314 bytes html/sync_off.png | Bin 0 -> 853 bytes html/sync_on.png | Bin 0 -> 845 bytes html/tab_a.png | Bin 0 -> 142 bytes html/tab_b.png | Bin 0 -> 169 bytes html/tab_h.png | Bin 0 -> 177 bytes html/tab_s.png | Bin 0 -> 184 bytes html/tabs.css | 1 + includes/cpp_redis/core/client.hpp | 3041 +++--- includes/cpp_redis/core/consumer.hpp | 451 + includes/cpp_redis/core/dispatch_queue.hpp | 72 + includes/cpp_redis/core/reply.hpp | 398 +- includes/cpp_redis/core/subscriber.hpp | 804 +- includes/cpp_redis/cpp_redis | 1 + includes/cpp_redis/helpers/generate_rand.hpp | 42 + .../cpp_redis/network/redis_connection.hpp | 277 +- latex/doxygen.sty | 503 + latex/md_CHANGELOG.tex | 419 + latex/md_CONTRIBUTING.tex | 66 + latex/md_README.tex | 78 + latex/refman.tex | 163 + sources/core/client.cpp | 8535 +++++++++-------- sources/core/consumer.cpp | 491 + sources/core/dispatch_queue.cpp | 102 + sources/core/reply.cpp | 78 +- sources/core/sentinel.cpp | 2 +- sources/core/subscriber.cpp | 32 +- tests/sources/main.cpp | 32 +- 410 files changed, 18554 insertions(+), 10134 deletions(-) create mode 100644 Doxyfile create mode 100644 docs/_config.yml create mode 100644 docs/html/functions_func_x.html create mode 100644 docs/html/functions_x.html create mode 100644 examples/cpp_redis_consumer.cpp create mode 100644 html/bc_s.png create mode 100644 html/bdwn.png create mode 100644 html/closed.png create mode 100644 html/doc.png create mode 100644 html/doxygen.css create mode 100644 html/doxygen.png create mode 100644 html/dynsections.js create mode 100644 html/folderclosed.png create mode 100644 html/folderopen.png create mode 100644 html/index.html create mode 100644 html/jquery.js create mode 100644 html/md_CHANGELOG.html create mode 100644 html/md_CONTRIBUTING.html create mode 100644 html/md_README.html create mode 100644 html/menu.js create mode 100644 html/menudata.js create mode 100644 html/nav_f.png create mode 100644 html/nav_g.png create mode 100644 html/nav_h.png create mode 100644 html/open.png create mode 100644 html/pages.html create mode 100644 html/search/all_0.html create mode 100644 html/search/all_0.js create mode 100644 html/search/all_1.html create mode 100644 html/search/all_1.js create mode 100644 html/search/close.png create mode 100644 html/search/mag_sel.png create mode 100644 html/search/nomatches.html create mode 100644 html/search/pages_0.html create mode 100644 html/search/pages_0.js create mode 100644 html/search/pages_1.html create mode 100644 html/search/pages_1.js create mode 100644 html/search/search.css create mode 100644 html/search/search.js create mode 100644 html/search/search_l.png create mode 100644 html/search/search_m.png create mode 100644 html/search/search_r.png create mode 100644 html/search/searchdata.js create mode 100644 html/splitbar.png create mode 100644 html/sync_off.png create mode 100644 html/sync_on.png create mode 100644 html/tab_a.png create mode 100644 html/tab_b.png create mode 100644 html/tab_h.png create mode 100644 html/tab_s.png create mode 100644 html/tabs.css create mode 100644 includes/cpp_redis/core/consumer.hpp create mode 100644 includes/cpp_redis/core/dispatch_queue.hpp create mode 100644 includes/cpp_redis/helpers/generate_rand.hpp create mode 100644 latex/doxygen.sty create mode 100644 latex/md_CHANGELOG.tex create mode 100644 latex/md_CONTRIBUTING.tex create mode 100644 latex/md_README.tex create mode 100644 latex/refman.tex create mode 100644 sources/core/consumer.cpp create mode 100644 sources/core/dispatch_queue.cpp diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 00000000..22ce2248 --- /dev/null +++ b/Doxyfile @@ -0,0 +1,281 @@ +# Doxyfile 1.7.4-20110606 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = +PROJECT_NUMBER = +PROJECT_BRIEF = +PROJECT_LOGO = +OUTPUT_DIRECTORY = docs +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = YES +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_OUTPUT_VHDL = NO +EXTENSION_MAPPING = +BUILTIN_STL_SUPPORT = NO +CPP_CLI_SUPPORT = NO +SIP_SUPPORT = NO +IDL_PROPERTY_SUPPORT = YES +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +INLINE_GROUPED_CLASSES = NO +TYPEDEF_HIDES_STRUCT = NO +SYMBOL_CACHE_SIZE = 0 +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = NO +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +FORCE_LOCAL_INCLUDES = NO +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_MEMBERS_CTORS_1ST = NO +SORT_GROUP_NAMES = NO +SORT_BY_SCOPE_NAME = NO +STRICT_PROTO_MATCHING = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +SHOW_FILES = YES +SHOW_NAMESPACES = YES +FILE_VERSION_FILTER = +LAYOUT_FILE = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ./docs/mainpage.dox +INPUT_ENCODING = UTF-8 +FILE_PATTERNS = +RECURSIVE = NO +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +FILTER_SOURCE_PATTERNS = +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_EXTRA_FILES = +HTML_COLORSTYLE_HUE = 220 +HTML_COLORSTYLE_SAT = 100 +HTML_COLORSTYLE_GAMMA = 80 +HTML_TIMESTAMP = YES +HTML_ALIGN_MEMBERS = YES +HTML_DYNAMIC_SECTIONS = NO +GENERATE_DOCSET = NO +DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_BUNDLE_ID = org.doxygen.Project +DOCSET_PUBLISHER_ID = org.doxygen.Publisher +DOCSET_PUBLISHER_NAME = Publisher +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +CHM_INDEX_ENCODING = +BINARY_TOC = NO +TOC_EXPAND = NO +GENERATE_QHP = NO +QCH_FILE = +QHP_NAMESPACE = org.doxygen.Project +QHP_VIRTUAL_FOLDER = doc +QHP_CUST_FILTER_NAME = +QHP_CUST_FILTER_ATTRS = +QHP_SECT_FILTER_ATTRS = +QHG_LOCATION = +GENERATE_ECLIPSEHELP = NO +ECLIPSE_DOC_ID = org.doxygen.Project +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +USE_INLINE_TREES = NO +TREEVIEW_WIDTH = 250 +EXT_LINKS_IN_WINDOW = NO +FORMULA_FONTSIZE = 10 +FORMULA_TRANSPARENT = YES +USE_MATHJAX = NO +MATHJAX_RELPATH = http://www.mathjax.org/mathjax +SEARCHENGINE = YES +SERVER_BASED_SEARCH = NO +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4 +EXTRA_PACKAGES = +LATEX_HEADER = +LATEX_FOOTER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +LATEX_SOURCE_CODE = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +MSCGEN_PATH = +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +DOT_NUM_THREADS = 0 +DOT_FONTNAME = Helvetica +DOT_FONTSIZE = 10 +DOT_FONTPATH = +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +INTERACTIVE_SVG = NO +DOT_PATH = +DOTFILE_DIRS = +MSCFILE_DIRS = +DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES \ No newline at end of file diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 00000000..c4192631 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman \ No newline at end of file diff --git a/docs/html/annotated.html b/docs/html/annotated.html index c839d3bc..3143874c 100644 --- a/docs/html/annotated.html +++ b/docs/html/annotated.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class List @@ -32,18 +32,21 @@ - + +/* @license-end */ @@ -56,7 +59,7 @@
@@ -108,7 +111,7 @@ diff --git a/docs/html/array__builder_8hpp.html b/docs/html/array__builder_8hpp.html index bf9bcb34..df79fbb6 100644 --- a/docs/html/array__builder_8hpp.html +++ b/docs/html/array__builder_8hpp.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/builders/array_builder.hpp File Reference @@ -55,7 +55,7 @@
@@ -78,12 +78,12 @@

Go to the source code of this file.

-

+

Classes

class  cpp_redis::builders::array_builder
 
- diff --git a/docs/html/array__builder_8hpp_source.html b/docs/html/array__builder_8hpp_source.html index 11696323..584d1337 100644 --- a/docs/html/array__builder_8hpp_source.html +++ b/docs/html/array__builder_8hpp_source.html @@ -3,8 +3,8 @@ - - + +cpp_redis: includes/cpp_redis/builders/array_builder.hpp Source File @@ -32,18 +32,21 @@

+

Namespaces

 cpp_redis
 
- + +/* @license-end */
@@ -69,7 +72,7 @@
array_builder.hpp
-
1 // The MIT License (MIT)
2 //
3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in all
13 // copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 // SOFTWARE.
22 
23 #pragma once
24 
25 #include <cpp_redis/builders/builder_iface.hpp>
26 #include <cpp_redis/builders/integer_builder.hpp>
27 #include <cpp_redis/core/reply.hpp>
28 
29 namespace cpp_redis {
30 
31 namespace builders {
32 
36 class array_builder : public builder_iface {
37 public:
39  array_builder(void);
41  ~array_builder(void) = default;
42 
44  array_builder(const array_builder&) = delete;
46  array_builder& operator=(const array_builder&) = delete;
47 
48 public:
56  builder_iface& operator<<(std::string& data);
57 
61  bool reply_ready(void) const;
62 
66  reply get_reply(void) const;
67 
68 private:
76  bool fetch_array_size(std::string& buffer);
77 
85  bool build_row(std::string& buffer);
86 
87 private:
91  integer_builder m_int_builder;
92 
96  uint64_t m_array_size;
97 
101  std::unique_ptr<builder_iface> m_current_builder;
102 
106  bool m_reply_ready;
107 
111  reply m_reply;
112 };
113 
114 } // namespace builders
115 
116 } // namespace cpp_redis
+
1 // The MIT License (MIT)
2 //
3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in all
13 // copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 // SOFTWARE.
22 
23 #pragma once
24 
25 #include <cpp_redis/builders/builder_iface.hpp>
26 #include <cpp_redis/builders/integer_builder.hpp>
27 #include <cpp_redis/core/reply.hpp>
28 
29 namespace cpp_redis {
30 
31 namespace builders {
32 
36 class array_builder : public builder_iface {
37 public:
39  array_builder(void);
41  ~array_builder(void) = default;
42 
44  array_builder(const array_builder&) = delete;
46  array_builder& operator=(const array_builder&) = delete;
47 
48 public:
56  builder_iface& operator<<(std::string& data);
57 
61  bool reply_ready(void) const;
62 
66  reply get_reply(void) const;
67 
68 private:
76  bool fetch_array_size(std::string& buffer);
77 
85  bool build_row(std::string& buffer);
86 
87 private:
91  integer_builder m_int_builder;
92 
96  uint64_t m_array_size;
97 
101  std::unique_ptr<builder_iface> m_current_builder;
102 
106  bool m_reply_ready;
107 
111  reply m_reply;
112 };
113 
114 } // namespace builders
115 
116 } // namespace cpp_redis
array_builder & operator=(const array_builder &)=delete
assignment operator
Definition: reply.hpp:37
@@ -85,7 +88,7 @@ diff --git a/docs/html/builder__iface_8hpp.html b/docs/html/builder__iface_8hpp.html index c1f8bf04..a89ebe49 100644 --- a/docs/html/builder__iface_8hpp.html +++ b/docs/html/builder__iface_8hpp.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/builders/builder_iface.hpp File Reference @@ -55,7 +55,7 @@
@@ -78,12 +78,12 @@

Go to the source code of this file.

-

+

Classes

class  cpp_redis::builders::builder_iface
 
- diff --git a/docs/html/builder__iface_8hpp_source.html b/docs/html/builder__iface_8hpp_source.html index 82b2a199..0677d0be 100644 --- a/docs/html/builder__iface_8hpp_source.html +++ b/docs/html/builder__iface_8hpp_source.html @@ -3,8 +3,8 @@ - - + +cpp_redis: includes/cpp_redis/builders/builder_iface.hpp Source File @@ -32,18 +32,21 @@

+

Namespaces

 cpp_redis
 
- + +/* @license-end */
@@ -69,7 +72,7 @@
builder_iface.hpp
-
1 // The MIT License (MIT)
2 //
3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in all
13 // copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 // SOFTWARE.
22 
23 #pragma once
24 
25 #include <memory>
26 #include <string>
27 
28 #include <cpp_redis/core/reply.hpp>
29 
30 namespace cpp_redis {
31 
32 namespace builders {
33 
38 public:
39  virtual ~builder_iface(void) = default;
40 
48  virtual builder_iface& operator<<(std::string& data) = 0;
49 
53  virtual bool reply_ready(void) const = 0;
54 
58  virtual reply get_reply(void) const = 0;
59 };
60 
61 } // namespace builders
62 
63 } // namespace cpp_redis
virtual builder_iface & operator<<(std::string &data)=0
+
1 // The MIT License (MIT)
2 //
3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in all
13 // copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 // SOFTWARE.
22 
23 #pragma once
24 
25 #include <memory>
26 #include <string>
27 
28 #include <cpp_redis/core/reply.hpp>
29 
30 namespace cpp_redis {
31 
32 namespace builders {
33 
38 public:
39  virtual ~builder_iface(void) = default;
40 
48  virtual builder_iface& operator<<(std::string& data) = 0;
49 
53  virtual bool reply_ready(void) const = 0;
54 
58  virtual reply get_reply(void) const = 0;
59 };
60 
61 } // namespace builders
62 
63 } // namespace cpp_redis
virtual builder_iface & operator<<(std::string &data)=0
Definition: reply.hpp:37
Definition: builder_iface.hpp:37
virtual reply get_reply(void) const =0
@@ -80,7 +83,7 @@ diff --git a/docs/html/builders__factory_8hpp.html b/docs/html/builders__factory_8hpp.html index db86a2b9..e16f3e17 100644 --- a/docs/html/builders__factory_8hpp.html +++ b/docs/html/builders__factory_8hpp.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/builders/builders_factory.hpp File Reference @@ -55,7 +55,7 @@
@@ -77,14 +77,14 @@

Go to the source code of this file.

-

+

Namespaces

 cpp_redis
 
 cpp_redis::builders
 
- diff --git a/docs/html/builders__factory_8hpp_source.html b/docs/html/builders__factory_8hpp_source.html index 67edeea9..53c918b6 100644 --- a/docs/html/builders__factory_8hpp_source.html +++ b/docs/html/builders__factory_8hpp_source.html @@ -3,8 +3,8 @@ - - + +cpp_redis: includes/cpp_redis/builders/builders_factory.hpp Source File @@ -32,18 +32,21 @@

+

Functions

std::unique_ptr< builder_iface > cpp_redis::builders::create_builder (char id)
 
- + +/* @license-end */
@@ -69,13 +72,13 @@
builders_factory.hpp
-
1 // The MIT License (MIT)
2 //
3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in all
13 // copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 // SOFTWARE.
22 
23 #pragma once
24 
25 #include <memory>
26 
27 #include <cpp_redis/builders/builder_iface.hpp>
28 
29 namespace cpp_redis {
30 
31 namespace builders {
32 
44 std::unique_ptr<builder_iface> create_builder(char id);
45 
46 } // namespace builders
47 
48 } // namespace cpp_redis
Definition: array_builder.hpp:29
+
1 // The MIT License (MIT)
2 //
3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in all
13 // copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 // SOFTWARE.
22 
23 #pragma once
24 
25 #include <memory>
26 
27 #include <cpp_redis/builders/builder_iface.hpp>
28 
29 namespace cpp_redis {
30 
31 namespace builders {
32 
44 std::unique_ptr<builder_iface> create_builder(char id);
45 
46 } // namespace builders
47 
48 } // namespace cpp_redis
Definition: array_builder.hpp:29
diff --git a/docs/html/bulk__string__builder_8hpp.html b/docs/html/bulk__string__builder_8hpp.html index d1ffdd22..cd14a41a 100644 --- a/docs/html/bulk__string__builder_8hpp.html +++ b/docs/html/bulk__string__builder_8hpp.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/builders/bulk_string_builder.hpp File Reference @@ -55,7 +55,7 @@
@@ -78,12 +78,12 @@

Go to the source code of this file.

-

+

Classes

class  cpp_redis::builders::bulk_string_builder
 
- diff --git a/docs/html/bulk__string__builder_8hpp_source.html b/docs/html/bulk__string__builder_8hpp_source.html index e497d2cf..d88f6f40 100644 --- a/docs/html/bulk__string__builder_8hpp_source.html +++ b/docs/html/bulk__string__builder_8hpp_source.html @@ -3,8 +3,8 @@ - - + +cpp_redis: includes/cpp_redis/builders/bulk_string_builder.hpp Source File @@ -32,18 +32,21 @@

+

Namespaces

 cpp_redis
 
- + +/* @license-end */
@@ -69,7 +72,7 @@
bulk_string_builder.hpp
-
1 // The MIT License (MIT)
2 //
3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in all
13 // copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 // SOFTWARE.
22 
23 #pragma once
24 
25 #include <cpp_redis/builders/builder_iface.hpp>
26 #include <cpp_redis/builders/integer_builder.hpp>
27 #include <cpp_redis/core/reply.hpp>
28 
29 namespace cpp_redis {
30 
31 namespace builders {
32 
37 public:
39  bulk_string_builder(void);
41  ~bulk_string_builder(void) = default;
42 
47 
48 public:
56  builder_iface& operator<<(std::string& data);
57 
61  bool reply_ready(void) const;
62 
66  reply get_reply(void) const;
67 
71  const std::string& get_bulk_string(void) const;
72 
76  bool is_null(void) const;
77 
78 private:
79  void build_reply(void);
80  bool fetch_size(std::string& str);
81  void fetch_str(std::string& str);
82 
83 private:
87  integer_builder m_int_builder;
88 
92  int m_str_size;
93 
97  std::string m_str;
98 
102  bool m_is_null;
103 
107  bool m_reply_ready;
108 
112  reply m_reply;
113 };
114 
115 } // namespace builders
116 
117 } // namespace cpp_redis
builder_iface & operator<<(std::string &data)
+
1 // The MIT License (MIT)
2 //
3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in all
13 // copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 // SOFTWARE.
22 
23 #pragma once
24 
25 #include <cpp_redis/builders/builder_iface.hpp>
26 #include <cpp_redis/builders/integer_builder.hpp>
27 #include <cpp_redis/core/reply.hpp>
28 
29 namespace cpp_redis {
30 
31 namespace builders {
32 
37 public:
39  bulk_string_builder(void);
41  ~bulk_string_builder(void) = default;
42 
47 
48 public:
56  builder_iface& operator<<(std::string& data);
57 
61  bool reply_ready(void) const;
62 
66  reply get_reply(void) const;
67 
71  const std::string& get_bulk_string(void) const;
72 
76  bool is_null(void) const;
77 
78 private:
79  void build_reply(void);
80  bool fetch_size(std::string& str);
81  void fetch_str(std::string& str);
82 
83 private:
87  integer_builder m_int_builder;
88 
92  int m_str_size;
93 
97  std::string m_str;
98 
102  bool m_is_null;
103 
107  bool m_reply_ready;
108 
112  reply m_reply;
113 };
114 
115 } // namespace builders
116 
117 } // namespace cpp_redis
builder_iface & operator<<(std::string &data)
bulk_string_builder & operator=(const bulk_string_builder &)=delete
assignment operator
Definition: reply.hpp:37
@@ -87,7 +90,7 @@ diff --git a/docs/html/classcpp__redis_1_1builders_1_1array__builder-members.html b/docs/html/classcpp__redis_1_1builders_1_1array__builder-members.html index 114a1195..318630c4 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1array__builder-members.html +++ b/docs/html/classcpp__redis_1_1builders_1_1array__builder-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@
- + +/* @license-end */
@@ -85,7 +88,7 @@ diff --git a/docs/html/classcpp__redis_1_1builders_1_1array__builder.html b/docs/html/classcpp__redis_1_1builders_1_1array__builder.html index 137777fb..1c224f19 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1array__builder.html +++ b/docs/html/classcpp__redis_1_1builders_1_1array__builder.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::builders::array_builder Class Reference @@ -32,18 +32,21 @@
- + +/* @license-end */
@@ -79,12 +82,12 @@
- + cpp_redis::builders::builder_iface
- @@ -109,7 +112,7 @@

+

Public Member Functions

 array_builder (void)
reply get_reply (void) const
 
-

Detailed Description

+

Detailed Description

builder to build redis array replies

Member Function Documentation

@@ -142,7 +145,7 @@

-

◆ operator<<()

+

◆ operator<<()

@@ -214,7 +217,7 @@

diff --git a/docs/html/classcpp__redis_1_1builders_1_1builder__iface-members.html b/docs/html/classcpp__redis_1_1builders_1_1builder__iface-members.html index bdd049da..e5478908 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1builder__iface-members.html +++ b/docs/html/classcpp__redis_1_1builders_1_1builder__iface-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

- + +/* @license-end */
@@ -81,7 +84,7 @@ diff --git a/docs/html/classcpp__redis_1_1builders_1_1builder__iface.html b/docs/html/classcpp__redis_1_1builders_1_1builder__iface.html index 16f096cb..65fd89f3 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1builder__iface.html +++ b/docs/html/classcpp__redis_1_1builders_1_1builder__iface.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::builders::builder_iface Class Reference @@ -32,18 +32,21 @@
- + +/* @license-end */
@@ -79,7 +82,7 @@
- + cpp_redis::builders::array_builder cpp_redis::builders::bulk_string_builder cpp_redis::builders::error_builder @@ -88,7 +91,7 @@
- @@ -97,7 +100,7 @@

+

Public Member Functions

virtual builder_ifaceoperator<< (std::string &data)=0
 
virtual reply get_reply (void) const =0
 
-

Detailed Description

+

Detailed Description

interface inherited by all builders

Member Function Documentation

@@ -130,7 +133,7 @@

-

◆ operator<<()

+

◆ operator<<()

@@ -202,7 +205,7 @@

diff --git a/docs/html/classcpp__redis_1_1builders_1_1bulk__string__builder-members.html b/docs/html/classcpp__redis_1_1builders_1_1bulk__string__builder-members.html index eb037be2..3b8e7faf 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1bulk__string__builder-members.html +++ b/docs/html/classcpp__redis_1_1builders_1_1bulk__string__builder-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

- + +/* @license-end */
@@ -87,7 +90,7 @@ diff --git a/docs/html/classcpp__redis_1_1builders_1_1bulk__string__builder.html b/docs/html/classcpp__redis_1_1builders_1_1bulk__string__builder.html index 4d112051..a1138b42 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1bulk__string__builder.html +++ b/docs/html/classcpp__redis_1_1builders_1_1bulk__string__builder.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::builders::bulk_string_builder Class Reference @@ -32,18 +32,21 @@
- + +/* @license-end */
@@ -79,12 +82,12 @@
- + cpp_redis::builders::builder_iface
- @@ -113,7 +116,7 @@

+

Public Member Functions

 bulk_string_builder (void)
bool is_null (void) const
 
-

Detailed Description

+

Detailed Description

builder to build redis bulk string replies

Member Function Documentation

@@ -184,7 +187,7 @@

-

◆ operator<<()

+

◆ operator<<()

@@ -256,7 +259,7 @@

diff --git a/docs/html/classcpp__redis_1_1builders_1_1error__builder-members.html b/docs/html/classcpp__redis_1_1builders_1_1error__builder-members.html index 5d98374e..12234d08 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1error__builder-members.html +++ b/docs/html/classcpp__redis_1_1builders_1_1error__builder-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

- + +/* @license-end */
@@ -86,7 +89,7 @@ diff --git a/docs/html/classcpp__redis_1_1builders_1_1error__builder.html b/docs/html/classcpp__redis_1_1builders_1_1error__builder.html index 2a2a4004..298970f0 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1error__builder.html +++ b/docs/html/classcpp__redis_1_1builders_1_1error__builder.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::builders::error_builder Class Reference @@ -32,18 +32,21 @@
- + +/* @license-end */
@@ -79,12 +82,12 @@
- + cpp_redis::builders::builder_iface
- @@ -111,7 +114,7 @@

+

Public Member Functions

 error_builder (void)=default
const std::string & get_error (void) const
 
-

Detailed Description

+

Detailed Description

builder to build redis error replies

Member Function Documentation

@@ -163,7 +166,7 @@

-

◆ operator<<()

+

◆ operator<<()

@@ -235,7 +238,7 @@

diff --git a/docs/html/classcpp__redis_1_1builders_1_1integer__builder-members.html b/docs/html/classcpp__redis_1_1builders_1_1integer__builder-members.html index d2f2ca0d..6eae5a20 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1integer__builder-members.html +++ b/docs/html/classcpp__redis_1_1builders_1_1integer__builder-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

- + +/* @license-end */
@@ -86,7 +89,7 @@ diff --git a/docs/html/classcpp__redis_1_1builders_1_1integer__builder.html b/docs/html/classcpp__redis_1_1builders_1_1integer__builder.html index 3a6b1e1f..03337479 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1integer__builder.html +++ b/docs/html/classcpp__redis_1_1builders_1_1integer__builder.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::builders::integer_builder Class Reference @@ -32,18 +32,21 @@
- + +/* @license-end */
@@ -79,12 +82,12 @@
- + cpp_redis::builders::builder_iface
- @@ -111,7 +114,7 @@

+

Public Member Functions

 integer_builder (void)
int64_t get_integer (void) const
 
-

Detailed Description

+

Detailed Description

builder to build redis integer replies

Member Function Documentation

@@ -163,7 +166,7 @@

-

◆ operator<<()

+

◆ operator<<()

@@ -235,7 +238,7 @@

diff --git a/docs/html/classcpp__redis_1_1builders_1_1reply__builder-members.html b/docs/html/classcpp__redis_1_1builders_1_1reply__builder-members.html index 9f9615b2..4d2e4cc5 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1reply__builder-members.html +++ b/docs/html/classcpp__redis_1_1builders_1_1reply__builder-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

- + +/* @license-end */ diff --git a/docs/html/classcpp__redis_1_1builders_1_1reply__builder.html b/docs/html/classcpp__redis_1_1builders_1_1reply__builder.html index a96dca7a..78906007 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1reply__builder.html +++ b/docs/html/classcpp__redis_1_1builders_1_1reply__builder.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::builders::reply_builder Class Reference @@ -32,18 +32,21 @@
- + +/* @license-end */
@@ -75,7 +78,7 @@

#include <reply_builder.hpp>

- @@ -103,8 +106,10 @@ + +

+

Public Member Functions

 reply_builder (void)
 
bool reply_available (void) const
 
void reset (void)
 
-

Detailed Description

+

Detailed Description

class coordinating the several builders and the builder factory to build all the replies returned by redis server

Member Function Documentation

@@ -127,7 +132,7 @@

-

◆ operator<<()

+

◆ operator<<()

@@ -153,7 +158,7 @@

-

◆ operator>>()

+

◆ operator>>()

+ +

◆ reset()

+ +
+
+ + + + + + + + +
void cpp_redis::builders::reply_builder::reset (void )
+
+

reset the reply builder to its initial state (clear internal buffer and stages)

+

The documentation for this class was generated from the following file:
    @@ -223,7 +247,7 @@

    diff --git a/docs/html/classcpp__redis_1_1builders_1_1simple__string__builder-members.html b/docs/html/classcpp__redis_1_1builders_1_1simple__string__builder-members.html index 9e4beda4..996d45d8 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1simple__string__builder-members.html +++ b/docs/html/classcpp__redis_1_1builders_1_1simple__string__builder-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

- + +/* @license-end */
@@ -86,7 +89,7 @@ diff --git a/docs/html/classcpp__redis_1_1builders_1_1simple__string__builder.html b/docs/html/classcpp__redis_1_1builders_1_1simple__string__builder.html index 2a7496d5..6bb47efb 100644 --- a/docs/html/classcpp__redis_1_1builders_1_1simple__string__builder.html +++ b/docs/html/classcpp__redis_1_1builders_1_1simple__string__builder.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::builders::simple_string_builder Class Reference @@ -32,18 +32,21 @@
- + +/* @license-end */
@@ -79,12 +82,12 @@
- + cpp_redis::builders::builder_iface
- @@ -111,7 +114,7 @@

+

Public Member Functions

 simple_string_builder (void)
const std::string & get_simple_string (void) const
 
-

Detailed Description

+

Detailed Description

builder to build redis simplestring replies

Member Function Documentation

@@ -163,7 +166,7 @@

-

◆ operator<<()

+

◆ operator<<()

@@ -235,7 +238,7 @@

diff --git a/docs/html/classcpp__redis_1_1client-members.html b/docs/html/classcpp__redis_1_1client-members.html index 488e03ee..7a2ded3b 100644 --- a/docs/html/classcpp__redis_1_1client-members.html +++ b/docs/html/classcpp__redis_1_1client-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

- + +/* @license-end */
@@ -73,7 +76,7 @@

This is the complete list of members for cpp_redis::client, including all inherited members.

- + @@ -89,7 +92,7 @@ - + @@ -105,9 +108,9 @@ - - - + + + @@ -117,16 +120,16 @@ - + - - - + + + @@ -176,7 +179,7 @@ - + @@ -186,9 +189,9 @@ - - - + + + @@ -224,7 +227,7 @@ - + @@ -251,8 +254,8 @@ - - + + @@ -304,8 +307,8 @@ - - + + @@ -348,7 +351,7 @@ - + @@ -386,7 +389,7 @@ - + @@ -458,9 +461,9 @@ - + - + @@ -510,7 +513,7 @@ - + @@ -524,6 +527,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -540,8 +569,8 @@ - - + + @@ -672,15 +701,15 @@ - - - + + +
add_sentinel(const std::string &host, std::size_t port, std::uint32_t timeout_msecs=0)cpp_redis::client
aggregate_method enum namecpp_redis::client
aggregate_method enum m_namecpp_redis::client
aggregate_method_to_string(aggregate_method method) constcpp_redis::client
append(const std::string &key, const std::string &value, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
append(const std::string &key, const std::string &value) (defined in cpp_redis::client)cpp_redis::client
bitcount(const std::string &key, int start, int end) (defined in cpp_redis::client)cpp_redis::client
bitfield(const std::string &key, const std::vector< bitfield_operation > &operations, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
bitfield(const std::string &key, const std::vector< bitfield_operation > &operations) (defined in cpp_redis::client)cpp_redis::client
bitfield_operation_type enum namecpp_redis::client
bitfield_operation_type enum m_namecpp_redis::client
bitfield_operation_type_to_string(bitfield_operation_type operation) constcpp_redis::client
bitop(const std::string &operation, const std::string &destkey, const std::vector< std::string > &keys, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
bitop(const std::string &operation, const std::string &destkey, const std::vector< std::string > &keys) (defined in cpp_redis::client)cpp_redis::client
brpop(const std::vector< std::string > &keys, int timeout) (defined in cpp_redis::client)cpp_redis::client
brpoplpush(const std::string &src, const std::string &dst, int timeout, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
brpoplpush(const std::string &src, const std::string &dst, int timeout) (defined in cpp_redis::client)cpp_redis::client
cancel_reconnect(void)cpp_redis::client
clear_sentinels(void)cpp_redis::client
client(void)cpp_redis::client
cancel_reconnect()cpp_redis::client
clear_sentinels()cpp_redis::client
client()cpp_redis::client
client(const std::shared_ptr< network::tcp_client_iface > &tcp_client)cpp_redis::clientexplicit
client(const client &)=deletecpp_redis::client
client_getname(const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
client_kill(const char *host, int port, const Ts &... args) (defined in cpp_redis::client)cpp_redis::clientinline
client_kill(const T &, const Ts &...) (defined in cpp_redis::client)cpp_redis::client
client_kill(const T &arg, const Ts &... args) (defined in cpp_redis::client)cpp_redis::clientinline
client_kill_future(const T, const Ts...)cpp_redis::client
client_kill_future(T, const Ts...)cpp_redis::client
client_list(const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
client_list() (defined in cpp_redis::client)cpp_redis::client
client_pause(int timeout, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
client_pause(int timeout) (defined in cpp_redis::client)cpp_redis::client
client_reply(const std::string &mode, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
client_reply(const std::string &mode) (defined in cpp_redis::client)cpp_redis::client
client_setname(const std::string &name, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
client_setname(const std::string &name) (defined in cpp_redis::client)cpp_redis::client
client_type enum namecpp_redis::client
client_setname(const std::string &m_name, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
client_setname(const std::string &m_name) (defined in cpp_redis::client)cpp_redis::client
client_type enum m_namecpp_redis::client
cluster_addslots(const std::vector< std::string > &p_slots, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
cluster_addslots(const std::vector< std::string > &p_slots) (defined in cpp_redis::client)cpp_redis::client
cluster_count_failure_reports(const std::string &node_id, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
command_getkeys() (defined in cpp_redis::client)cpp_redis::client
command_info(const std::vector< std::string > &command_name, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
command_info(const std::vector< std::string > &command_name) (defined in cpp_redis::client)cpp_redis::client
commit(void)cpp_redis::client
commit()cpp_redis::client
config_get(const std::string &param, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
config_get(const std::string &param) (defined in cpp_redis::client)cpp_redis::client
config_resetstat(const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
config_set(const std::string &param, const std::string &val, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
config_set(const std::string &param, const std::string &val) (defined in cpp_redis::client)cpp_redis::client
connect(const std::string &host="127.0.0.1", std::size_t port=6379, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)cpp_redis::client
connect(const std::string &name, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)cpp_redis::client
connect_callback_t typedefcpp_redis::client
connect_state enum namecpp_redis::client
connect(const std::string &m_name, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)cpp_redis::client
connect_callback_t typedefcpp_redis::client
connect_state enum m_namecpp_redis::client
dbsize(const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
dbsize() (defined in cpp_redis::client)cpp_redis::client
debug_object(const std::string &key, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
flushall() (defined in cpp_redis::client)cpp_redis::client
flushdb(const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
flushdb() (defined in cpp_redis::client)cpp_redis::client
geo_unit enum namecpp_redis::client
geo_unit enum m_namecpp_redis::client
geo_unit_to_string(geo_unit unit) constcpp_redis::client
geoadd(const std::string &key, const std::vector< std::tuple< std::string, std::string, std::string >> &long_lat_memb, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
geoadd(const std::string &key, const std::vector< std::tuple< std::string, std::string, std::string >> &long_lat_memb) (defined in cpp_redis::client)cpp_redis::client
georadiusbymember(const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord=false, bool with_dist=false, bool with_hash=false, bool asc_order=false, std::size_t count=0, const std::string &store_key="", const std::string &storedist_key="") (defined in cpp_redis::client)cpp_redis::client
get(const std::string &key, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
get(const std::string &key) (defined in cpp_redis::client)cpp_redis::client
get_sentinel(void) constcpp_redis::client
get_sentinel(void)cpp_redis::client
get_sentinel() constcpp_redis::client
get_sentinel()cpp_redis::client
getbit(const std::string &key, int offset, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
getbit(const std::string &key, int offset) (defined in cpp_redis::client)cpp_redis::client
getrange(const std::string &key, int start, int end, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
info(const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
info(const std::string &section, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
info(const std::string &section="default") (defined in cpp_redis::client)cpp_redis::client
is_connected(void) constcpp_redis::client
is_reconnecting(void) constcpp_redis::client
is_connected() constcpp_redis::client
is_reconnecting() constcpp_redis::client
keys(const std::string &pattern, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
keys(const std::string &pattern) (defined in cpp_redis::client)cpp_redis::client
lastsave(const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
object(const std::string &subcommand, const std::vector< std::string > &args, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
object(const std::string &subcommand, const std::vector< std::string > &args) (defined in cpp_redis::client)cpp_redis::client
operator=(const client &)=deletecpp_redis::client
overflow_type enum namecpp_redis::client
overflow_type enum m_namecpp_redis::client
overflow_type_to_string(overflow_type type) constcpp_redis::client
persist(const std::string &key, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
persist(const std::string &key) (defined in cpp_redis::client)cpp_redis::client
rename(const std::string &key, const std::string &newkey) (defined in cpp_redis::client)cpp_redis::client
renamenx(const std::string &key, const std::string &newkey, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
renamenx(const std::string &key, const std::string &newkey) (defined in cpp_redis::client)cpp_redis::client
reply_callback_t typedefcpp_redis::client
reply_callback_t typedefcpp_redis::client
restore(const std::string &key, int ttl, const std::string &serialized_value, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
restore(const std::string &key, int ttl, const std::string &serialized_value) (defined in cpp_redis::client)cpp_redis::client
restore(const std::string &key, int ttl, const std::string &serialized_value, const std::string &replace, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
sismember(const std::string &key, const std::string &member) (defined in cpp_redis::client)cpp_redis::client
slaveof(const std::string &host, int port, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
slaveof(const std::string &host, int port) (defined in cpp_redis::client)cpp_redis::client
slowlog(const std::string subcommand, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
slowlog(std::string subcommand, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
slowlog(const std::string &subcommand) (defined in cpp_redis::client)cpp_redis::client
slowlog(const std::string subcommand, const std::string &argument, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
slowlog(std::string subcommand, const std::string &argument, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
slowlog(const std::string &subcommand, const std::string &argument) (defined in cpp_redis::client)cpp_redis::client
smembers(const std::string &key, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
smembers(const std::string &key) (defined in cpp_redis::client)cpp_redis::client
sunionstore(const std::string &dst, const std::vector< std::string > &keys) (defined in cpp_redis::client)cpp_redis::client
sync(const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
sync() (defined in cpp_redis::client)cpp_redis::client
sync_commit(void)cpp_redis::client
sync_commit()cpp_redis::client
sync_commit(const std::chrono::duration< Rep, Period > &timeout)cpp_redis::clientinline
time(const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
time() (defined in cpp_redis::client)cpp_redis::client
wait(int numslaves, int timeout) (defined in cpp_redis::client)cpp_redis::client
watch(const std::vector< std::string > &keys, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
watch(const std::vector< std::string > &keys) (defined in cpp_redis::client)cpp_redis::client
xack(const std::string &key, const std::string &group, const std::vector< std::string > &id_members, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
xack(const std::string &key, const std::string &group, const std::vector< std::string > &id_members) (defined in cpp_redis::client)cpp_redis::client
xadd(const std::string &key, const std::string &id, const std::multimap< std::string, std::string > &field_members, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
xadd(const std::string &key, const std::string &id, const std::multimap< std::string, std::string > &field_members) (defined in cpp_redis::client)cpp_redis::client
xclaim(const std::string &key, const std::string &group, const std::string &consumer, int min_idle_time, const std::vector< std::string > &id_members, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
xclaim(const std::string &key, const std::string &group, const std::string &consumer, const int &min_idle_time, const std::vector< std::string > &id_members) (defined in cpp_redis::client)cpp_redis::client
xdel(const std::string &key, const std::vector< std::string > &id_members, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
xdel(const std::string &key, const std::vector< std::string > &id_members) (defined in cpp_redis::client)cpp_redis::client
xgroup_create(const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
xgroup_create(const std::string &key, const std::string &group_name, const std::string &id, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
xgroup_create(const std::string &key, const std::string &group_name, const std::string &id="$") (defined in cpp_redis::client)cpp_redis::client
xgroup_del_consumer(const std::string &key, const std::string &group_name, const std::string &consumer_name, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
xgroup_del_consumer(const std::string &key, const std::string &group_name, const std::string &consumer_name) (defined in cpp_redis::client)cpp_redis::client
xgroup_destroy(const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
xgroup_destroy(const std::string &key, const std::string &group_name) (defined in cpp_redis::client)cpp_redis::client
xgroup_set_id(const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
xgroup_set_id(const std::string &key, const std::string &group_name, const std::string &id, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
xgroup_set_id(const std::string &key, const std::string &group_name, const std::string &id="$") (defined in cpp_redis::client)cpp_redis::client
xinfo_consumers(const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback)cpp_redis::client
xinfo_consumers(const std::string &key, const std::string &group_name)cpp_redis::client
xinfo_groups(const std::string &key, const reply_callback_t &reply_callback)cpp_redis::client
xinfo_groups(const std::string &key)cpp_redis::client
xinfo_stream(const std::string &key, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
xinfo_stream(const std::string &key) (defined in cpp_redis::client)cpp_redis::client
xlen(const std::string &key, const reply_callback_t &reply_callback)cpp_redis::client
xlen(const std::string &key)cpp_redis::client
zadd(const std::string &key, const std::vector< std::string > &options, const std::multimap< std::string, std::string > &score_members, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
zadd(const std::string &key, const std::vector< std::string > &options, const std::multimap< std::string, std::string > &score_members) (defined in cpp_redis::client)cpp_redis::client
zcard(const std::string &key, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
zincrby(const std::string &key, double incr, const std::string &member) (defined in cpp_redis::client)cpp_redis::client
zincrby(const std::string &key, const std::string &incr, const std::string &member, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
zincrby(const std::string &key, const std::string &incr, const std::string &member) (defined in cpp_redis::client)cpp_redis::client
zinterstore(const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, const std::vector< std::size_t > weights, aggregate_method method, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
zinterstore(const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, const std::vector< std::size_t > weights, aggregate_method method) (defined in cpp_redis::client)cpp_redis::client
zinterstore(const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, std::vector< std::size_t > weights, aggregate_method method, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
zinterstore(const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, std::vector< std::size_t > weights, aggregate_method method) (defined in cpp_redis::client)cpp_redis::client
zlexcount(const std::string &key, int min, int max, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
zlexcount(const std::string &key, int min, int max) (defined in cpp_redis::client)cpp_redis::client
zlexcount(const std::string &key, double min, double max, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
zscan(const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count) (defined in cpp_redis::client)cpp_redis::client
zscore(const std::string &key, const std::string &member, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
zscore(const std::string &key, const std::string &member) (defined in cpp_redis::client)cpp_redis::client
zunionstore(const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, const std::vector< std::size_t > weights, aggregate_method method, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
zunionstore(const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, const std::vector< std::size_t > weights, aggregate_method method) (defined in cpp_redis::client)cpp_redis::client
~client(void)cpp_redis::client
zunionstore(const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, std::vector< std::size_t > weights, aggregate_method method, const reply_callback_t &reply_callback) (defined in cpp_redis::client)cpp_redis::client
zunionstore(const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, std::vector< std::size_t > weights, aggregate_method method) (defined in cpp_redis::client)cpp_redis::client
~client()cpp_redis::client
diff --git a/docs/html/classcpp__redis_1_1client.html b/docs/html/classcpp__redis_1_1client.html index d2543af0..25b43e5d 100644 --- a/docs/html/classcpp__redis_1_1client.html +++ b/docs/html/classcpp__redis_1_1client.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::client Class Reference @@ -32,18 +32,21 @@
- + +/* @license-end */
@@ -77,12 +80,12 @@

#include <client.hpp>

-

+

Classes

struct  bitfield_operation
 
- - - - - + + + +

+

Public Types

enum  client_type { normal, master, @@ -125,23 +128,23 @@ incrby }
 
typedef std::function< void(const std::string &host, std::size_t port, connect_state status)> connect_callback_t
 
typedef std::function< void(reply &)> reply_callback_t
 
typedef std::function< void(const std::string &host, std::size_t port, connect_state status)> connect_callback_t
 
typedef std::function< void(reply &)> reply_callback_t
 
- - - - + + + - - - + + + @@ -150,37 +153,37 @@ client &  - + - + - - + + - - - - - + + + + + - - - - + + + + - - - - - - + + + + + + @@ -190,85 +193,85 @@ +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  @@ -287,1636 +290,1710 @@ template<typename T , typename... Ts> - - - + + + +client &  +client &  +client &  +client &  +client &  +std::future< reply >  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  - - + + - - + + +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  - - - - + + + + +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  +client &  - - - - + + + +

+

Public Member Functions

client (void)
 ctor
 
client ()
 ctor
 
 client (const std::shared_ptr< network::tcp_client_iface > &tcp_client)
 
~client (void)
 dtor
 
~client ()
 dtor
 
 client (const client &)=delete
 copy ctor
operator= (const client &)=delete
 assignment operator
 
void connect (const std::string &host="127.0.0.1", std::size_t port=6379, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)
void connect (const std::string &host="127.0.0.1", std::size_t port=6379, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)
 
void connect (const std::string &name, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)
void connect (const std::string &m_name, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)
 
bool is_connected (void) const
 
bool is_connected () const
 
void disconnect (bool wait_for_removal=false)
 
bool is_reconnecting (void) const
 
void cancel_reconnect (void)
 
clientsend (const std::vector< std::string > &redis_cmd, const reply_callback_t &callback)
bool is_reconnecting () const
 
void cancel_reconnect ()
 
clientsend (const std::vector< std::string > &redis_cmd, const reply_callback_t &callback)
 
std::future< replysend (const std::vector< std::string > &redis_cmd)
 
clientcommit (void)
 
clientsync_commit (void)
 
clientcommit ()
 
clientsync_commit ()
 
template<class Rep , class Period >
clientsync_commit (const std::chrono::duration< Rep, Period > &timeout)
 
void add_sentinel (const std::string &host, std::size_t port, std::uint32_t timeout_msecs=0)
 
const sentinelget_sentinel (void) const
 
sentinelget_sentinel (void)
 
void clear_sentinels (void)
 
const sentinelget_sentinel () const
 
sentinelget_sentinel ()
 
void clear_sentinels ()
 
std::string aggregate_method_to_string (aggregate_method method) const
 
std::string geo_unit_to_string (geo_unit unit) const
std::string bitfield_operation_type_to_string (bitfield_operation_type operation) const
 
-clientappend (const std::string &key, const std::string &value, const reply_callback_t &reply_callback)
append (const std::string &key, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replyappend (const std::string &key, const std::string &value)
 
-clientauth (const std::string &password, const reply_callback_t &reply_callback)
auth (const std::string &password, const reply_callback_t &reply_callback)
 
std::future< replyauth (const std::string &password)
 
-clientbgrewriteaof (const reply_callback_t &reply_callback)
bgrewriteaof (const reply_callback_t &reply_callback)
 
std::future< replybgrewriteaof ()
 
-clientbgsave (const reply_callback_t &reply_callback)
bgsave (const reply_callback_t &reply_callback)
 
std::future< replybgsave ()
 
-clientbitcount (const std::string &key, const reply_callback_t &reply_callback)
bitcount (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replybitcount (const std::string &key)
 
-clientbitcount (const std::string &key, int start, int end, const reply_callback_t &reply_callback)
bitcount (const std::string &key, int start, int end, const reply_callback_t &reply_callback)
 
std::future< replybitcount (const std::string &key, int start, int end)
 
-clientbitfield (const std::string &key, const std::vector< bitfield_operation > &operations, const reply_callback_t &reply_callback)
bitfield (const std::string &key, const std::vector< bitfield_operation > &operations, const reply_callback_t &reply_callback)
 
std::future< replybitfield (const std::string &key, const std::vector< bitfield_operation > &operations)
 
-clientbitop (const std::string &operation, const std::string &destkey, const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
bitop (const std::string &operation, const std::string &destkey, const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
 
std::future< replybitop (const std::string &operation, const std::string &destkey, const std::vector< std::string > &keys)
 
-clientbitpos (const std::string &key, int bit, const reply_callback_t &reply_callback)
bitpos (const std::string &key, int bit, const reply_callback_t &reply_callback)
 
std::future< replybitpos (const std::string &key, int bit)
 
-clientbitpos (const std::string &key, int bit, int start, const reply_callback_t &reply_callback)
bitpos (const std::string &key, int bit, int start, const reply_callback_t &reply_callback)
 
std::future< replybitpos (const std::string &key, int bit, int start)
 
-clientbitpos (const std::string &key, int bit, int start, int end, const reply_callback_t &reply_callback)
bitpos (const std::string &key, int bit, int start, int end, const reply_callback_t &reply_callback)
 
std::future< replybitpos (const std::string &key, int bit, int start, int end)
 
-clientblpop (const std::vector< std::string > &keys, int timeout, const reply_callback_t &reply_callback)
blpop (const std::vector< std::string > &keys, int timeout, const reply_callback_t &reply_callback)
 
std::future< replyblpop (const std::vector< std::string > &keys, int timeout)
 
-clientbrpop (const std::vector< std::string > &keys, int timeout, const reply_callback_t &reply_callback)
brpop (const std::vector< std::string > &keys, int timeout, const reply_callback_t &reply_callback)
 
std::future< replybrpop (const std::vector< std::string > &keys, int timeout)
 
-clientbrpoplpush (const std::string &src, const std::string &dst, int timeout, const reply_callback_t &reply_callback)
brpoplpush (const std::string &src, const std::string &dst, int timeout, const reply_callback_t &reply_callback)
 
std::future< replybrpoplpush (const std::string &src, const std::string &dst, int timeout)
clientclient_kill (const T &, const Ts &...)
 
template<typename T , typename... Ts>
std::future< replyclient_kill_future (const T, const Ts...)
 
template<typename T , typename... Ts>
std::future< replyclient_kill_future (T, const Ts...)
 
-clientclient_list (const reply_callback_t &reply_callback)
client_list (const reply_callback_t &reply_callback)
 
std::future< replyclient_list ()
 
-clientclient_getname (const reply_callback_t &reply_callback)
client_getname (const reply_callback_t &reply_callback)
 
std::future< replyclient_getname ()
 
-clientclient_pause (int timeout, const reply_callback_t &reply_callback)
client_pause (int timeout, const reply_callback_t &reply_callback)
 
std::future< replyclient_pause (int timeout)
 
-clientclient_reply (const std::string &mode, const reply_callback_t &reply_callback)
client_reply (const std::string &mode, const reply_callback_t &reply_callback)
 
std::future< replyclient_reply (const std::string &mode)
 
-clientclient_setname (const std::string &name, const reply_callback_t &reply_callback)
client_setname (const std::string &m_name, const reply_callback_t &reply_callback)
 
-std::future< replyclient_setname (const std::string &name)
client_setname (const std::string &m_name)
 
-clientcluster_addslots (const std::vector< std::string > &p_slots, const reply_callback_t &reply_callback)
cluster_addslots (const std::vector< std::string > &p_slots, const reply_callback_t &reply_callback)
 
std::future< replycluster_addslots (const std::vector< std::string > &p_slots)
 
-clientcluster_count_failure_reports (const std::string &node_id, const reply_callback_t &reply_callback)
cluster_count_failure_reports (const std::string &node_id, const reply_callback_t &reply_callback)
 
std::future< replycluster_count_failure_reports (const std::string &node_id)
 
-clientcluster_countkeysinslot (const std::string &slot, const reply_callback_t &reply_callback)
cluster_countkeysinslot (const std::string &slot, const reply_callback_t &reply_callback)
 
std::future< replycluster_countkeysinslot (const std::string &slot)
 
-clientcluster_delslots (const std::vector< std::string > &p_slots, const reply_callback_t &reply_callback)
cluster_delslots (const std::vector< std::string > &p_slots, const reply_callback_t &reply_callback)
 
std::future< replycluster_delslots (const std::vector< std::string > &p_slots)
 
-clientcluster_failover (const reply_callback_t &reply_callback)
cluster_failover (const reply_callback_t &reply_callback)
 
std::future< replycluster_failover ()
 
-clientcluster_failover (const std::string &mode, const reply_callback_t &reply_callback)
cluster_failover (const std::string &mode, const reply_callback_t &reply_callback)
 
std::future< replycluster_failover (const std::string &mode)
 
-clientcluster_forget (const std::string &node_id, const reply_callback_t &reply_callback)
cluster_forget (const std::string &node_id, const reply_callback_t &reply_callback)
 
std::future< replycluster_forget (const std::string &node_id)
 
-clientcluster_getkeysinslot (const std::string &slot, int count, const reply_callback_t &reply_callback)
cluster_getkeysinslot (const std::string &slot, int count, const reply_callback_t &reply_callback)
 
std::future< replycluster_getkeysinslot (const std::string &slot, int count)
 
-clientcluster_info (const reply_callback_t &reply_callback)
cluster_info (const reply_callback_t &reply_callback)
 
std::future< replycluster_info ()
 
-clientcluster_keyslot (const std::string &key, const reply_callback_t &reply_callback)
cluster_keyslot (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replycluster_keyslot (const std::string &key)
 
-clientcluster_meet (const std::string &ip, int port, const reply_callback_t &reply_callback)
cluster_meet (const std::string &ip, int port, const reply_callback_t &reply_callback)
 
std::future< replycluster_meet (const std::string &ip, int port)
 
-clientcluster_nodes (const reply_callback_t &reply_callback)
cluster_nodes (const reply_callback_t &reply_callback)
 
std::future< replycluster_nodes ()
 
-clientcluster_replicate (const std::string &node_id, const reply_callback_t &reply_callback)
cluster_replicate (const std::string &node_id, const reply_callback_t &reply_callback)
 
std::future< replycluster_replicate (const std::string &node_id)
 
-clientcluster_reset (const reply_callback_t &reply_callback)
cluster_reset (const reply_callback_t &reply_callback)
 
-clientcluster_reset (const std::string &mode, const reply_callback_t &reply_callback)
cluster_reset (const std::string &mode, const reply_callback_t &reply_callback)
 
std::future< replycluster_reset (const std::string &mode="soft")
 
-clientcluster_saveconfig (const reply_callback_t &reply_callback)
cluster_saveconfig (const reply_callback_t &reply_callback)
 
std::future< replycluster_saveconfig ()
 
-clientcluster_set_config_epoch (const std::string &epoch, const reply_callback_t &reply_callback)
cluster_set_config_epoch (const std::string &epoch, const reply_callback_t &reply_callback)
 
std::future< replycluster_set_config_epoch (const std::string &epoch)
 
-clientcluster_setslot (const std::string &slot, const std::string &mode, const reply_callback_t &reply_callback)
cluster_setslot (const std::string &slot, const std::string &mode, const reply_callback_t &reply_callback)
 
std::future< replycluster_setslot (const std::string &slot, const std::string &mode)
 
-clientcluster_setslot (const std::string &slot, const std::string &mode, const std::string &node_id, const reply_callback_t &reply_callback)
cluster_setslot (const std::string &slot, const std::string &mode, const std::string &node_id, const reply_callback_t &reply_callback)
 
std::future< replycluster_setslot (const std::string &slot, const std::string &mode, const std::string &node_id)
 
-clientcluster_slaves (const std::string &node_id, const reply_callback_t &reply_callback)
cluster_slaves (const std::string &node_id, const reply_callback_t &reply_callback)
 
std::future< replycluster_slaves (const std::string &node_id)
 
-clientcluster_slots (const reply_callback_t &reply_callback)
cluster_slots (const reply_callback_t &reply_callback)
 
std::future< replycluster_slots ()
 
-clientcommand (const reply_callback_t &reply_callback)
command (const reply_callback_t &reply_callback)
 
std::future< replycommand ()
 
-clientcommand_count (const reply_callback_t &reply_callback)
command_count (const reply_callback_t &reply_callback)
 
std::future< replycommand_count ()
 
-clientcommand_getkeys (const reply_callback_t &reply_callback)
command_getkeys (const reply_callback_t &reply_callback)
 
std::future< replycommand_getkeys ()
 
-clientcommand_info (const std::vector< std::string > &command_name, const reply_callback_t &reply_callback)
command_info (const std::vector< std::string > &command_name, const reply_callback_t &reply_callback)
 
std::future< replycommand_info (const std::vector< std::string > &command_name)
 
-clientconfig_get (const std::string &param, const reply_callback_t &reply_callback)
config_get (const std::string &param, const reply_callback_t &reply_callback)
 
std::future< replyconfig_get (const std::string &param)
 
-clientconfig_rewrite (const reply_callback_t &reply_callback)
config_rewrite (const reply_callback_t &reply_callback)
 
std::future< replyconfig_rewrite ()
 
-clientconfig_set (const std::string &param, const std::string &val, const reply_callback_t &reply_callback)
config_set (const std::string &param, const std::string &val, const reply_callback_t &reply_callback)
 
std::future< replyconfig_set (const std::string &param, const std::string &val)
 
-clientconfig_resetstat (const reply_callback_t &reply_callback)
config_resetstat (const reply_callback_t &reply_callback)
 
std::future< replyconfig_resetstat ()
 
-clientdbsize (const reply_callback_t &reply_callback)
dbsize (const reply_callback_t &reply_callback)
 
std::future< replydbsize ()
 
-clientdebug_object (const std::string &key, const reply_callback_t &reply_callback)
debug_object (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replydebug_object (const std::string &key)
 
-clientdebug_segfault (const reply_callback_t &reply_callback)
debug_segfault (const reply_callback_t &reply_callback)
 
std::future< replydebug_segfault ()
 
-clientdecr (const std::string &key, const reply_callback_t &reply_callback)
decr (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replydecr (const std::string &key)
 
-clientdecrby (const std::string &key, int val, const reply_callback_t &reply_callback)
decrby (const std::string &key, int val, const reply_callback_t &reply_callback)
 
std::future< replydecrby (const std::string &key, int val)
 
-clientdel (const std::vector< std::string > &key, const reply_callback_t &reply_callback)
del (const std::vector< std::string > &key, const reply_callback_t &reply_callback)
 
std::future< replydel (const std::vector< std::string > &key)
 
-clientdiscard (const reply_callback_t &reply_callback)
discard (const reply_callback_t &reply_callback)
 
std::future< replydiscard ()
 
-clientdump (const std::string &key, const reply_callback_t &reply_callback)
dump (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replydump (const std::string &key)
 
-clientecho (const std::string &msg, const reply_callback_t &reply_callback)
echo (const std::string &msg, const reply_callback_t &reply_callback)
 
std::future< replyecho (const std::string &msg)
 
-clienteval (const std::string &script, int numkeys, const std::vector< std::string > &keys, const std::vector< std::string > &args, const reply_callback_t &reply_callback)
eval (const std::string &script, int numkeys, const std::vector< std::string > &keys, const std::vector< std::string > &args, const reply_callback_t &reply_callback)
 
std::future< replyeval (const std::string &script, int numkeys, const std::vector< std::string > &keys, const std::vector< std::string > &args)
 
-clientevalsha (const std::string &sha1, int numkeys, const std::vector< std::string > &keys, const std::vector< std::string > &args, const reply_callback_t &reply_callback)
evalsha (const std::string &sha1, int numkeys, const std::vector< std::string > &keys, const std::vector< std::string > &args, const reply_callback_t &reply_callback)
 
std::future< replyevalsha (const std::string &sha1, int numkeys, const std::vector< std::string > &keys, const std::vector< std::string > &args)
 
-clientexec (const reply_callback_t &reply_callback)
exec (const reply_callback_t &reply_callback)
 
std::future< replyexec ()
 
-clientexists (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
exists (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
 
std::future< replyexists (const std::vector< std::string > &keys)
 
-clientexpire (const std::string &key, int seconds, const reply_callback_t &reply_callback)
expire (const std::string &key, int seconds, const reply_callback_t &reply_callback)
 
std::future< replyexpire (const std::string &key, int seconds)
 
-clientexpireat (const std::string &key, int timestamp, const reply_callback_t &reply_callback)
expireat (const std::string &key, int timestamp, const reply_callback_t &reply_callback)
 
std::future< replyexpireat (const std::string &key, int timestamp)
 
-clientflushall (const reply_callback_t &reply_callback)
flushall (const reply_callback_t &reply_callback)
 
std::future< replyflushall ()
 
-clientflushdb (const reply_callback_t &reply_callback)
flushdb (const reply_callback_t &reply_callback)
 
std::future< replyflushdb ()
 
-clientgeoadd (const std::string &key, const std::vector< std::tuple< std::string, std::string, std::string >> &long_lat_memb, const reply_callback_t &reply_callback)
geoadd (const std::string &key, const std::vector< std::tuple< std::string, std::string, std::string >> &long_lat_memb, const reply_callback_t &reply_callback)
 
std::future< replygeoadd (const std::string &key, const std::vector< std::tuple< std::string, std::string, std::string >> &long_lat_memb)
 
-clientgeohash (const std::string &key, const std::vector< std::string > &members, const reply_callback_t &reply_callback)
geohash (const std::string &key, const std::vector< std::string > &members, const reply_callback_t &reply_callback)
 
std::future< replygeohash (const std::string &key, const std::vector< std::string > &members)
 
-clientgeopos (const std::string &key, const std::vector< std::string > &members, const reply_callback_t &reply_callback)
geopos (const std::string &key, const std::vector< std::string > &members, const reply_callback_t &reply_callback)
 
std::future< replygeopos (const std::string &key, const std::vector< std::string > &members)
 
-clientgeodist (const std::string &key, const std::string &member_1, const std::string &member_2, const reply_callback_t &reply_callback)
geodist (const std::string &key, const std::string &member_1, const std::string &member_2, const reply_callback_t &reply_callback)
 
-clientgeodist (const std::string &key, const std::string &member_1, const std::string &member_2, const std::string &unit, const reply_callback_t &reply_callback)
geodist (const std::string &key, const std::string &member_1, const std::string &member_2, const std::string &unit, const reply_callback_t &reply_callback)
 
std::future< replygeodist (const std::string &key, const std::string &member_1, const std::string &member_2, const std::string &unit="m")
 
-clientgeoradius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const reply_callback_t &reply_callback)
georadius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const reply_callback_t &reply_callback)
 
-clientgeoradius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const reply_callback_t &reply_callback)
georadius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const reply_callback_t &reply_callback)
 
-clientgeoradius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string &store_key, const reply_callback_t &reply_callback)
georadius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string &store_key, const reply_callback_t &reply_callback)
 
-clientgeoradius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string &store_key, const std::string &storedist_key, const reply_callback_t &reply_callback)
georadius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string &store_key, const std::string &storedist_key, const reply_callback_t &reply_callback)
 
-clientgeoradius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const std::string &store_key, const reply_callback_t &reply_callback)
georadius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const std::string &store_key, const reply_callback_t &reply_callback)
 
-clientgeoradius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const std::string &store_key, const std::string &storedist_key, const reply_callback_t &reply_callback)
georadius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const std::string &store_key, const std::string &storedist_key, const reply_callback_t &reply_callback)
 
std::future< replygeoradius (const std::string &key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord=false, bool with_dist=false, bool with_hash=false, bool asc_order=false, std::size_t count=0, const std::string &store_key="", const std::string &storedist_key="")
 
-clientgeoradiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const reply_callback_t &reply_callback)
georadiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const reply_callback_t &reply_callback)
 
-clientgeoradiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const reply_callback_t &reply_callback)
georadiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const reply_callback_t &reply_callback)
 
-clientgeoradiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string &store_key, const reply_callback_t &reply_callback)
georadiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string &store_key, const reply_callback_t &reply_callback)
 
-clientgeoradiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string &store_key, const std::string &storedist_key, const reply_callback_t &reply_callback)
georadiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string &store_key, const std::string &storedist_key, const reply_callback_t &reply_callback)
 
-clientgeoradiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const std::string &store_key, const reply_callback_t &reply_callback)
georadiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const std::string &store_key, const reply_callback_t &reply_callback)
 
-clientgeoradiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const std::string &store_key, const std::string &storedist_key, const reply_callback_t &reply_callback)
georadiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const std::string &store_key, const std::string &storedist_key, const reply_callback_t &reply_callback)
 
std::future< replygeoradiusbymember (const std::string &key, const std::string &member, double radius, geo_unit unit, bool with_coord=false, bool with_dist=false, bool with_hash=false, bool asc_order=false, std::size_t count=0, const std::string &store_key="", const std::string &storedist_key="")
 
-clientget (const std::string &key, const reply_callback_t &reply_callback)
get (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyget (const std::string &key)
 
-clientgetbit (const std::string &key, int offset, const reply_callback_t &reply_callback)
getbit (const std::string &key, int offset, const reply_callback_t &reply_callback)
 
std::future< replygetbit (const std::string &key, int offset)
 
-clientgetrange (const std::string &key, int start, int end, const reply_callback_t &reply_callback)
getrange (const std::string &key, int start, int end, const reply_callback_t &reply_callback)
 
std::future< replygetrange (const std::string &key, int start, int end)
 
-clientgetset (const std::string &key, const std::string &val, const reply_callback_t &reply_callback)
getset (const std::string &key, const std::string &val, const reply_callback_t &reply_callback)
 
std::future< replygetset (const std::string &key, const std::string &val)
 
-clienthdel (const std::string &key, const std::vector< std::string > &fields, const reply_callback_t &reply_callback)
hdel (const std::string &key, const std::vector< std::string > &fields, const reply_callback_t &reply_callback)
 
std::future< replyhdel (const std::string &key, const std::vector< std::string > &fields)
 
-clienthexists (const std::string &key, const std::string &field, const reply_callback_t &reply_callback)
hexists (const std::string &key, const std::string &field, const reply_callback_t &reply_callback)
 
std::future< replyhexists (const std::string &key, const std::string &field)
 
-clienthget (const std::string &key, const std::string &field, const reply_callback_t &reply_callback)
hget (const std::string &key, const std::string &field, const reply_callback_t &reply_callback)
 
std::future< replyhget (const std::string &key, const std::string &field)
 
-clienthgetall (const std::string &key, const reply_callback_t &reply_callback)
hgetall (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyhgetall (const std::string &key)
 
-clienthincrby (const std::string &key, const std::string &field, int incr, const reply_callback_t &reply_callback)
hincrby (const std::string &key, const std::string &field, int incr, const reply_callback_t &reply_callback)
 
std::future< replyhincrby (const std::string &key, const std::string &field, int incr)
 
-clienthincrbyfloat (const std::string &key, const std::string &field, float incr, const reply_callback_t &reply_callback)
hincrbyfloat (const std::string &key, const std::string &field, float incr, const reply_callback_t &reply_callback)
 
std::future< replyhincrbyfloat (const std::string &key, const std::string &field, float incr)
 
-clienthkeys (const std::string &key, const reply_callback_t &reply_callback)
hkeys (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyhkeys (const std::string &key)
 
-clienthlen (const std::string &key, const reply_callback_t &reply_callback)
hlen (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyhlen (const std::string &key)
 
-clienthmget (const std::string &key, const std::vector< std::string > &fields, const reply_callback_t &reply_callback)
hmget (const std::string &key, const std::vector< std::string > &fields, const reply_callback_t &reply_callback)
 
std::future< replyhmget (const std::string &key, const std::vector< std::string > &fields)
 
-clienthmset (const std::string &key, const std::vector< std::pair< std::string, std::string >> &field_val, const reply_callback_t &reply_callback)
hmset (const std::string &key, const std::vector< std::pair< std::string, std::string >> &field_val, const reply_callback_t &reply_callback)
 
std::future< replyhmset (const std::string &key, const std::vector< std::pair< std::string, std::string >> &field_val)
 
-clienthscan (const std::string &key, std::size_t cursor, const reply_callback_t &reply_callback)
hscan (const std::string &key, std::size_t cursor, const reply_callback_t &reply_callback)
 
std::future< replyhscan (const std::string &key, std::size_t cursor)
 
-clienthscan (const std::string &key, std::size_t cursor, const std::string &pattern, const reply_callback_t &reply_callback)
hscan (const std::string &key, std::size_t cursor, const std::string &pattern, const reply_callback_t &reply_callback)
 
std::future< replyhscan (const std::string &key, std::size_t cursor, const std::string &pattern)
 
-clienthscan (const std::string &key, std::size_t cursor, std::size_t count, const reply_callback_t &reply_callback)
hscan (const std::string &key, std::size_t cursor, std::size_t count, const reply_callback_t &reply_callback)
 
std::future< replyhscan (const std::string &key, std::size_t cursor, std::size_t count)
 
-clienthscan (const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count, const reply_callback_t &reply_callback)
hscan (const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count, const reply_callback_t &reply_callback)
 
std::future< replyhscan (const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count)
 
-clienthset (const std::string &key, const std::string &field, const std::string &value, const reply_callback_t &reply_callback)
hset (const std::string &key, const std::string &field, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replyhset (const std::string &key, const std::string &field, const std::string &value)
 
-clienthsetnx (const std::string &key, const std::string &field, const std::string &value, const reply_callback_t &reply_callback)
hsetnx (const std::string &key, const std::string &field, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replyhsetnx (const std::string &key, const std::string &field, const std::string &value)
 
-clienthstrlen (const std::string &key, const std::string &field, const reply_callback_t &reply_callback)
hstrlen (const std::string &key, const std::string &field, const reply_callback_t &reply_callback)
 
std::future< replyhstrlen (const std::string &key, const std::string &field)
 
-clienthvals (const std::string &key, const reply_callback_t &reply_callback)
hvals (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyhvals (const std::string &key)
 
-clientincr (const std::string &key, const reply_callback_t &reply_callback)
incr (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyincr (const std::string &key)
 
-clientincrby (const std::string &key, int incr, const reply_callback_t &reply_callback)
incrby (const std::string &key, int incr, const reply_callback_t &reply_callback)
 
std::future< replyincrby (const std::string &key, int incr)
 
-clientincrbyfloat (const std::string &key, float incr, const reply_callback_t &reply_callback)
incrbyfloat (const std::string &key, float incr, const reply_callback_t &reply_callback)
 
std::future< replyincrbyfloat (const std::string &key, float incr)
 
-clientinfo (const reply_callback_t &reply_callback)
info (const reply_callback_t &reply_callback)
 
-clientinfo (const std::string &section, const reply_callback_t &reply_callback)
info (const std::string &section, const reply_callback_t &reply_callback)
 
std::future< replyinfo (const std::string &section="default")
 
-clientkeys (const std::string &pattern, const reply_callback_t &reply_callback)
keys (const std::string &pattern, const reply_callback_t &reply_callback)
 
std::future< replykeys (const std::string &pattern)
 
-clientlastsave (const reply_callback_t &reply_callback)
lastsave (const reply_callback_t &reply_callback)
 
std::future< replylastsave ()
 
-clientlindex (const std::string &key, int index, const reply_callback_t &reply_callback)
lindex (const std::string &key, int index, const reply_callback_t &reply_callback)
 
std::future< replylindex (const std::string &key, int index)
 
-clientlinsert (const std::string &key, const std::string &before_after, const std::string &pivot, const std::string &value, const reply_callback_t &reply_callback)
linsert (const std::string &key, const std::string &before_after, const std::string &pivot, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replylinsert (const std::string &key, const std::string &before_after, const std::string &pivot, const std::string &value)
 
-clientllen (const std::string &key, const reply_callback_t &reply_callback)
llen (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyllen (const std::string &key)
 
-clientlpop (const std::string &key, const reply_callback_t &reply_callback)
lpop (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replylpop (const std::string &key)
 
-clientlpush (const std::string &key, const std::vector< std::string > &values, const reply_callback_t &reply_callback)
lpush (const std::string &key, const std::vector< std::string > &values, const reply_callback_t &reply_callback)
 
std::future< replylpush (const std::string &key, const std::vector< std::string > &values)
 
-clientlpushx (const std::string &key, const std::string &value, const reply_callback_t &reply_callback)
lpushx (const std::string &key, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replylpushx (const std::string &key, const std::string &value)
 
-clientlrange (const std::string &key, int start, int stop, const reply_callback_t &reply_callback)
lrange (const std::string &key, int start, int stop, const reply_callback_t &reply_callback)
 
std::future< replylrange (const std::string &key, int start, int stop)
 
-clientlrem (const std::string &key, int count, const std::string &value, const reply_callback_t &reply_callback)
lrem (const std::string &key, int count, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replylrem (const std::string &key, int count, const std::string &value)
 
-clientlset (const std::string &key, int index, const std::string &value, const reply_callback_t &reply_callback)
lset (const std::string &key, int index, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replylset (const std::string &key, int index, const std::string &value)
 
-clientltrim (const std::string &key, int start, int stop, const reply_callback_t &reply_callback)
ltrim (const std::string &key, int start, int stop, const reply_callback_t &reply_callback)
 
std::future< replyltrim (const std::string &key, int start, int stop)
 
-clientmget (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
mget (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
 
std::future< replymget (const std::vector< std::string > &keys)
 
-clientmigrate (const std::string &host, int port, const std::string &key, const std::string &dest_db, int timeout, const reply_callback_t &reply_callback)
migrate (const std::string &host, int port, const std::string &key, const std::string &dest_db, int timeout, const reply_callback_t &reply_callback)
 
-clientmigrate (const std::string &host, int port, const std::string &key, const std::string &dest_db, int timeout, bool copy, bool replace, const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
migrate (const std::string &host, int port, const std::string &key, const std::string &dest_db, int timeout, bool copy, bool replace, const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
 
std::future< replymigrate (const std::string &host, int port, const std::string &key, const std::string &dest_db, int timeout, bool copy=false, bool replace=false, const std::vector< std::string > &keys={})
 
-clientmonitor (const reply_callback_t &reply_callback)
monitor (const reply_callback_t &reply_callback)
 
std::future< replymonitor ()
 
-clientmove (const std::string &key, const std::string &db, const reply_callback_t &reply_callback)
move (const std::string &key, const std::string &db, const reply_callback_t &reply_callback)
 
std::future< replymove (const std::string &key, const std::string &db)
 
-clientmset (const std::vector< std::pair< std::string, std::string >> &key_vals, const reply_callback_t &reply_callback)
mset (const std::vector< std::pair< std::string, std::string >> &key_vals, const reply_callback_t &reply_callback)
 
std::future< replymset (const std::vector< std::pair< std::string, std::string >> &key_vals)
 
-clientmsetnx (const std::vector< std::pair< std::string, std::string >> &key_vals, const reply_callback_t &reply_callback)
msetnx (const std::vector< std::pair< std::string, std::string >> &key_vals, const reply_callback_t &reply_callback)
 
std::future< replymsetnx (const std::vector< std::pair< std::string, std::string >> &key_vals)
 
-clientmulti (const reply_callback_t &reply_callback)
multi (const reply_callback_t &reply_callback)
 
std::future< replymulti ()
 
-clientobject (const std::string &subcommand, const std::vector< std::string > &args, const reply_callback_t &reply_callback)
object (const std::string &subcommand, const std::vector< std::string > &args, const reply_callback_t &reply_callback)
 
std::future< replyobject (const std::string &subcommand, const std::vector< std::string > &args)
 
-clientpersist (const std::string &key, const reply_callback_t &reply_callback)
persist (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replypersist (const std::string &key)
 
-clientpexpire (const std::string &key, int milliseconds, const reply_callback_t &reply_callback)
pexpire (const std::string &key, int milliseconds, const reply_callback_t &reply_callback)
 
std::future< replypexpire (const std::string &key, int milliseconds)
 
-clientpexpireat (const std::string &key, int milliseconds_timestamp, const reply_callback_t &reply_callback)
pexpireat (const std::string &key, int milliseconds_timestamp, const reply_callback_t &reply_callback)
 
std::future< replypexpireat (const std::string &key, int milliseconds_timestamp)
 
-clientpfadd (const std::string &key, const std::vector< std::string > &elements, const reply_callback_t &reply_callback)
pfadd (const std::string &key, const std::vector< std::string > &elements, const reply_callback_t &reply_callback)
 
std::future< replypfadd (const std::string &key, const std::vector< std::string > &elements)
 
-clientpfcount (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
pfcount (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
 
std::future< replypfcount (const std::vector< std::string > &keys)
 
-clientpfmerge (const std::string &destkey, const std::vector< std::string > &sourcekeys, const reply_callback_t &reply_callback)
pfmerge (const std::string &destkey, const std::vector< std::string > &sourcekeys, const reply_callback_t &reply_callback)
 
std::future< replypfmerge (const std::string &destkey, const std::vector< std::string > &sourcekeys)
 
-clientping (const reply_callback_t &reply_callback)
ping (const reply_callback_t &reply_callback)
 
std::future< replyping ()
 
-clientping (const std::string &message, const reply_callback_t &reply_callback)
ping (const std::string &message, const reply_callback_t &reply_callback)
 
std::future< replyping (const std::string &message)
 
-clientpsetex (const std::string &key, int milliseconds, const std::string &val, const reply_callback_t &reply_callback)
psetex (const std::string &key, int milliseconds, const std::string &val, const reply_callback_t &reply_callback)
 
std::future< replypsetex (const std::string &key, int milliseconds, const std::string &val)
 
-clientpublish (const std::string &channel, const std::string &message, const reply_callback_t &reply_callback)
publish (const std::string &channel, const std::string &message, const reply_callback_t &reply_callback)
 
std::future< replypublish (const std::string &channel, const std::string &message)
 
-clientpubsub (const std::string &subcommand, const std::vector< std::string > &args, const reply_callback_t &reply_callback)
pubsub (const std::string &subcommand, const std::vector< std::string > &args, const reply_callback_t &reply_callback)
 
std::future< replypubsub (const std::string &subcommand, const std::vector< std::string > &args)
 
-clientpttl (const std::string &key, const reply_callback_t &reply_callback)
pttl (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replypttl (const std::string &key)
 
-clientquit (const reply_callback_t &reply_callback)
quit (const reply_callback_t &reply_callback)
 
std::future< replyquit ()
 
-clientrandomkey (const reply_callback_t &reply_callback)
randomkey (const reply_callback_t &reply_callback)
 
std::future< replyrandomkey ()
 
-clientreadonly (const reply_callback_t &reply_callback)
readonly (const reply_callback_t &reply_callback)
 
std::future< replyreadonly ()
 
-clientreadwrite (const reply_callback_t &reply_callback)
readwrite (const reply_callback_t &reply_callback)
 
std::future< replyreadwrite ()
 
-clientrename (const std::string &key, const std::string &newkey, const reply_callback_t &reply_callback)
rename (const std::string &key, const std::string &newkey, const reply_callback_t &reply_callback)
 
std::future< replyrename (const std::string &key, const std::string &newkey)
 
-clientrenamenx (const std::string &key, const std::string &newkey, const reply_callback_t &reply_callback)
renamenx (const std::string &key, const std::string &newkey, const reply_callback_t &reply_callback)
 
std::future< replyrenamenx (const std::string &key, const std::string &newkey)
 
-clientrestore (const std::string &key, int ttl, const std::string &serialized_value, const reply_callback_t &reply_callback)
restore (const std::string &key, int ttl, const std::string &serialized_value, const reply_callback_t &reply_callback)
 
std::future< replyrestore (const std::string &key, int ttl, const std::string &serialized_value)
 
-clientrestore (const std::string &key, int ttl, const std::string &serialized_value, const std::string &replace, const reply_callback_t &reply_callback)
restore (const std::string &key, int ttl, const std::string &serialized_value, const std::string &replace, const reply_callback_t &reply_callback)
 
std::future< replyrestore (const std::string &key, int ttl, const std::string &serialized_value, const std::string &replace)
 
-clientrole (const reply_callback_t &reply_callback)
role (const reply_callback_t &reply_callback)
 
std::future< replyrole ()
 
-clientrpop (const std::string &key, const reply_callback_t &reply_callback)
rpop (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyrpop (const std::string &key)
 
-clientrpoplpush (const std::string &source, const std::string &destination, const reply_callback_t &reply_callback)
rpoplpush (const std::string &source, const std::string &destination, const reply_callback_t &reply_callback)
 
std::future< replyrpoplpush (const std::string &src, const std::string &dst)
 
-clientrpush (const std::string &key, const std::vector< std::string > &values, const reply_callback_t &reply_callback)
rpush (const std::string &key, const std::vector< std::string > &values, const reply_callback_t &reply_callback)
 
std::future< replyrpush (const std::string &key, const std::vector< std::string > &values)
 
-clientrpushx (const std::string &key, const std::string &value, const reply_callback_t &reply_callback)
rpushx (const std::string &key, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replyrpushx (const std::string &key, const std::string &value)
 
-clientsadd (const std::string &key, const std::vector< std::string > &members, const reply_callback_t &reply_callback)
sadd (const std::string &key, const std::vector< std::string > &members, const reply_callback_t &reply_callback)
 
std::future< replysadd (const std::string &key, const std::vector< std::string > &members)
 
-clientsave (const reply_callback_t &reply_callback)
save (const reply_callback_t &reply_callback)
 
std::future< replysave ()
 
-clientscan (std::size_t cursor, const reply_callback_t &reply_callback)
scan (std::size_t cursor, const reply_callback_t &reply_callback)
 
std::future< replyscan (std::size_t cursor)
 
-clientscan (std::size_t cursor, const std::string &pattern, const reply_callback_t &reply_callback)
scan (std::size_t cursor, const std::string &pattern, const reply_callback_t &reply_callback)
 
std::future< replyscan (std::size_t cursor, const std::string &pattern)
 
-clientscan (std::size_t cursor, std::size_t count, const reply_callback_t &reply_callback)
scan (std::size_t cursor, std::size_t count, const reply_callback_t &reply_callback)
 
std::future< replyscan (std::size_t cursor, std::size_t count)
 
-clientscan (std::size_t cursor, const std::string &pattern, std::size_t count, const reply_callback_t &reply_callback)
scan (std::size_t cursor, const std::string &pattern, std::size_t count, const reply_callback_t &reply_callback)
 
std::future< replyscan (std::size_t cursor, const std::string &pattern, std::size_t count)
 
-clientscard (const std::string &key, const reply_callback_t &reply_callback)
scard (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyscard (const std::string &key)
 
-clientscript_debug (const std::string &mode, const reply_callback_t &reply_callback)
script_debug (const std::string &mode, const reply_callback_t &reply_callback)
 
std::future< replyscript_debug (const std::string &mode)
 
-clientscript_exists (const std::vector< std::string > &scripts, const reply_callback_t &reply_callback)
script_exists (const std::vector< std::string > &scripts, const reply_callback_t &reply_callback)
 
std::future< replyscript_exists (const std::vector< std::string > &scripts)
 
-clientscript_flush (const reply_callback_t &reply_callback)
script_flush (const reply_callback_t &reply_callback)
 
std::future< replyscript_flush ()
 
-clientscript_kill (const reply_callback_t &reply_callback)
script_kill (const reply_callback_t &reply_callback)
 
std::future< replyscript_kill ()
 
-clientscript_load (const std::string &script, const reply_callback_t &reply_callback)
script_load (const std::string &script, const reply_callback_t &reply_callback)
 
std::future< replyscript_load (const std::string &script)
 
-clientsdiff (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
sdiff (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
 
std::future< replysdiff (const std::vector< std::string > &keys)
 
-clientsdiffstore (const std::string &destination, const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
sdiffstore (const std::string &destination, const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
 
std::future< replysdiffstore (const std::string &dst, const std::vector< std::string > &keys)
 
-clientselect (int index, const reply_callback_t &reply_callback)
select (int index, const reply_callback_t &reply_callback)
 
std::future< replyselect (int index)
 
-clientset (const std::string &key, const std::string &value, const reply_callback_t &reply_callback)
set (const std::string &key, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replyset (const std::string &key, const std::string &value)
 
-clientset_advanced (const std::string &key, const std::string &value, const reply_callback_t &reply_callback)
set_advanced (const std::string &key, const std::string &value, const reply_callback_t &reply_callback)
 
-clientset_advanced (const std::string &key, const std::string &value, bool ex, int ex_sec, bool px, int px_milli, bool nx, bool xx, const reply_callback_t &reply_callback)
set_advanced (const std::string &key, const std::string &value, bool ex, int ex_sec, bool px, int px_milli, bool nx, bool xx, const reply_callback_t &reply_callback)
 
std::future< replyset_advanced (const std::string &key, const std::string &value, bool ex=false, int ex_sec=0, bool px=false, int px_milli=0, bool nx=false, bool xx=false)
 
-clientsetbit_ (const std::string &key, int offset, const std::string &value, const reply_callback_t &reply_callback)
setbit_ (const std::string &key, int offset, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replysetbit_ (const std::string &key, int offset, const std::string &value)
 
-clientsetex (const std::string &key, int seconds, const std::string &value, const reply_callback_t &reply_callback)
setex (const std::string &key, int seconds, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replysetex (const std::string &key, int seconds, const std::string &value)
 
-clientsetnx (const std::string &key, const std::string &value, const reply_callback_t &reply_callback)
setnx (const std::string &key, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replysetnx (const std::string &key, const std::string &value)
 
-clientsetrange (const std::string &key, int offset, const std::string &value, const reply_callback_t &reply_callback)
setrange (const std::string &key, int offset, const std::string &value, const reply_callback_t &reply_callback)
 
std::future< replysetrange (const std::string &key, int offset, const std::string &value)
 
-clientshutdown (const reply_callback_t &reply_callback)
shutdown (const reply_callback_t &reply_callback)
 
std::future< replyshutdown ()
 
-clientshutdown (const std::string &save, const reply_callback_t &reply_callback)
shutdown (const std::string &save, const reply_callback_t &reply_callback)
 
std::future< replyshutdown (const std::string &save)
 
-clientsinter (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
sinter (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
 
std::future< replysinter (const std::vector< std::string > &keys)
 
-clientsinterstore (const std::string &destination, const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
sinterstore (const std::string &destination, const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
 
std::future< replysinterstore (const std::string &dst, const std::vector< std::string > &keys)
 
-clientsismember (const std::string &key, const std::string &member, const reply_callback_t &reply_callback)
sismember (const std::string &key, const std::string &member, const reply_callback_t &reply_callback)
 
std::future< replysismember (const std::string &key, const std::string &member)
 
-clientslaveof (const std::string &host, int port, const reply_callback_t &reply_callback)
slaveof (const std::string &host, int port, const reply_callback_t &reply_callback)
 
std::future< replyslaveof (const std::string &host, int port)
 
-clientslowlog (const std::string subcommand, const reply_callback_t &reply_callback)
 
+clientslowlog (std::string subcommand, const reply_callback_t &reply_callback)
 
std::future< replyslowlog (const std::string &subcommand)
 
-clientslowlog (const std::string subcommand, const std::string &argument, const reply_callback_t &reply_callback)
 
+clientslowlog (std::string subcommand, const std::string &argument, const reply_callback_t &reply_callback)
 
std::future< replyslowlog (const std::string &subcommand, const std::string &argument)
 
-clientsmembers (const std::string &key, const reply_callback_t &reply_callback)
smembers (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replysmembers (const std::string &key)
 
-clientsmove (const std::string &source, const std::string &destination, const std::string &member, const reply_callback_t &reply_callback)
smove (const std::string &source, const std::string &destination, const std::string &member, const reply_callback_t &reply_callback)
 
std::future< replysmove (const std::string &src, const std::string &dst, const std::string &member)
 
-clientsort (const std::string &key, const reply_callback_t &reply_callback)
sort (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replysort (const std::string &key)
 
-clientsort (const std::string &key, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const reply_callback_t &reply_callback)
sort (const std::string &key, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const reply_callback_t &reply_callback)
 
std::future< replysort (const std::string &key, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha)
 
-clientsort (const std::string &key, std::size_t offset, std::size_t count, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const reply_callback_t &reply_callback)
sort (const std::string &key, std::size_t offset, std::size_t count, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const reply_callback_t &reply_callback)
 
std::future< replysort (const std::string &key, std::size_t offset, std::size_t count, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha)
 
-clientsort (const std::string &key, const std::string &by_pattern, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const reply_callback_t &reply_callback)
sort (const std::string &key, const std::string &by_pattern, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const reply_callback_t &reply_callback)
 
std::future< replysort (const std::string &key, const std::string &by_pattern, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha)
 
-clientsort (const std::string &key, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const std::string &store_dest, const reply_callback_t &reply_callback)
sort (const std::string &key, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const std::string &store_dest, const reply_callback_t &reply_callback)
 
std::future< replysort (const std::string &key, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const std::string &store_dest)
 
-clientsort (const std::string &key, std::size_t offset, std::size_t count, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const std::string &store_dest, const reply_callback_t &reply_callback)
sort (const std::string &key, std::size_t offset, std::size_t count, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const std::string &store_dest, const reply_callback_t &reply_callback)
 
std::future< replysort (const std::string &key, std::size_t offset, std::size_t count, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const std::string &store_dest)
 
-clientsort (const std::string &key, const std::string &by_pattern, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const std::string &store_dest, const reply_callback_t &reply_callback)
sort (const std::string &key, const std::string &by_pattern, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const std::string &store_dest, const reply_callback_t &reply_callback)
 
std::future< replysort (const std::string &key, const std::string &by_pattern, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const std::string &store_dest)
 
-clientsort (const std::string &key, const std::string &by_pattern, std::size_t offset, std::size_t count, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const reply_callback_t &reply_callback)
sort (const std::string &key, const std::string &by_pattern, std::size_t offset, std::size_t count, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const reply_callback_t &reply_callback)
 
std::future< replysort (const std::string &key, const std::string &by_pattern, std::size_t offset, std::size_t count, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha)
 
-clientsort (const std::string &key, const std::string &by_pattern, std::size_t offset, std::size_t count, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const std::string &store_dest, const reply_callback_t &reply_callback)
sort (const std::string &key, const std::string &by_pattern, std::size_t offset, std::size_t count, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const std::string &store_dest, const reply_callback_t &reply_callback)
 
std::future< replysort (const std::string &key, const std::string &by_pattern, std::size_t offset, std::size_t count, const std::vector< std::string > &get_patterns, bool asc_order, bool alpha, const std::string &store_dest)
 
-clientspop (const std::string &key, const reply_callback_t &reply_callback)
spop (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyspop (const std::string &key)
 
-clientspop (const std::string &key, int count, const reply_callback_t &reply_callback)
spop (const std::string &key, int count, const reply_callback_t &reply_callback)
 
std::future< replyspop (const std::string &key, int count)
 
-clientsrandmember (const std::string &key, const reply_callback_t &reply_callback)
srandmember (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replysrandmember (const std::string &key)
 
-clientsrandmember (const std::string &key, int count, const reply_callback_t &reply_callback)
srandmember (const std::string &key, int count, const reply_callback_t &reply_callback)
 
std::future< replysrandmember (const std::string &key, int count)
 
-clientsrem (const std::string &key, const std::vector< std::string > &members, const reply_callback_t &reply_callback)
srem (const std::string &key, const std::vector< std::string > &members, const reply_callback_t &reply_callback)
 
std::future< replysrem (const std::string &key, const std::vector< std::string > &members)
 
-clientsscan (const std::string &key, std::size_t cursor, const reply_callback_t &reply_callback)
sscan (const std::string &key, std::size_t cursor, const reply_callback_t &reply_callback)
 
std::future< replysscan (const std::string &key, std::size_t cursor)
 
-clientsscan (const std::string &key, std::size_t cursor, const std::string &pattern, const reply_callback_t &reply_callback)
sscan (const std::string &key, std::size_t cursor, const std::string &pattern, const reply_callback_t &reply_callback)
 
std::future< replysscan (const std::string &key, std::size_t cursor, const std::string &pattern)
 
-clientsscan (const std::string &key, std::size_t cursor, std::size_t count, const reply_callback_t &reply_callback)
sscan (const std::string &key, std::size_t cursor, std::size_t count, const reply_callback_t &reply_callback)
 
std::future< replysscan (const std::string &key, std::size_t cursor, std::size_t count)
 
-clientsscan (const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count, const reply_callback_t &reply_callback)
sscan (const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count, const reply_callback_t &reply_callback)
 
std::future< replysscan (const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count)
 
-clientstrlen (const std::string &key, const reply_callback_t &reply_callback)
strlen (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replystrlen (const std::string &key)
 
-clientsunion (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
sunion (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
 
std::future< replysunion (const std::vector< std::string > &keys)
 
-clientsunionstore (const std::string &destination, const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
sunionstore (const std::string &destination, const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
 
std::future< replysunionstore (const std::string &dst, const std::vector< std::string > &keys)
 
-clientsync (const reply_callback_t &reply_callback)
sync (const reply_callback_t &reply_callback)
 
std::future< replysync ()
 
-clienttime (const reply_callback_t &reply_callback)
time (const reply_callback_t &reply_callback)
 
std::future< replytime ()
 
-clientttl (const std::string &key, const reply_callback_t &reply_callback)
ttl (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyttl (const std::string &key)
 
-clienttype (const std::string &key, const reply_callback_t &reply_callback)
type (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replytype (const std::string &key)
 
-clientunwatch (const reply_callback_t &reply_callback)
unwatch (const reply_callback_t &reply_callback)
 
std::future< replyunwatch ()
 
-clientwait (int numslaves, int timeout, const reply_callback_t &reply_callback)
wait (int numslaves, int timeout, const reply_callback_t &reply_callback)
 
std::future< replywait (int numslaves, int timeout)
 
-clientwatch (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
watch (const std::vector< std::string > &keys, const reply_callback_t &reply_callback)
 
std::future< replywatch (const std::vector< std::string > &keys)
 
+clientxack (const std::string &key, const std::string &group, const std::vector< std::string > &id_members, const reply_callback_t &reply_callback)
 
+std::future< replyxack (const std::string &key, const std::string &group, const std::vector< std::string > &id_members)
 
+clientxadd (const std::string &key, const std::string &id, const std::multimap< std::string, std::string > &field_members, const reply_callback_t &reply_callback)
 
+std::future< replyxadd (const std::string &key, const std::string &id, const std::multimap< std::string, std::string > &field_members)
 
+clientxclaim (const std::string &key, const std::string &group, const std::string &consumer, int min_idle_time, const std::vector< std::string > &id_members, const reply_callback_t &reply_callback)
 
+std::future< replyxclaim (const std::string &key, const std::string &group, const std::string &consumer, const int &min_idle_time, const std::vector< std::string > &id_members)
 
+clientxdel (const std::string &key, const std::vector< std::string > &id_members, const reply_callback_t &reply_callback)
 
+std::future< replyxdel (const std::string &key, const std::vector< std::string > &id_members)
 
+clientxgroup_create (const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback)
 
+clientxgroup_create (const std::string &key, const std::string &group_name, const std::string &id, const reply_callback_t &reply_callback)
 
+std::future< replyxgroup_create (const std::string &key, const std::string &group_name, const std::string &id="$")
 
+clientxgroup_set_id (const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback)
 
+clientxgroup_set_id (const std::string &key, const std::string &group_name, const std::string &id, const reply_callback_t &reply_callback)
 
+std::future< replyxgroup_set_id (const std::string &key, const std::string &group_name, const std::string &id="$")
 
+clientxgroup_destroy (const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback)
 
+std::future< replyxgroup_destroy (const std::string &key, const std::string &group_name)
 
+clientxgroup_del_consumer (const std::string &key, const std::string &group_name, const std::string &consumer_name, const reply_callback_t &reply_callback)
 
+std::future< replyxgroup_del_consumer (const std::string &key, const std::string &group_name, const std::string &consumer_name)
 
clientxinfo_consumers (const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback)
 introspection command used in order to retrieve different information about the consumer groups More...
 
std::future< replyxinfo_consumers (const std::string &key, const std::string &group_name)
 
clientxinfo_groups (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyxinfo_groups (const std::string &key)
 
+clientxinfo_stream (const std::string &key, const reply_callback_t &reply_callback)
 
+std::future< replyxinfo_stream (const std::string &key)
 
clientxlen (const std::string &key, const reply_callback_t &reply_callback)
 Returns the number of entries inside a stream. If the specified key does not exist the command returns zero, as if the stream was empty. However note that unlike other Redis types, zero-length streams are possible, so you should call TYPE or EXISTS in order to check if a key exists or not. Streams are not auto-deleted once they have no entries inside (for instance after an XDEL call), because the stream may have consumer groups associated with it. More...
 
std::future< replyxlen (const std::string &key)
 
-clientzadd (const std::string &key, const std::vector< std::string > &options, const std::multimap< std::string, std::string > &score_members, const reply_callback_t &reply_callback)
zadd (const std::string &key, const std::vector< std::string > &options, const std::multimap< std::string, std::string > &score_members, const reply_callback_t &reply_callback)
 
std::future< replyzadd (const std::string &key, const std::vector< std::string > &options, const std::multimap< std::string, std::string > &score_members)
 
-clientzcard (const std::string &key, const reply_callback_t &reply_callback)
zcard (const std::string &key, const reply_callback_t &reply_callback)
 
std::future< replyzcard (const std::string &key)
 
-clientzcount (const std::string &key, int min, int max, const reply_callback_t &reply_callback)
zcount (const std::string &key, int min, int max, const reply_callback_t &reply_callback)
 
std::future< replyzcount (const std::string &key, int min, int max)
 
-clientzcount (const std::string &key, double min, double max, const reply_callback_t &reply_callback)
zcount (const std::string &key, double min, double max, const reply_callback_t &reply_callback)
 
std::future< replyzcount (const std::string &key, double min, double max)
 
-clientzcount (const std::string &key, const std::string &min, const std::string &max, const reply_callback_t &reply_callback)
zcount (const std::string &key, const std::string &min, const std::string &max, const reply_callback_t &reply_callback)
 
std::future< replyzcount (const std::string &key, const std::string &min, const std::string &max)
 
-clientzincrby (const std::string &key, int incr, const std::string &member, const reply_callback_t &reply_callback)
zincrby (const std::string &key, int incr, const std::string &member, const reply_callback_t &reply_callback)
 
std::future< replyzincrby (const std::string &key, int incr, const std::string &member)
 
-clientzincrby (const std::string &key, double incr, const std::string &member, const reply_callback_t &reply_callback)
zincrby (const std::string &key, double incr, const std::string &member, const reply_callback_t &reply_callback)
 
std::future< replyzincrby (const std::string &key, double incr, const std::string &member)
 
-clientzincrby (const std::string &key, const std::string &incr, const std::string &member, const reply_callback_t &reply_callback)
zincrby (const std::string &key, const std::string &incr, const std::string &member, const reply_callback_t &reply_callback)
 
std::future< replyzincrby (const std::string &key, const std::string &incr, const std::string &member)
 
-clientzinterstore (const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, const std::vector< std::size_t > weights, aggregate_method method, const reply_callback_t &reply_callback)
 
-std::future< replyzinterstore (const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, const std::vector< std::size_t > weights, aggregate_method method)
 
+clientzinterstore (const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, std::vector< std::size_t > weights, aggregate_method method, const reply_callback_t &reply_callback)
 
+std::future< replyzinterstore (const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, std::vector< std::size_t > weights, aggregate_method method)
 
-clientzlexcount (const std::string &key, int min, int max, const reply_callback_t &reply_callback)
zlexcount (const std::string &key, int min, int max, const reply_callback_t &reply_callback)
 
std::future< replyzlexcount (const std::string &key, int min, int max)
 
-clientzlexcount (const std::string &key, double min, double max, const reply_callback_t &reply_callback)
zlexcount (const std::string &key, double min, double max, const reply_callback_t &reply_callback)
 
std::future< replyzlexcount (const std::string &key, double min, double max)
 
-clientzlexcount (const std::string &key, const std::string &min, const std::string &max, const reply_callback_t &reply_callback)
zlexcount (const std::string &key, const std::string &min, const std::string &max, const reply_callback_t &reply_callback)
 
std::future< replyzlexcount (const std::string &key, const std::string &min, const std::string &max)
 
-clientzrange (const std::string &key, int start, int stop, const reply_callback_t &reply_callback)
zrange (const std::string &key, int start, int stop, const reply_callback_t &reply_callback)
 
-clientzrange (const std::string &key, int start, int stop, bool withscores, const reply_callback_t &reply_callback)
zrange (const std::string &key, int start, int stop, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrange (const std::string &key, int start, int stop, bool withscores=false)
 
-clientzrange (const std::string &key, double start, double stop, const reply_callback_t &reply_callback)
zrange (const std::string &key, double start, double stop, const reply_callback_t &reply_callback)
 
-clientzrange (const std::string &key, double start, double stop, bool withscores, const reply_callback_t &reply_callback)
zrange (const std::string &key, double start, double stop, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrange (const std::string &key, double start, double stop, bool withscores=false)
 
-clientzrange (const std::string &key, const std::string &start, const std::string &stop, const reply_callback_t &reply_callback)
zrange (const std::string &key, const std::string &start, const std::string &stop, const reply_callback_t &reply_callback)
 
-clientzrange (const std::string &key, const std::string &start, const std::string &stop, bool withscores, const reply_callback_t &reply_callback)
zrange (const std::string &key, const std::string &start, const std::string &stop, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrange (const std::string &key, const std::string &start, const std::string &stop, bool withscores=false)
 
-clientzrangebylex (const std::string &key, int min, int max, const reply_callback_t &reply_callback)
zrangebylex (const std::string &key, int min, int max, const reply_callback_t &reply_callback)
 
-clientzrangebylex (const std::string &key, int min, int max, bool withscores, const reply_callback_t &reply_callback)
zrangebylex (const std::string &key, int min, int max, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrangebylex (const std::string &key, int min, int max, bool withscores=false)
 
-clientzrangebylex (const std::string &key, double min, double max, const reply_callback_t &reply_callback)
zrangebylex (const std::string &key, double min, double max, const reply_callback_t &reply_callback)
 
-clientzrangebylex (const std::string &key, double min, double max, bool withscores, const reply_callback_t &reply_callback)
zrangebylex (const std::string &key, double min, double max, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrangebylex (const std::string &key, double min, double max, bool withscores=false)
 
-clientzrangebylex (const std::string &key, const std::string &min, const std::string &max, const reply_callback_t &reply_callback)
zrangebylex (const std::string &key, const std::string &min, const std::string &max, const reply_callback_t &reply_callback)
 
-clientzrangebylex (const std::string &key, const std::string &min, const std::string &max, bool withscores, const reply_callback_t &reply_callback)
zrangebylex (const std::string &key, const std::string &min, const std::string &max, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrangebylex (const std::string &key, const std::string &min, const std::string &max, bool withscores=false)
 
-clientzrangebylex (const std::string &key, int min, int max, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
zrangebylex (const std::string &key, int min, int max, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
 
-clientzrangebylex (const std::string &key, int min, int max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
zrangebylex (const std::string &key, int min, int max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrangebylex (const std::string &key, int min, int max, std::size_t offset, std::size_t count, bool withscores=false)
 
-clientzrangebylex (const std::string &key, double min, double max, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
zrangebylex (const std::string &key, double min, double max, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
 
-clientzrangebylex (const std::string &key, double min, double max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
zrangebylex (const std::string &key, double min, double max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrangebylex (const std::string &key, double min, double max, std::size_t offset, std::size_t count, bool withscores=false)
 
-clientzrangebylex (const std::string &key, const std::string &min, const std::string &max, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
zrangebylex (const std::string &key, const std::string &min, const std::string &max, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
 
-clientzrangebylex (const std::string &key, const std::string &min, const std::string &max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
zrangebylex (const std::string &key, const std::string &min, const std::string &max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrangebylex (const std::string &key, const std::string &min, const std::string &max, std::size_t offset, std::size_t count, bool withscores=false)
 
-clientzrangebyscore (const std::string &key, int min, int max, const reply_callback_t &reply_callback)
zrangebyscore (const std::string &key, int min, int max, const reply_callback_t &reply_callback)
 
-clientzrangebyscore (const std::string &key, int min, int max, bool withscores, const reply_callback_t &reply_callback)
zrangebyscore (const std::string &key, int min, int max, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrangebyscore (const std::string &key, int min, int max, bool withscores=false)
 
-clientzrangebyscore (const std::string &key, double min, double max, const reply_callback_t &reply_callback)
zrangebyscore (const std::string &key, double min, double max, const reply_callback_t &reply_callback)
 
-clientzrangebyscore (const std::string &key, double min, double max, bool withscores, const reply_callback_t &reply_callback)
zrangebyscore (const std::string &key, double min, double max, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrangebyscore (const std::string &key, double min, double max, bool withscores=false)
 
-clientzrangebyscore (const std::string &key, const std::string &min, const std::string &max, const reply_callback_t &reply_callback)
zrangebyscore (const std::string &key, const std::string &min, const std::string &max, const reply_callback_t &reply_callback)
 
-clientzrangebyscore (const std::string &key, const std::string &min, const std::string &max, bool withscores, const reply_callback_t &reply_callback)
zrangebyscore (const std::string &key, const std::string &min, const std::string &max, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrangebyscore (const std::string &key, const std::string &min, const std::string &max, bool withscores=false)
 
-clientzrangebyscore (const std::string &key, int min, int max, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
zrangebyscore (const std::string &key, int min, int max, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
 
-clientzrangebyscore (const std::string &key, int min, int max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
zrangebyscore (const std::string &key, int min, int max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrangebyscore (const std::string &key, int min, int max, std::size_t offset, std::size_t count, bool withscores=false)
 
-clientzrangebyscore (const std::string &key, double min, double max, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
zrangebyscore (const std::string &key, double min, double max, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
 
-clientzrangebyscore (const std::string &key, double min, double max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
zrangebyscore (const std::string &key, double min, double max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrangebyscore (const std::string &key, double min, double max, std::size_t offset, std::size_t count, bool withscores=false)
 
-clientzrangebyscore (const std::string &key, const std::string &min, const std::string &max, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
zrangebyscore (const std::string &key, const std::string &min, const std::string &max, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
 
-clientzrangebyscore (const std::string &key, const std::string &min, const std::string &max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
zrangebyscore (const std::string &key, const std::string &min, const std::string &max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrangebyscore (const std::string &key, const std::string &min, const std::string &max, std::size_t offset, std::size_t count, bool withscores=false)
 
-clientzrank (const std::string &key, const std::string &member, const reply_callback_t &reply_callback)
zrank (const std::string &key, const std::string &member, const reply_callback_t &reply_callback)
 
std::future< replyzrank (const std::string &key, const std::string &member)
 
-clientzrem (const std::string &key, const std::vector< std::string > &members, const reply_callback_t &reply_callback)
zrem (const std::string &key, const std::vector< std::string > &members, const reply_callback_t &reply_callback)
 
std::future< replyzrem (const std::string &key, const std::vector< std::string > &members)
 
-clientzremrangebylex (const std::string &key, int min, int max, const reply_callback_t &reply_callback)
zremrangebylex (const std::string &key, int min, int max, const reply_callback_t &reply_callback)
 
std::future< replyzremrangebylex (const std::string &key, int min, int max)
 
-clientzremrangebylex (const std::string &key, double min, double max, const reply_callback_t &reply_callback)
zremrangebylex (const std::string &key, double min, double max, const reply_callback_t &reply_callback)
 
std::future< replyzremrangebylex (const std::string &key, double min, double max)
 
-clientzremrangebylex (const std::string &key, const std::string &min, const std::string &max, const reply_callback_t &reply_callback)
zremrangebylex (const std::string &key, const std::string &min, const std::string &max, const reply_callback_t &reply_callback)
 
std::future< replyzremrangebylex (const std::string &key, const std::string &min, const std::string &max)
 
-clientzremrangebyrank (const std::string &key, int start, int stop, const reply_callback_t &reply_callback)
zremrangebyrank (const std::string &key, int start, int stop, const reply_callback_t &reply_callback)
 
std::future< replyzremrangebyrank (const std::string &key, int start, int stop)
 
-clientzremrangebyrank (const std::string &key, double start, double stop, const reply_callback_t &reply_callback)
zremrangebyrank (const std::string &key, double start, double stop, const reply_callback_t &reply_callback)
 
std::future< replyzremrangebyrank (const std::string &key, double start, double stop)
 
-clientzremrangebyrank (const std::string &key, const std::string &start, const std::string &stop, const reply_callback_t &reply_callback)
zremrangebyrank (const std::string &key, const std::string &start, const std::string &stop, const reply_callback_t &reply_callback)
 
std::future< replyzremrangebyrank (const std::string &key, const std::string &start, const std::string &stop)
 
-clientzremrangebyscore (const std::string &key, int min, int max, const reply_callback_t &reply_callback)
zremrangebyscore (const std::string &key, int min, int max, const reply_callback_t &reply_callback)
 
std::future< replyzremrangebyscore (const std::string &key, int min, int max)
 
-clientzremrangebyscore (const std::string &key, double min, double max, const reply_callback_t &reply_callback)
zremrangebyscore (const std::string &key, double min, double max, const reply_callback_t &reply_callback)
 
std::future< replyzremrangebyscore (const std::string &key, double min, double max)
 
-clientzremrangebyscore (const std::string &key, const std::string &min, const std::string &max, const reply_callback_t &reply_callback)
zremrangebyscore (const std::string &key, const std::string &min, const std::string &max, const reply_callback_t &reply_callback)
 
std::future< replyzremrangebyscore (const std::string &key, const std::string &min, const std::string &max)
 
-clientzrevrange (const std::string &key, int start, int stop, const reply_callback_t &reply_callback)
zrevrange (const std::string &key, int start, int stop, const reply_callback_t &reply_callback)
 
-clientzrevrange (const std::string &key, int start, int stop, bool withscores, const reply_callback_t &reply_callback)
zrevrange (const std::string &key, int start, int stop, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrange (const std::string &key, int start, int stop, bool withscores=false)
 
-clientzrevrange (const std::string &key, double start, double stop, const reply_callback_t &reply_callback)
zrevrange (const std::string &key, double start, double stop, const reply_callback_t &reply_callback)
 
-clientzrevrange (const std::string &key, double start, double stop, bool withscores, const reply_callback_t &reply_callback)
zrevrange (const std::string &key, double start, double stop, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrange (const std::string &key, double start, double stop, bool withscores=false)
 
-clientzrevrange (const std::string &key, const std::string &start, const std::string &stop, const reply_callback_t &reply_callback)
zrevrange (const std::string &key, const std::string &start, const std::string &stop, const reply_callback_t &reply_callback)
 
-clientzrevrange (const std::string &key, const std::string &start, const std::string &stop, bool withscores, const reply_callback_t &reply_callback)
zrevrange (const std::string &key, const std::string &start, const std::string &stop, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrange (const std::string &key, const std::string &start, const std::string &stop, bool withscores=false)
 
-clientzrevrangebylex (const std::string &key, int max, int min, const reply_callback_t &reply_callback)
zrevrangebylex (const std::string &key, int max, int min, const reply_callback_t &reply_callback)
 
-clientzrevrangebylex (const std::string &key, int max, int min, bool withscores, const reply_callback_t &reply_callback)
zrevrangebylex (const std::string &key, int max, int min, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrangebylex (const std::string &key, int max, int min, bool withscores=false)
 
-clientzrevrangebylex (const std::string &key, double max, double min, const reply_callback_t &reply_callback)
zrevrangebylex (const std::string &key, double max, double min, const reply_callback_t &reply_callback)
 
-clientzrevrangebylex (const std::string &key, double max, double min, bool withscores, const reply_callback_t &reply_callback)
zrevrangebylex (const std::string &key, double max, double min, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrangebylex (const std::string &key, double max, double min, bool withscores=false)
 
-clientzrevrangebylex (const std::string &key, const std::string &max, const std::string &min, const reply_callback_t &reply_callback)
zrevrangebylex (const std::string &key, const std::string &max, const std::string &min, const reply_callback_t &reply_callback)
 
-clientzrevrangebylex (const std::string &key, const std::string &max, const std::string &min, bool withscores, const reply_callback_t &reply_callback)
zrevrangebylex (const std::string &key, const std::string &max, const std::string &min, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrangebylex (const std::string &key, const std::string &max, const std::string &min, bool withscores=false)
 
-clientzrevrangebylex (const std::string &key, int max, int min, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
zrevrangebylex (const std::string &key, int max, int min, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
 
-clientzrevrangebylex (const std::string &key, int max, int min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
zrevrangebylex (const std::string &key, int max, int min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrangebylex (const std::string &key, int max, int min, std::size_t offset, std::size_t count, bool withscores=false)
 
-clientzrevrangebylex (const std::string &key, double max, double min, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
zrevrangebylex (const std::string &key, double max, double min, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
 
-clientzrevrangebylex (const std::string &key, double max, double min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
zrevrangebylex (const std::string &key, double max, double min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrangebylex (const std::string &key, double max, double min, std::size_t offset, std::size_t count, bool withscores=false)
 
-clientzrevrangebylex (const std::string &key, const std::string &max, const std::string &min, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
zrevrangebylex (const std::string &key, const std::string &max, const std::string &min, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
 
-clientzrevrangebylex (const std::string &key, const std::string &max, const std::string &min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
zrevrangebylex (const std::string &key, const std::string &max, const std::string &min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrangebylex (const std::string &key, const std::string &max, const std::string &min, std::size_t offset, std::size_t count, bool withscores=false)
 
-clientzrevrangebyscore (const std::string &key, int max, int min, const reply_callback_t &reply_callback)
zrevrangebyscore (const std::string &key, int max, int min, const reply_callback_t &reply_callback)
 
-clientzrevrangebyscore (const std::string &key, int max, int min, bool withscores, const reply_callback_t &reply_callback)
zrevrangebyscore (const std::string &key, int max, int min, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrangebyscore (const std::string &key, int max, int min, bool withscores=false)
 
-clientzrevrangebyscore (const std::string &key, double max, double min, const reply_callback_t &reply_callback)
zrevrangebyscore (const std::string &key, double max, double min, const reply_callback_t &reply_callback)
 
-clientzrevrangebyscore (const std::string &key, double max, double min, bool withscores, const reply_callback_t &reply_callback)
zrevrangebyscore (const std::string &key, double max, double min, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrangebyscore (const std::string &key, double max, double min, bool withscores=false)
 
-clientzrevrangebyscore (const std::string &key, const std::string &max, const std::string &min, const reply_callback_t &reply_callback)
zrevrangebyscore (const std::string &key, const std::string &max, const std::string &min, const reply_callback_t &reply_callback)
 
-clientzrevrangebyscore (const std::string &key, const std::string &max, const std::string &min, bool withscores, const reply_callback_t &reply_callback)
zrevrangebyscore (const std::string &key, const std::string &max, const std::string &min, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrangebyscore (const std::string &key, const std::string &max, const std::string &min, bool withscores=false)
 
-clientzrevrangebyscore (const std::string &key, int max, int min, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
zrevrangebyscore (const std::string &key, int max, int min, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
 
-clientzrevrangebyscore (const std::string &key, int max, int min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
zrevrangebyscore (const std::string &key, int max, int min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrangebyscore (const std::string &key, int max, int min, std::size_t offset, std::size_t count, bool withscores=false)
 
-clientzrevrangebyscore (const std::string &key, double max, double min, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
zrevrangebyscore (const std::string &key, double max, double min, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
 
-clientzrevrangebyscore (const std::string &key, double max, double min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
zrevrangebyscore (const std::string &key, double max, double min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrangebyscore (const std::string &key, double max, double min, std::size_t offset, std::size_t count, bool withscores=false)
 
-clientzrevrangebyscore (const std::string &key, const std::string &max, const std::string &min, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
zrevrangebyscore (const std::string &key, const std::string &max, const std::string &min, std::size_t offset, std::size_t count, const reply_callback_t &reply_callback)
 
-clientzrevrangebyscore (const std::string &key, const std::string &max, const std::string &min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
zrevrangebyscore (const std::string &key, const std::string &max, const std::string &min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t &reply_callback)
 
std::future< replyzrevrangebyscore (const std::string &key, const std::string &max, const std::string &min, std::size_t offset, std::size_t count, bool withscores=false)
 
-clientzrevrank (const std::string &key, const std::string &member, const reply_callback_t &reply_callback)
zrevrank (const std::string &key, const std::string &member, const reply_callback_t &reply_callback)
 
std::future< replyzrevrank (const std::string &key, const std::string &member)
 
-clientzscan (const std::string &key, std::size_t cursor, const reply_callback_t &reply_callback)
zscan (const std::string &key, std::size_t cursor, const reply_callback_t &reply_callback)
 
std::future< replyzscan (const std::string &key, std::size_t cursor)
 
-clientzscan (const std::string &key, std::size_t cursor, const std::string &pattern, const reply_callback_t &reply_callback)
zscan (const std::string &key, std::size_t cursor, const std::string &pattern, const reply_callback_t &reply_callback)
 
std::future< replyzscan (const std::string &key, std::size_t cursor, const std::string &pattern)
 
-clientzscan (const std::string &key, std::size_t cursor, std::size_t count, const reply_callback_t &reply_callback)
zscan (const std::string &key, std::size_t cursor, std::size_t count, const reply_callback_t &reply_callback)
 
std::future< replyzscan (const std::string &key, std::size_t cursor, std::size_t count)
 
-clientzscan (const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count, const reply_callback_t &reply_callback)
zscan (const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count, const reply_callback_t &reply_callback)
 
std::future< replyzscan (const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count)
 
-clientzscore (const std::string &key, const std::string &member, const reply_callback_t &reply_callback)
zscore (const std::string &key, const std::string &member, const reply_callback_t &reply_callback)
 
std::future< replyzscore (const std::string &key, const std::string &member)
 
-clientzunionstore (const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, const std::vector< std::size_t > weights, aggregate_method method, const reply_callback_t &reply_callback)
 
-std::future< replyzunionstore (const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, const std::vector< std::size_t > weights, aggregate_method method)
 
+clientzunionstore (const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, std::vector< std::size_t > weights, aggregate_method method, const reply_callback_t &reply_callback)
 
+std::future< replyzunionstore (const std::string &destination, std::size_t numkeys, const std::vector< std::string > &keys, std::vector< std::size_t > weights, aggregate_method method)
 
template<typename T, typename... Ts>
clientclient_kill (const T &arg, const Ts &... args)
 
-

Detailed Description

+

Detailed Description

cpp_redis::client is the class providing communication with a Redis server. It is meant to be used for sending commands to the remote server and receiving its replies. The client support asynchronous requests, as well as synchronous ones. Moreover, commands pipelining is supported.

Member Typedef Documentation

- -

◆ connect_callback_t

+ +

◆ connect_callback_t

- +
typedef std::function<void(const std::string& host, std::size_t port, connect_state status)> cpp_redis::client::connect_callback_ttypedef std::function<void(const std::string &host, std::size_t port, connect_state status)> cpp_redis::client::connect_callback_t
@@ -1924,14 +2001,14 @@

-

◆ reply_callback_t

+ +

◆ reply_callback_t

- +
typedef std::function<void(reply&)> cpp_redis::client::reply_callback_ttypedef std::function<void(reply &)> cpp_redis::client::reply_callback_t
@@ -2030,8 +2107,8 @@

high availability (re)connection states

  • dropped: connection has dropped
  • -
  • start: attemp of connection has started
  • -
  • sleeping: sleep between two attemps
  • +
  • start: attempt of connection has started
  • +
  • sleeping: sleep between two attempts
  • ok: connected
  • failed: failed to connect
  • lookup failed: failed to retrieve master sentinel
  • @@ -2216,8 +2293,8 @@

    -

    ◆ cancel_reconnect()

    + +

    ◆ cancel_reconnect()

    @@ -2225,7 +2302,6 @@

    void cpp_redis::client::cancel_reconnect ( - void  ) @@ -2235,8 +2311,8 @@

    -

    ◆ clear_sentinels()

    + +

    ◆ clear_sentinels()

    @@ -2244,7 +2320,6 @@

    void cpp_redis::client::clear_sentinels ( - void  ) @@ -2305,8 +2380,8 @@

    -

    ◆ client_kill_future()

    + +

    ◆ client_kill_future()

    @@ -2316,7 +2391,7 @@

    std::future< reply > cpp_redis::client::client_kill_future ( - const T  + T  arg, @@ -2336,8 +2411,8 @@

    -

    ◆ commit()

    + +

    ◆ commit()

    @@ -2345,14 +2420,13 @@

    client& cpp_redis::client::commit ( - void  )

    -

    Sends all the commands that have been stored by calling send() since the last commit() call to the redis server. That is, pipelining is supported in a very simple and efficient way: client.send(...).send(...).send(...).commit() will send the 3 commands at once (instead of sending 3 network requests, one for each command, as it would have been done without pipelining). Pipelined commands are always removed from the buffer, even in the case of an error (for example, calling commit while the client is not connected, something that throws an exception). commit() works asynchronously: it returns immediately after sending the queued requests and replies are processed asynchronously.

    -

    Please note that, while commit() can safely be called from inside a reply callback, calling sync_commit() from inside a reply callback is not permitted and will lead to undefined behavior, mostly deadlock.

    +

    Sends all the commands that have been stored by calling send() since the last commit() call to the redis server. That is, pipelining is supported in a very simple and efficient way: client.send(...).send(...).send(...).commit() will send the 3 commands at once (instead of sending 3 network requests, one for each command, as it would have been done without pipelining). Pipelined commands are always removed from the buffer, even in the case of an error (for example, calling commit while the client is not connected, something that throws an exception). commit() works asynchronously: it returns immediately after sending the queued requests and replies are processed asynchronously.

    +

    Please note that, while commit() can safely be called from inside a reply callback, calling sync_commit() from inside a reply callback is not permitted and will lead to undefined behavior, mostly deadlock.

    @@ -2377,7 +2451,7 @@

    - const connect_callback_t &  + const connect_callback_tconnect_callback = nullptr, @@ -2412,8 +2486,8 @@

    portport to be connected to connect_callbackconnect handler to be called on connect events (may be null) timeout_msecsmaximum time to connect - max_reconnectsmaximum attemps of reconnection if connection dropped - reconnect_interval_msecstime between two attemps of reconnection + max_reconnectsmaximum attempts of reconnection if connection dropped + reconnect_interval_msecstime between two attempts of reconnection @@ -2430,12 +2504,12 @@

    void cpp_redis::client::connect ( const std::string &  - name, + m_name, - const connect_callback_t &  + const connect_callback_tconnect_callback = nullptr, @@ -2466,11 +2540,11 @@

    Parameters
    - + - - + +
    namesentinel name
    m_namesentinel m_name
    connect_callbackconnect handler to be called on connect events (may be null)
    timeout_msecsmaximum time to connect
    max_reconnectsmaximum attemps of reconnection if connection dropped
    reconnect_interval_msecstime between two attemps of reconnection
    max_reconnectsmaximum attempts of reconnection if connection dropped
    reconnect_interval_msecstime between two attempts of reconnection
    @@ -2528,8 +2602,8 @@

    -

    ◆ get_sentinel() [1/2]

    + +

    ◆ get_sentinel() [1/2]

    @@ -2537,7 +2611,6 @@

    const sentinel& cpp_redis::client::get_sentinel ( - void  ) const @@ -2548,8 +2621,8 @@

    -

    ◆ get_sentinel() [2/2]

    + +

    ◆ get_sentinel() [2/2]

    @@ -2557,7 +2630,6 @@

    sentinel& cpp_redis::client::get_sentinel ( - void  ) @@ -2568,8 +2640,8 @@

    -

    ◆ is_connected()

    + +

    ◆ is_connected()

    @@ -2577,7 +2649,6 @@

    bool cpp_redis::client::is_connected ( - void  ) const @@ -2587,8 +2658,8 @@

    -

    ◆ is_reconnecting()

    + +

    ◆ is_reconnecting()

    @@ -2647,7 +2717,7 @@

    - const reply_callback_t &  + const reply_callback_tcallback  @@ -2657,7 +2727,7 @@

    -

    send the given command the command is actually pipelined and only buffered, so nothing is sent to the network please call commit() / sync_commit() to flush the buffer

    +

    send the given command the command is actually pipelined and only buffered, so nothing is sent to the network please call commit() / sync_commit() to flush the buffer

    Parameters
    @@ -2695,8 +2765,8 @@

    -

    ◆ sync_commit() [1/2]

    + +

    ◆ sync_commit() [1/2]

    @@ -2704,13 +2774,12 @@

    client& cpp_redis::client::sync_commit

    -
    redis_cmdcommand to be sent
    (void  )

    -

    same as commit(), but synchronous will block until all pending commands have been sent and that a reply has been received for each of them and all underlying callbacks completed

    +

    same as commit(), but synchronous will block until all pending commands have been sent and that a reply has been received for each of them and all underlying callbacks completed

    Returns
    current instance
    @@ -2744,6 +2813,218 @@

    Returns
    current instance

    no need to call commit in case of reconnection the reconnection flow will do it for us

    +

    +

    + +

    ◆ xinfo_consumers() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    client& cpp_redis::client::xinfo_consumers (const std::string & key,
    const std::string & group_name,
    const reply_callback_treply_callback 
    )
    +
    + +

    introspection command used in order to retrieve different information about the consumer groups

    +
    Parameters
    + + + +
    keystream id
    group_namestream consumer group m_name
    +
    +
    +
    Returns
    + +
    +
    + +

    ◆ xinfo_consumers() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    std::future<reply> cpp_redis::client::xinfo_consumers (const std::string & key,
    const std::string & group_name 
    )
    +
    + +

    +
    Parameters
    + + + +
    keystream id
    group_name
    +
    +
    +
    Returns
    + +
    +
    + +

    ◆ xinfo_groups() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    client& cpp_redis::client::xinfo_groups (const std::string & key,
    const reply_callback_treply_callback 
    )
    +
    + +

    +
    Parameters
    + + + +
    keystream id
    reply_callback
    +
    +
    +
    Returns
    + +
    +
    + +

    ◆ xinfo_groups() [2/2]

    + +
    +
    + + + + + + + + +
    std::future<reply> cpp_redis::client::xinfo_groups (const std::string & key)
    +
    + +

    +
    Parameters
    + + +
    keystream id
    +
    +
    +
    Returns
    + +
    +
    + +

    ◆ xlen() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    client& cpp_redis::client::xlen (const std::string & key,
    const reply_callback_treply_callback 
    )
    +
    + +

    Returns the number of entries inside a stream. If the specified key does not exist the command returns zero, as if the stream was empty. However note that unlike other Redis types, zero-length streams are possible, so you should call TYPE or EXISTS in order to check if a key exists or not. Streams are not auto-deleted once they have no entries inside (for instance after an XDEL call), because the stream may have consumer groups associated with it.

    +
    Parameters
    + + + +
    key
    reply_callback
    +
    +
    +
    Returns
    Integer reply: the number of entries of the stream at key.
    + +
    +
    + +

    ◆ xlen() [2/2]

    + +
    +
    + + + + + + + + +
    std::future<reply> cpp_redis::client::xlen (const std::string & key)
    +
    + +

    +
    Parameters
    + + +
    key
    +
    +
    +
    Returns
    +

    The documentation for this class was generated from the following files:
      @@ -2755,7 +3036,7 @@

      diff --git a/docs/html/classcpp__redis_1_1logger-members.html b/docs/html/classcpp__redis_1_1logger-members.html index e2390dd7..2137de52 100644 --- a/docs/html/classcpp__redis_1_1logger-members.html +++ b/docs/html/classcpp__redis_1_1logger-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

    - + +/* @license-end */
    @@ -75,7 +78,7 @@ debug(const std::string &msg, const std::string &file, std::size_t line)cpp_redis::loggervirtual error(const std::string &msg, const std::string &file, std::size_t line)cpp_redis::loggervirtual info(const std::string &msg, const std::string &file, std::size_t line)cpp_redis::loggervirtual - log_level enum namecpp_redis::logger + log_level enum m_namecpp_redis::logger logger(log_level level=log_level::info)cpp_redis::logger logger(const logger &)=defaultcpp_redis::logger logger_iface(void)=defaultcpp_redis::logger_iface @@ -90,7 +93,7 @@ diff --git a/docs/html/classcpp__redis_1_1logger.html b/docs/html/classcpp__redis_1_1logger.html index 75f7cb2c..e7676252 100644 --- a/docs/html/classcpp__redis_1_1logger.html +++ b/docs/html/classcpp__redis_1_1logger.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::logger Class Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -80,12 +83,12 @@
    - + cpp_redis::logger_iface
    -

    +

    Public Types

    enum  log_level { error = 0, warn = 1, @@ -94,7 +97,7 @@ }
     
    - @@ -138,7 +141,7 @@

    +

    Public Member Functions

     logger (log_level level=log_level::info)
     assignment operator
     
    -

    Detailed Description

    +

    Detailed Description

    default logger class provided by the library

    Member Enumeration Documentation

    @@ -385,7 +388,7 @@

    diff --git a/docs/html/classcpp__redis_1_1logger__iface-members.html b/docs/html/classcpp__redis_1_1logger__iface-members.html index bef35090..c735670b 100644 --- a/docs/html/classcpp__redis_1_1logger__iface-members.html +++ b/docs/html/classcpp__redis_1_1logger__iface-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

    - + +/* @license-end */
    @@ -85,7 +88,7 @@ diff --git a/docs/html/classcpp__redis_1_1logger__iface.html b/docs/html/classcpp__redis_1_1logger__iface.html index 15daa1b6..ddfd8d31 100644 --- a/docs/html/classcpp__redis_1_1logger__iface.html +++ b/docs/html/classcpp__redis_1_1logger__iface.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::logger_iface Class Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -79,12 +82,12 @@
    - + cpp_redis::logger
    - @@ -111,7 +114,7 @@

    +

    Public Member Functions

     logger_iface (void)=default
    virtual void error (const std::string &msg, const std::string &file, std::size_t line)=0
     
    -

    Detailed Description

    +

    Detailed Description

    logger_iface should be inherited by any class intended to be used for logging

    Member Function Documentation

    @@ -334,7 +337,7 @@

    diff --git a/docs/html/classcpp__redis_1_1network_1_1redis__connection-members.html b/docs/html/classcpp__redis_1_1network_1_1redis__connection-members.html index c6059584..829075b6 100644 --- a/docs/html/classcpp__redis_1_1network_1_1redis__connection-members.html +++ b/docs/html/classcpp__redis_1_1network_1_1redis__connection-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

    - + +/* @license-end */
    @@ -89,7 +92,7 @@ diff --git a/docs/html/classcpp__redis_1_1network_1_1redis__connection.html b/docs/html/classcpp__redis_1_1network_1_1redis__connection.html index 10e1c085..d528a711 100644 --- a/docs/html/classcpp__redis_1_1network_1_1redis__connection.html +++ b/docs/html/classcpp__redis_1_1network_1_1redis__connection.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::network::redis_connection Class Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -76,14 +79,14 @@

    #include <redis_connection.hpp>

    -

    +

    Public Types

    typedef std::function< void(redis_connection &)> disconnection_handler_t
     
    typedef std::function< void(redis_connection &, reply &)> reply_callback_t
     
    - @@ -114,7 +117,7 @@

    +

    Public Member Functions

     redis_connection (void)
    redis_connectioncommit (void)
     
    -

    Detailed Description

    +

    Detailed Description

    tcp connection wrapper handling redis protocol

    Member Typedef Documentation

    @@ -337,7 +340,7 @@

    diff --git a/docs/html/classcpp__redis_1_1network_1_1tcp__client-members.html b/docs/html/classcpp__redis_1_1network_1_1tcp__client-members.html index 928f0ab8..4eec736c 100644 --- a/docs/html/classcpp__redis_1_1network_1_1tcp__client-members.html +++ b/docs/html/classcpp__redis_1_1network_1_1tcp__client-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

    - + +/* @license-end */
    @@ -91,7 +94,7 @@ diff --git a/docs/html/classcpp__redis_1_1network_1_1tcp__client.html b/docs/html/classcpp__redis_1_1network_1_1tcp__client.html index fb72d29c..0e9ccfa9 100644 --- a/docs/html/classcpp__redis_1_1network_1_1tcp__client.html +++ b/docs/html/classcpp__redis_1_1network_1_1tcp__client.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::network::tcp_client Class Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -79,12 +82,12 @@
    - + cpp_redis::network::tcp_client_iface
    - @@ -118,7 +121,7 @@

    +

    Public Member Functions

     tcp_client (void)=default
     dtor
     
    - @@ -128,7 +131,7 @@

    +

    Additional Inherited Members

    - Public Types inherited from cpp_redis::network::tcp_client_iface
    typedef std::function< void(read_result &)> async_read_callback_t
    typedef std::function< void()> disconnection_handler_t
     
    -

    Detailed Description

    +

    Detailed Description

    implementation of the tcp_client_iface based on tacopie networking library

    Member Function Documentation

    @@ -386,7 +389,7 @@

    diff --git a/docs/html/classcpp__redis_1_1network_1_1tcp__client__iface-members.html b/docs/html/classcpp__redis_1_1network_1_1tcp__client__iface-members.html index 9a144084..e1b14378 100644 --- a/docs/html/classcpp__redis_1_1network_1_1tcp__client__iface-members.html +++ b/docs/html/classcpp__redis_1_1network_1_1tcp__client__iface-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

    - + +/* @license-end */
    @@ -88,7 +91,7 @@ diff --git a/docs/html/classcpp__redis_1_1network_1_1tcp__client__iface.html b/docs/html/classcpp__redis_1_1network_1_1tcp__client__iface.html index f926254d..fe107561 100644 --- a/docs/html/classcpp__redis_1_1network_1_1tcp__client__iface.html +++ b/docs/html/classcpp__redis_1_1network_1_1tcp__client__iface.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::network::tcp_client_iface Class Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -81,12 +84,12 @@
    - + cpp_redis::network::tcp_client
    - @@ -97,7 +100,7 @@

    +

    Classes

    struct  read_request
     
    struct  write_result
     
    - @@ -106,7 +109,7 @@

    +

    Public Types

    typedef std::function< void(read_result &)> async_read_callback_t
     
    typedef std::function< void()> disconnection_handler_t
     
    - @@ -129,7 +132,7 @@

    +

    Public Member Functions

     tcp_client_iface (void)=default
    virtual void set_on_disconnection_handler (const disconnection_handler_t &disconnection_handler)=0
     
    -

    Detailed Description

    +

    Detailed Description

    interface defining how tcp client should be implemented to be used inside cpp_redis

    Member Typedef Documentation

    @@ -408,7 +411,7 @@

    diff --git a/docs/html/classcpp__redis_1_1redis__error-members.html b/docs/html/classcpp__redis_1_1redis__error-members.html index a99da84c..cbed1f69 100644 --- a/docs/html/classcpp__redis_1_1redis__error-members.html +++ b/docs/html/classcpp__redis_1_1redis__error-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

    - + +/* @license-end */
    @@ -79,7 +82,7 @@ diff --git a/docs/html/classcpp__redis_1_1redis__error.html b/docs/html/classcpp__redis_1_1redis__error.html index 891dc02f..2110778a 100644 --- a/docs/html/classcpp__redis_1_1redis__error.html +++ b/docs/html/classcpp__redis_1_1redis__error.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::redis_error Class Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -79,11 +82,11 @@
    - +
    - @@ -94,7 +97,7 @@

    +

    Public Member Functions

     redis_error (const std::string &err)
     ctor(char*)
     
    -

    Detailed Description

    +

    Detailed Description

    specialized runtime_error used for cpp_redis error


    The documentation for this class was generated from the following file:
    • includes/cpp_redis/misc/error.hpp
    • @@ -104,7 +107,7 @@ diff --git a/docs/html/classcpp__redis_1_1reply-members.html b/docs/html/classcpp__redis_1_1reply-members.html index 24da5276..9616d276 100644 --- a/docs/html/classcpp__redis_1_1reply-members.html +++ b/docs/html/classcpp__redis_1_1reply-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -89,24 +92,26 @@ operator bool(void) constcpp_redis::reply operator<<(const reply &reply)cpp_redis::reply operator=(const reply &)=defaultcpp_redis::reply - reply(void)cpp_redis::reply - reply(const std::string &value, string_type reply_type)cpp_redis::reply - reply(int64_t value)cpp_redis::reply - reply(const std::vector< reply > &rows)cpp_redis::reply - reply(const reply &)=defaultcpp_redis::reply + operator=(reply &&)cpp_redis::reply + reply(void)cpp_redis::reply + reply(const std::string &value, string_type reply_type)cpp_redis::reply + reply(int64_t value)cpp_redis::reply + reply(const std::vector< reply > &rows)cpp_redis::reply + reply(const reply &)=defaultcpp_redis::reply + reply(reply &&)cpp_redis::reply set(void)cpp_redis::reply set(const std::string &value, string_type reply_type)cpp_redis::reply set(int64_t value)cpp_redis::reply set(const std::vector< reply > &rows)cpp_redis::reply - string_type enum namecpp_redis::reply - type enum namecpp_redis::reply + string_type enum m_namecpp_redis::reply + type enum m_namecpp_redis::reply ~reply(void)=defaultcpp_redis::reply
    diff --git a/docs/html/classcpp__redis_1_1reply.html b/docs/html/classcpp__redis_1_1reply.html index 5930187f..3f3e1a61 100644 --- a/docs/html/classcpp__redis_1_1reply.html +++ b/docs/html/classcpp__redis_1_1reply.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::reply Class Reference @@ -32,18 +32,21 @@

    - + +/* @license-end */
    @@ -76,7 +79,7 @@

    #include <reply.hpp>

    -

    +

    Public Types

    enum  type {
      error = __CPP_REDIS_REPLY_ERR, @@ -95,7 +98,7 @@ }
     
    - @@ -117,6 +120,14 @@ reply &  + + + + + + @@ -158,7 +169,7 @@

    +

    Public Member Functions

     reply (void)
     
    operator= (const reply &)=default
     assignment operator
     
    reply (reply &&)
     move ctor
     
    +replyoperator= (reply &&)
     move assignment operator
     
    bool is_array (void) const
     
    bool is_string (void) const
    type get_type (void) const
     
    -

    Detailed Description

    +

    Detailed Description

    cpp_redis::reply is the class that wraps Redis server replies. That is, cpp_redis::reply objects are passed as parameters of commands callbacks and contain the server's response.

    Member Enumeration Documentation

    @@ -601,7 +612,7 @@

    -

    ◆ operator<<()

    +

    ◆ operator<<()

    @@ -739,7 +750,7 @@

    diff --git a/docs/html/classcpp__redis_1_1sentinel-members.html b/docs/html/classcpp__redis_1_1sentinel-members.html index 4345aec0..88957416 100644 --- a/docs/html/classcpp__redis_1_1sentinel-members.html +++ b/docs/html/classcpp__redis_1_1sentinel-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

    - + +/* @license-end */
    @@ -73,24 +76,24 @@

    This is the complete list of members for cpp_redis::sentinel, including all inherited members.

    - + - + - + - + - + - + @@ -98,9 +101,9 @@ - - - + + + @@ -109,7 +112,7 @@ diff --git a/docs/html/classcpp__redis_1_1sentinel.html b/docs/html/classcpp__redis_1_1sentinel.html index 0a5546a4..377a9d91 100644 --- a/docs/html/classcpp__redis_1_1sentinel.html +++ b/docs/html/classcpp__redis_1_1sentinel.html @@ -3,8 +3,8 @@ - - + +cpp_redis: cpp_redis::sentinel Class Reference @@ -32,18 +32,21 @@
    add_sentinel(const std::string &host, std::size_t port, std::uint32_t timeout_msecs=0)cpp_redis::sentinel
    ckquorum(const std::string &name, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    ckquorum(const std::string &m_name, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    clear_sentinels(void)cpp_redis::sentinel
    commit(void)cpp_redis::sentinel
    connect(const std::string &host, std::size_t port, const sentinel_disconnect_handler_t &disconnect_handler=nullptr, std::uint32_t timeout_msecs=0)cpp_redis::sentinel
    connect_sentinel(const sentinel_disconnect_handler_t &disconnect_handler=nullptr)cpp_redis::sentinel
    disconnect(bool wait_for_removal=false)cpp_redis::sentinel
    failover(const std::string &name, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    failover(const std::string &m_name, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    flushconfig(const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    get_master_addr_by_name(const std::string &name, std::string &host, std::size_t &port, bool autoconnect=true)cpp_redis::sentinel
    get_master_addr_by_name(const std::string &m_name, std::string &host, std::size_t &port, bool autoconnect=true)cpp_redis::sentinel
    get_sentinels(void) constcpp_redis::sentinel
    get_sentinels(void)cpp_redis::sentinel
    is_connected(void)cpp_redis::sentinel
    master(const std::string &name, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    master(const std::string &m_name, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    masters(const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    monitor(const std::string &name, const std::string &ip, std::size_t port, std::size_t quorum, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    monitor(const std::string &m_name, const std::string &ip, std::size_t port, std::size_t quorum, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    operator=(const sentinel &)=deletecpp_redis::sentinel
    ping(const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    remove(const std::string &name, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    remove(const std::string &m_name, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    reply_callback_t typedefcpp_redis::sentinel
    reset(const std::string &pattern, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    send(const std::vector< std::string > &sentinel_cmd, const reply_callback_t &callback=nullptr)cpp_redis::sentinel
    sentinel(const std::shared_ptr< network::tcp_client_iface > &tcp_client)cpp_redis::sentinelexplicit
    sentinel(const sentinel &)=deletecpp_redis::sentinel
    sentinel_disconnect_handler_t typedefcpp_redis::sentinel
    sentinels(const std::string &name, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    set(const std::string &name, const std::string &option, const std::string &value, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    slaves(const std::string &name, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    sentinels(const std::string &m_name, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    set(const std::string &m_name, const std::string &option, const std::string &value, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    slaves(const std::string &m_name, const reply_callback_t &reply_callback=nullptr) (defined in cpp_redis::sentinel)cpp_redis::sentinel
    sync_commit(void)cpp_redis::sentinel
    sync_commit(const std::chrono::duration< Rep, Period > &timeout)cpp_redis::sentinelinline
    ~sentinel(void)cpp_redis::sentinel
    - + +/* @license-end */
    @@ -77,19 +80,19 @@

    #include <sentinel.hpp>

    -

    +

    Classes

    class  sentinel_def
     
    -

    +

    Public Types

    typedef std::function< void(reply &)> reply_callback_t
     
    typedef std::function< void(sentinel &)> sentinel_disconnect_handler_t
     
    - @@ -129,50 +132,50 @@ - + +sentinel &  +sentinel &  +sentinel &  +sentinel &  +sentinel &  +sentinel &  +sentinel &  +sentinel

    +

    Public Member Functions

     sentinel (void)
     ctor & dtor More...
     
    void connect (const std::string &host, std::size_t port, const sentinel_disconnect_handler_t &disconnect_handler=nullptr, std::uint32_t timeout_msecs=0)
     
    bool get_master_addr_by_name (const std::string &name, std::string &host, std::size_t &port, bool autoconnect=true)
    bool get_master_addr_by_name (const std::string &m_name, std::string &host, std::size_t &port, bool autoconnect=true)
     
    -sentinelckquorum (const std::string &name, const reply_callback_t &reply_callback=nullptr)
    ckquorum (const std::string &m_name, const reply_callback_t &reply_callback=nullptr)
     
    -sentinelfailover (const std::string &name, const reply_callback_t &reply_callback=nullptr)
    failover (const std::string &m_name, const reply_callback_t &reply_callback=nullptr)
     
    sentinelflushconfig (const reply_callback_t &reply_callback=nullptr)
     
    -sentinelmaster (const std::string &name, const reply_callback_t &reply_callback=nullptr)
    master (const std::string &m_name, const reply_callback_t &reply_callback=nullptr)
     
    sentinelmasters (const reply_callback_t &reply_callback=nullptr)
     
    -sentinelmonitor (const std::string &name, const std::string &ip, std::size_t port, std::size_t quorum, const reply_callback_t &reply_callback=nullptr)
    monitor (const std::string &m_name, const std::string &ip, std::size_t port, std::size_t quorum, const reply_callback_t &reply_callback=nullptr)
     
    sentinelping (const reply_callback_t &reply_callback=nullptr)
     
    -sentinelremove (const std::string &name, const reply_callback_t &reply_callback=nullptr)
    remove (const std::string &m_name, const reply_callback_t &reply_callback=nullptr)
     
    sentinelreset (const std::string &pattern, const reply_callback_t &reply_callback=nullptr)
     
    -sentinelsentinels (const std::string &name, const reply_callback_t &reply_callback=nullptr)
    sentinels (const std::string &m_name, const reply_callback_t &reply_callback=nullptr)
     
    -sentinelset (const std::string &name, const std::string &option, const std::string &value, const reply_callback_t &reply_callback=nullptr)
    set (const std::string &m_name, const std::string &option, const std::string &value, const reply_callback_t &reply_callback=nullptr)
     
    -sentinelslaves (const std::string &name, const reply_callback_t &reply_callback=nullptr)
    slaves (const std::string &m_name, const reply_callback_t &reply_callback=nullptr)
     
    const std::vector< sentinel_def > & get_sentinels (void) const
     
    std::vector< sentinel_def > & get_sentinels (void)
     
    -

    Detailed Description

    +

    Detailed Description

    cpp_redis::sentinel is the class providing sentinel configuration. It is meant to be used for sending sentinel-related commands to the remote server and receiving its replies. It is also meant to be used with cpp_redis::client and cpp_redis::subscriber for high availability (automatic failover if reconnection is enabled).

    Member Typedef Documentation

    @@ -454,7 +457,7 @@

    bool cpp_redis::sentinel::get_master_addr_by_name ( const std::string &  - name, + m_name, @@ -481,10 +484,10 @@

    -

    Used to find the current redis master by asking one or more sentinels. Use high availablity. Handles connect() and disconnect() automatically when autoconnect=true This method is synchronous. No need to call sync_commit() or process a reply callback. Call add_sentinel() before using when autoconnect==true

    +

    Used to find the current redis master by asking one or more sentinels. Use high availability. Handles connect() and disconnect() automatically when autoconnect=true This method is synchronous. No need to call sync_commit() or process a reply callback. Call add_sentinel() before using when autoconnect==true

    Parameters
    - + @@ -647,7 +650,7 @@

    diff --git a/docs/html/classcpp__redis_1_1sentinel_1_1sentinel__def-members.html b/docs/html/classcpp__redis_1_1sentinel_1_1sentinel__def-members.html index f6b2ef91..2e7a552d 100644 --- a/docs/html/classcpp__redis_1_1sentinel_1_1sentinel__def-members.html +++ b/docs/html/classcpp__redis_1_1sentinel_1_1sentinel__def-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

    namesentinel name
    m_namesentinel m_name
    hostsentinel host
    portsentinel port
    autoconnectautoconnect we loop through and connect/disconnect as necessary to sentinels that were added using add_sentinel(). Otherwise we rely on the call to connect to a sentinel before calling this method.

    - + +/* @license-end */
    @@ -83,7 +86,7 @@ diff --git a/docs/html/classcpp__redis_1_1sentinel_1_1sentinel__def.html b/docs/html/classcpp__redis_1_1sentinel_1_1sentinel__def.html index b5fa26d4..ed77c2e6 100644 --- a/docs/html/classcpp__redis_1_1sentinel_1_1sentinel__def.html +++ b/docs/html/classcpp__redis_1_1sentinel_1_1sentinel__def.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::sentinel::sentinel_def Class Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -75,7 +78,7 @@

    #include <sentinel.hpp>

    - @@ -94,7 +97,7 @@

    +

    Public Member Functions

     sentinel_def (const std::string &host, std::size_t port, std::uint32_t timeout_msecs)
    void set_timeout_msecs (std::uint32_t timeout_msecs)
     
    -

    Detailed Description

    +

    Detailed Description

    store informations related to a sentinel typically, host, port and connection timeout

    Member Function Documentation

    @@ -218,7 +221,7 @@

    diff --git a/docs/html/classcpp__redis_1_1subscriber-members.html b/docs/html/classcpp__redis_1_1subscriber-members.html index 328bb985..77eeb3c2 100644 --- a/docs/html/classcpp__redis_1_1subscriber-members.html +++ b/docs/html/classcpp__redis_1_1subscriber-members.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Member List @@ -32,18 +32,21 @@

    - + +/* @license-end */
    @@ -75,35 +78,35 @@ acknowledgement_callback_t typedefcpp_redis::subscriber add_sentinel(const std::string &host, std::size_t port, std::uint32_t timeout_msecs=0)cpp_redis::subscriber auth(const std::string &password, const reply_callback_t &reply_callback=nullptr)cpp_redis::subscriber - cancel_reconnect(void)cpp_redis::subscriber - clear_sentinels(void)cpp_redis::subscriber - commit(void)cpp_redis::subscriber + cancel_reconnect()cpp_redis::subscriber + clear_sentinels()cpp_redis::subscriber + commit()cpp_redis::subscriber connect(const std::string &host="127.0.0.1", std::size_t port=6379, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)cpp_redis::subscriber - connect(const std::string &name, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)cpp_redis::subscriber - connect_callback_t typedefcpp_redis::subscriber - connect_state enum namecpp_redis::subscriber + connect(const std::string &m_name, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)cpp_redis::subscriber + connect_callback_t typedefcpp_redis::subscriber + connect_state enum m_namecpp_redis::subscriber disconnect(bool wait_for_removal=false)cpp_redis::subscriber - get_sentinel(void) constcpp_redis::subscriber - get_sentinel(void)cpp_redis::subscriber - is_connected(void) constcpp_redis::subscriber - is_reconnecting(void) constcpp_redis::subscriber + get_sentinel() constcpp_redis::subscriber + get_sentinel()cpp_redis::subscriber + is_connected() constcpp_redis::subscriber + is_reconnecting() constcpp_redis::subscriber operator=(const subscriber &)=deletecpp_redis::subscriber - psubscribe(const std::string &pattern, const subscribe_callback_t &callback, const acknowledgement_callback_t &acknowledgement_callback=nullptr)cpp_redis::subscriber + psubscribe(const std::string &pattern, const read_callback_t &callback, const acknowledgement_callback_t &acknowledgement_callback=nullptr)cpp_redis::subscriber punsubscribe(const std::string &pattern)cpp_redis::subscriber - reply_callback_t typedefcpp_redis::subscriber - subscribe(const std::string &channel, const subscribe_callback_t &callback, const acknowledgement_callback_t &acknowledgement_callback=nullptr)cpp_redis::subscriber - subscribe_callback_t typedefcpp_redis::subscriber - subscriber(void)cpp_redis::subscriber + reply_callback_t typedefcpp_redis::subscriber + subscribe(const std::string &channel, const read_callback_t &callback, const acknowledgement_callback_t &acknowledgement_callback=nullptr)cpp_redis::subscriber + read_callback_t typedefcpp_redis::subscriber + subscriber()cpp_redis::subscriber subscriber(const std::shared_ptr< network::tcp_client_iface > &tcp_client)cpp_redis::subscriberexplicit subscriber(const subscriber &)=deletecpp_redis::subscriber unsubscribe(const std::string &channel)cpp_redis::subscriber - ~subscriber(void)cpp_redis::subscriber + ~subscriber()cpp_redis::subscriber
    diff --git a/docs/html/classcpp__redis_1_1subscriber.html b/docs/html/classcpp__redis_1_1subscriber.html index 7d4d31bd..fbbe38b4 100644 --- a/docs/html/classcpp__redis_1_1subscriber.html +++ b/docs/html/classcpp__redis_1_1subscriber.html @@ -3,8 +3,8 @@ - - + + cpp_redis: cpp_redis::subscriber Class Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -77,7 +80,7 @@

    #include <subscriber.hpp>

    - - - - - - - + + + + + + + +

    +

    Public Types

    enum  connect_state {
      dropped, @@ -91,27 +94,31 @@
    }
     
    typedef std::function< void(const std::string &host, std::size_t port, connect_state status)> connect_callback_t
     
    typedef std::function< void(reply &)> reply_callback_t
     
    typedef std::function< void(const std::string &, const std::string &)> subscribe_callback_t
     
    +typedef std::function< void(const std::string &host, std::size_t port, connect_state status)> connect_callback_t
     connect handler, called whenever a new connection even occurred
     
    +typedef std::function< void(reply &)> reply_callback_t
     reply callback called whenever a reply is received, takes as parameter the received reply
     
    typedef std::function< void(const std::string &, const std::string &)> read_callback_t
     
    typedef std::function< void(int64_t)> acknowledgement_callback_t
     
    - - - - + + + - - - + + + @@ -120,40 +127,48 @@ subscriber &  - + + - + + - - + + + + - - - - - + + + + + + + + - + - + - - + + - - - - - - + + + + + +

    +

    Public Member Functions

    subscriber (void)
     ctor
     
    subscriber ()
     ctor
     
     subscriber (const std::shared_ptr< network::tcp_client_iface > &tcp_client)
     
    ~subscriber (void)
     dtor
     
    ~subscriber ()
     dtor
     
     subscriber (const subscriber &)=delete
     copy ctor
    operator= (const subscriber &)=delete
     assignment operator
     
    void connect (const std::string &host="127.0.0.1", std::size_t port=6379, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)
    void connect (const std::string &host="127.0.0.1", std::size_t port=6379, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)
     Connect to redis server. More...
     
    void connect (const std::string &name, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)
    void connect (const std::string &m_name, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)
     Connect to redis server. More...
     
    bool is_connected (void) const
     
    bool is_connected () const
     determines client connectivity More...
     
    void disconnect (bool wait_for_removal=false)
     disconnect from redis server More...
     
    bool is_reconnecting (void) const
     
    void cancel_reconnect (void)
     
    subscriberauth (const std::string &password, const reply_callback_t &reply_callback=nullptr)
    bool is_reconnecting () const
     determines if reconnect is in progress More...
     
    +void cancel_reconnect ()
     stop any reconnect in progress
     
    subscriberauth (const std::string &password, const reply_callback_t &reply_callback=nullptr)
     ability to authenticate on the redis server if necessary this method should not be called repeatedly as the storage of reply_callback is NOT thread safe (only one reply callback is stored for the subscriber client) calling repeatedly auth() is undefined concerning the execution of the associated callbacks More...
     
    subscribersubscribe (const std::string &channel, const subscribe_callback_t &callback, const acknowledgement_callback_t &acknowledgement_callback=nullptr)
    subscribersubscribe (const std::string &channel, const read_callback_t &callback, const acknowledgement_callback_t &acknowledgement_callback=nullptr)
     
    subscriberpsubscribe (const std::string &pattern, const subscribe_callback_t &callback, const acknowledgement_callback_t &acknowledgement_callback=nullptr)
    subscriberpsubscribe (const std::string &pattern, const read_callback_t &callback, const acknowledgement_callback_t &acknowledgement_callback=nullptr)
     
    subscriberunsubscribe (const std::string &channel)
     
    subscriberpunsubscribe (const std::string &pattern)
     
    subscribercommit (void)
     
    subscribercommit ()
     
    void add_sentinel (const std::string &host, std::size_t port, std::uint32_t timeout_msecs=0)
     
    const sentinelget_sentinel (void) const
     
    sentinelget_sentinel (void)
     
    void clear_sentinels (void)
     
    const sentinelget_sentinel () const
     
    sentinelget_sentinel ()
     
    void clear_sentinels ()
     
    -

    Detailed Description

    +

    Detailed Description

    The cpp_redis::subscriber is meant to be used for PUB/SUB communication with the Redis server. Please do not use cpp_redis::client to subscribe to some Redis channels as:

    -
    - -

    ◆ connect_callback_t

    - -
    -
    - - - - -
    typedef std::function<void(const std::string& host, std::size_t port, connect_state status)> cpp_redis::subscriber::connect_callback_t
    -
    -

    connect handler, called whenever a new connection even occurred

    +

    acknowledgment callback called whenever a subscribe completes takes as parameter the int returned by the redis server (usually the number of channels you are subscribed to)

    - -

    ◆ reply_callback_t

    + +

    ◆ read_callback_t

    - - -
    typedef std::function<void(reply&)> cpp_redis::subscriber::reply_callback_t
    -
    -

    reply callback called whenever a reply is received takes as parameter the received reply

    - -
    -
    - -

    ◆ subscribe_callback_t

    - -
    -
    - - - +
    typedef std::function<void(const std::string&, const std::string&)> cpp_redis::subscriber::subscribe_callback_ttypedef std::function<void(const std::string &, const std::string &)> cpp_redis::subscriber::read_callback_t
    @@ -241,8 +226,8 @@

    high availability (re)connection states

    -

    stop any reconnect in progress

    - -
    -
    - -

    ◆ clear_sentinels()

    + +

    ◆ clear_sentinels()

    @@ -394,7 +361,6 @@

    void cpp_redis::subscriber::clear_sentinels ( - void  ) @@ -404,8 +370,8 @@

    -

    ◆ commit()

    + +

    ◆ commit()

    @@ -413,7 +379,6 @@

    subscriber& cpp_redis::subscriber::commit ( - void  ) @@ -445,7 +410,7 @@

    - const connect_callback_t &  + const connect_callback_tconnect_callback = nullptr, @@ -473,15 +438,16 @@

    -

    Connect to redis server

    + +

    Connect to redis server.

    Parameters
    - - + +
    hosthost to be connected to
    portport to be connected to
    connect_callbackconnect handler to be called on connect events (may be null)
    timeout_msecsmaximum time to connect
    max_reconnectsmaximum attemps of reconnection if connection dropped
    reconnect_interval_msecstime between two attemps of reconnection
    max_reconnectsmaximum attempts of reconnection if connection dropped
    reconnect_interval_msecstime between two attempts of reconnection
    @@ -498,12 +464,12 @@

    void cpp_redis::subscriber::connect ( const std::string &  - name, + m_name, - const connect_callback_t &  + const connect_callback_tconnect_callback = nullptr, @@ -531,14 +497,15 @@

    -

    Connect to redis server

    + +

    Connect to redis server.

    Parameters
    - + - - + +
    namesentinel name
    m_namesentinel m_name
    connect_callbackconnect handler to be called on connect events (may be null)
    timeout_msecsmaximum time to connect
    max_reconnectsmaximum attemps of reconnection if connection dropped
    reconnect_interval_msecstime between two attemps of reconnection
    max_reconnectsmaximum attempts of reconnection if connection dropped
    reconnect_interval_msecstime between two attempts of reconnection
    @@ -560,18 +527,19 @@

    -

    disconnect from redis server

    + +

    disconnect from redis server

    Parameters
    - +
    wait_for_removalwhen sets to true, disconnect blocks until the underlying TCP client has been effectively removed from the io_service and that all the underlying callbacks have completed.
    wait_for_removalwhen set to true, disconnect blocks until the underlying TCP client has been effectively removed from the io_service and that all the underlying callbacks have completed.

    - -

    ◆ get_sentinel() [1/2]

    + +

    ◆ get_sentinel() [1/2]

    @@ -579,7 +547,6 @@

    const sentinel& cpp_redis::subscriber::get_sentinel ( - void  ) const @@ -590,8 +557,8 @@

    -

    ◆ get_sentinel() [2/2]

    + +

    ◆ get_sentinel() [2/2]

    @@ -599,7 +566,6 @@

    sentinel& cpp_redis::subscriber::get_sentinel ( - void  ) @@ -610,8 +576,8 @@

    -

    ◆ is_connected()

    + +

    ◆ is_connected()

    - -

    ◆ is_reconnecting()

    + +

    ◆ is_reconnecting()

    @@ -663,7 +631,7 @@

    - const subscribe_callback_t &  + const read_callback_tcallback, @@ -681,7 +649,7 @@

    PSubscribes to the given channel and:

    Parameters
    @@ -710,7 +678,7 @@

    -

    punsubscribe from the given pattern The command is not effectively sent immediately, but stored inside an internal buffer until commit() is called.

    +

    punsubscribe from the given pattern The command is not effectively sent immediately, but stored inside an internal buffer until commit() is called.

    Parameters

    @@ -736,7 +704,7 @@

    - + @@ -754,7 +722,7 @@

    Subscribes to the given channel and:

    Parameters

    patternpattern to punsubscribe from
    const subscribe_callback_tconst read_callback_t callback,
    @@ -783,7 +751,7 @@

    -

    unsubscribe from the given channel The command is not effectively sent immediately, but stored inside an internal buffer until commit() is called.

    +

    unsubscribe from the given channel The command is not effectively sent immediately, but stored inside an internal buffer until commit() is called.

    Parameters

    @@ -802,7 +770,7 @@

    diff --git a/docs/html/classes.html b/docs/html/classes.html index 2d95ecf4..9d3dcd77 100644 --- a/docs/html/classes.html +++ b/docs/html/classes.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class Index @@ -32,18 +32,21 @@

    channelchannel to unsubscribe from

    - + +/* @license-end */
    @@ -56,7 +59,7 @@
    @@ -67,27 +70,27 @@
    a | b | c | e | f | i | l | r | s | t | w
    - - - - - - - @@ -99,7 +102,7 @@ diff --git a/docs/html/client_8hpp.html b/docs/html/client_8hpp.html index 9a7f712d..9d0509c2 100644 --- a/docs/html/client_8hpp.html +++ b/docs/html/client_8hpp.html @@ -3,8 +3,8 @@ - - + +cpp_redis: includes/cpp_redis/core/client.hpp File Reference @@ -55,7 +55,7 @@
    @@ -90,14 +90,14 @@

    Go to the source code of this file.

      a  
    -
      e  
    +
      a  
    +
      e  
    is_type_present (cpp_redis::helpers)   redis_error (cpp_redis)   tcp_client_iface (cpp_redis::network)   
    is_type_present< T1, T2 > (cpp_redis::helpers)   reply (cpp_redis)   
      w  
    +
    is_type_present< T1, T2 > (cpp_redis::helpers)   reply (cpp_redis)   
      w  
    array_builder (cpp_redis::builders)   error_builder (cpp_redis::builders)   
      l  
    +
    array_builder (cpp_redis::builders)   error_builder (cpp_redis::builders)   
      l  
    reply_builder (cpp_redis::builders)   
      b  
    -
      f  
    -
      s  
    +
      b  
    +
      f  
    +
      s  
    tcp_client_iface::write_request (cpp_redis::network)   
    logger (cpp_redis)   tcp_client_iface::write_result (cpp_redis::network)   
    back (cpp_redis::helpers)   front (cpp_redis::helpers)   logger_iface (cpp_redis)   sentinel (cpp_redis)   
    back< T > (cpp_redis::helpers)   
      i  
    -
      r  
    +
    back< T > (cpp_redis::helpers)   
      i  
    +
      r  
    sentinel::sentinel_def (cpp_redis)   
    client::bitfield_operation (cpp_redis)   simple_string_builder (cpp_redis::builders)   
    builder_iface (cpp_redis::builders)   integer_builder (cpp_redis::builders)   tcp_client_iface::read_request (cpp_redis::network)   subscriber (cpp_redis)   
    bulk_string_builder (cpp_redis::builders)   is_different_types (cpp_redis::helpers)   tcp_client_iface::read_result (cpp_redis::network)   
      t  
    +
    bulk_string_builder (cpp_redis::builders)   is_different_types (cpp_redis::helpers)   tcp_client_iface::read_result (cpp_redis::network)   
      t  
      c  
    +
      c  
    is_different_types< T1 > (cpp_redis::helpers)   redis_connection (cpp_redis::network)   
    tcp_client (cpp_redis::network)   
    client (cpp_redis)   
    -

    +

    Classes

    class  cpp_redis::client
     
    struct  cpp_redis::client::command_request
     
    - diff --git a/docs/html/client_8hpp_source.html b/docs/html/client_8hpp_source.html index 236825c7..1981bd86 100644 --- a/docs/html/client_8hpp_source.html +++ b/docs/html/client_8hpp_source.html @@ -3,8 +3,8 @@ - - + +cpp_redis: includes/cpp_redis/core/client.hpp Source File @@ -32,18 +32,21 @@

    +

    Namespaces

     cpp_redis
     
    - + +/* @license-end */
    @@ -69,52 +72,56 @@
    client.hpp

    -
    1 // The MIT License (MIT)
    2 //
    3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
    4 //
    5 // Permission is hereby granted, free of charge, to any person obtaining a copy
    6 // of this software and associated documentation files (the "Software"), to deal
    7 // in the Software without restriction, including without limitation the rights
    8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    9 // copies of the Software, and to permit persons to whom the Software is
    10 // furnished to do so, subject to the following conditions:
    11 //
    12 // The above copyright notice and this permission notice shall be included in all
    13 // copies or substantial portions of the Software.
    14 //
    15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    21 // SOFTWARE.
    22 
    23 #pragma once
    24 
    25 #include <atomic>
    26 #include <condition_variable>
    27 #include <functional>
    28 #include <future>
    29 #include <map>
    30 #include <mutex>
    31 #include <queue>
    32 #include <string>
    33 #include <vector>
    34 
    35 #include <cpp_redis/core/sentinel.hpp>
    36 #include <cpp_redis/helpers/variadic_template.hpp>
    37 #include <cpp_redis/misc/logger.hpp>
    38 #include <cpp_redis/network/redis_connection.hpp>
    39 #include <cpp_redis/network/tcp_client_iface.hpp>
    40 
    41 namespace cpp_redis {
    42 
    48 class client {
    49 public:
    54  enum class client_type {
    55  normal,
    56  master,
    57  pubsub,
    58  slave
    59  };
    60 
    71  enum class connect_state {
    72  dropped,
    73  start,
    74  sleeping,
    75  ok,
    76  failed,
    77  lookup_failed,
    78  stopped
    79  };
    80 
    81 public:
    82 #ifndef __CPP_REDIS_USE_CUSTOM_TCP_CLIENT
    83  client(void);
    85 #endif /* __CPP_REDIS_USE_CUSTOM_TCP_CLIENT */
    86 
    92  explicit client(const std::shared_ptr<network::tcp_client_iface>& tcp_client);
    93 
    95  ~client(void);
    96 
    98  client(const client&) = delete;
    100  client& operator=(const client&) = delete;
    101 
    102 public:
    106  typedef std::function<void(const std::string& host, std::size_t port, connect_state status)> connect_callback_t;
    107 
    118  void connect(
    119  const std::string& host = "127.0.0.1",
    120  std::size_t port = 6379,
    121  const connect_callback_t& connect_callback = nullptr,
    122  std::uint32_t timeout_msecs = 0,
    123  std::int32_t max_reconnects = 0,
    124  std::uint32_t reconnect_interval_msecs = 0);
    125 
    135  void connect(
    136  const std::string& name,
    137  const connect_callback_t& connect_callback = nullptr,
    138  std::uint32_t timeout_msecs = 0,
    139  std::int32_t max_reconnects = 0,
    140  std::uint32_t reconnect_interval_msecs = 0);
    141 
    145  bool is_connected(void) const;
    146 
    152  void disconnect(bool wait_for_removal = false);
    153 
    157  bool is_reconnecting(void) const;
    158 
    162  void cancel_reconnect(void);
    163 
    164 public:
    169  typedef std::function<void(reply&)> reply_callback_t;
    170 
    180  client& send(const std::vector<std::string>& redis_cmd, const reply_callback_t& callback);
    181 
    189  std::future<reply> send(const std::vector<std::string>& redis_cmd);
    190 
    199  client& commit(void);
    200 
    207  client& sync_commit(void);
    208 
    215  template <class Rep, class Period>
    216  client&
    217  sync_commit(const std::chrono::duration<Rep, Period>& timeout) {
    220  if (!is_reconnecting()) {
    221  try_commit();
    222  }
    223 
    224  std::unique_lock<std::mutex> lock_callback(m_callbacks_mutex);
    225  __CPP_REDIS_LOG(debug, "cpp_redis::client waiting for callbacks to complete");
    226  if (!m_sync_condvar.wait_for(lock_callback, timeout, [=] { return m_callbacks_running == 0 && m_commands.empty(); })) {
    227  __CPP_REDIS_LOG(debug, "cpp_redis::client finished waiting for callback");
    228  }
    229  else {
    230  __CPP_REDIS_LOG(debug, "cpp_redis::client timed out waiting for callback");
    231  }
    232 
    233  return *this;
    234  }
    235 
    236 private:
    240  bool should_reconnect(void) const;
    241 
    245  void resend_failed_commands(void);
    246 
    250  void sleep_before_next_reconnect_attempt(void);
    251 
    256  void reconnect(void);
    257 
    261  void re_auth(void);
    262 
    266  void re_select(void);
    267 
    268 private:
    276  void unprotected_send(const std::vector<std::string>& redis_cmd, const reply_callback_t& callback);
    277 
    285  void unprotected_auth(const std::string& password, const reply_callback_t& reply_callback);
    286 
    294  void unprotected_select(int index, const reply_callback_t& reply_callback);
    295 
    296 public:
    304  void add_sentinel(const std::string& host, std::size_t port, std::uint32_t timeout_msecs = 0);
    305 
    311  const sentinel& get_sentinel(void) const;
    312 
    319  sentinel& get_sentinel(void);
    320 
    324  void clear_sentinels(void);
    325 
    326 public:
    332  enum class aggregate_method {
    333  sum,
    334  min,
    335  max,
    336  server_default
    337  };
    338 
    345  std::string aggregate_method_to_string(aggregate_method method) const;
    346 
    347 public:
    352  enum class geo_unit {
    353  m,
    354  km,
    355  ft,
    356  mi
    357  };
    358 
    365  std::string geo_unit_to_string(geo_unit unit) const;
    366 
    367 public:
    373  enum class overflow_type {
    374  wrap,
    375  sat,
    376  fail,
    377  server_default
    378  };
    379 
    386  std::string overflow_type_to_string(overflow_type type) const;
    387 
    388 public:
    394  get,
    395  set,
    396  incrby
    397  };
    398 
    405  std::string
    407 
    408 public:
    417 
    421  std::string type;
    422 
    426  int offset;
    427 
    431  int value;
    432 
    437 
    446  static bitfield_operation get(const std::string& type, int offset, overflow_type overflow = overflow_type::server_default);
    447 
    457  static bitfield_operation set(const std::string& type, int offset, int value, overflow_type overflow = overflow_type::server_default);
    458 
    468  static bitfield_operation incrby(const std::string& type, int offset, int increment, overflow_type overflow = overflow_type::server_default);
    469  };
    470 
    471 public:
    472  client&
    473  append(const std::string& key, const std::string& value, const reply_callback_t& reply_callback);
    474  std::future<reply> append(const std::string& key, const std::string& value);
    475 
    476  client& auth(const std::string& password, const reply_callback_t& reply_callback);
    477  std::future<reply> auth(const std::string& password);
    478 
    479  client& bgrewriteaof(const reply_callback_t& reply_callback);
    480  std::future<reply> bgrewriteaof();
    481 
    482  client& bgsave(const reply_callback_t& reply_callback);
    483  std::future<reply> bgsave();
    484 
    485  client& bitcount(const std::string& key, const reply_callback_t& reply_callback);
    486  std::future<reply> bitcount(const std::string& key);
    487 
    488  client& bitcount(const std::string& key, int start, int end, const reply_callback_t& reply_callback);
    489  std::future<reply> bitcount(const std::string& key, int start, int end);
    490 
    491  client& bitfield(const std::string& key, const std::vector<bitfield_operation>& operations, const reply_callback_t& reply_callback);
    492  std::future<reply> bitfield(const std::string& key, const std::vector<bitfield_operation>& operations);
    493 
    494  client& bitop(const std::string& operation, const std::string& destkey, const std::vector<std::string>& keys, const reply_callback_t& reply_callback);
    495  std::future<reply> bitop(const std::string& operation, const std::string& destkey, const std::vector<std::string>& keys);
    496 
    497  client& bitpos(const std::string& key, int bit, const reply_callback_t& reply_callback);
    498  std::future<reply> bitpos(const std::string& key, int bit);
    499 
    500  client& bitpos(const std::string& key, int bit, int start, const reply_callback_t& reply_callback);
    501  std::future<reply> bitpos(const std::string& key, int bit, int start);
    502 
    503  client& bitpos(const std::string& key, int bit, int start, int end, const reply_callback_t& reply_callback);
    504  std::future<reply> bitpos(const std::string& key, int bit, int start, int end);
    505 
    506  client& blpop(const std::vector<std::string>& keys, int timeout, const reply_callback_t& reply_callback);
    507  std::future<reply> blpop(const std::vector<std::string>& keys, int timeout);
    508 
    509  client& brpop(const std::vector<std::string>& keys, int timeout, const reply_callback_t& reply_callback);
    510  std::future<reply> brpop(const std::vector<std::string>& keys, int timeout);
    511 
    512  client& brpoplpush(const std::string& src, const std::string& dst, int timeout, const reply_callback_t& reply_callback);
    513  std::future<reply> brpoplpush(const std::string& src, const std::string& dst, int timeout);
    514 
    515  template <typename T, typename... Ts>
    516  client& client_kill(const std::string& host, int port, const T& arg, const Ts&... args);
    517  client& client_kill(const std::string& host, int port);
    518  template <typename... Ts>
    519  client& client_kill(const char* host, int port, const Ts&... args);
    520  template <typename T, typename... Ts>
    521  client& client_kill(const T&, const Ts&...);
    522  template <typename T, typename... Ts>
    523  std::future<reply> client_kill_future(const T, const Ts...);
    524 
    525  client& client_list(const reply_callback_t& reply_callback);
    526  std::future<reply> client_list();
    527 
    528  client& client_getname(const reply_callback_t& reply_callback);
    529  std::future<reply> client_getname();
    530 
    531  client& client_pause(int timeout, const reply_callback_t& reply_callback);
    532  std::future<reply> client_pause(int timeout);
    533 
    534  client& client_reply(const std::string& mode, const reply_callback_t& reply_callback);
    535  std::future<reply> client_reply(const std::string& mode);
    536 
    537  client& client_setname(const std::string& name, const reply_callback_t& reply_callback);
    538  std::future<reply> client_setname(const std::string& name);
    539 
    540  client& cluster_addslots(const std::vector<std::string>& p_slots, const reply_callback_t& reply_callback);
    541  std::future<reply> cluster_addslots(const std::vector<std::string>& p_slots);
    542 
    543  client& cluster_count_failure_reports(const std::string& node_id, const reply_callback_t& reply_callback);
    544  std::future<reply> cluster_count_failure_reports(const std::string& node_id);
    545 
    546  client& cluster_countkeysinslot(const std::string& slot, const reply_callback_t& reply_callback);
    547  std::future<reply> cluster_countkeysinslot(const std::string& slot);
    548 
    549  client& cluster_delslots(const std::vector<std::string>& p_slots, const reply_callback_t& reply_callback);
    550  std::future<reply> cluster_delslots(const std::vector<std::string>& p_slots);
    551 
    552  client& cluster_failover(const reply_callback_t& reply_callback);
    553  std::future<reply> cluster_failover();
    554 
    555  client& cluster_failover(const std::string& mode, const reply_callback_t& reply_callback);
    556  std::future<reply> cluster_failover(const std::string& mode);
    557 
    558  client& cluster_forget(const std::string& node_id, const reply_callback_t& reply_callback);
    559  std::future<reply> cluster_forget(const std::string& node_id);
    560 
    561  client& cluster_getkeysinslot(const std::string& slot, int count, const reply_callback_t& reply_callback);
    562  std::future<reply> cluster_getkeysinslot(const std::string& slot, int count);
    563 
    564  client& cluster_info(const reply_callback_t& reply_callback);
    565  std::future<reply> cluster_info();
    566 
    567  client& cluster_keyslot(const std::string& key, const reply_callback_t& reply_callback);
    568  std::future<reply> cluster_keyslot(const std::string& key);
    569 
    570  client& cluster_meet(const std::string& ip, int port, const reply_callback_t& reply_callback);
    571  std::future<reply> cluster_meet(const std::string& ip, int port);
    572 
    573  client& cluster_nodes(const reply_callback_t& reply_callback);
    574  std::future<reply> cluster_nodes();
    575 
    576  client& cluster_replicate(const std::string& node_id, const reply_callback_t& reply_callback);
    577  std::future<reply> cluster_replicate(const std::string& node_id);
    578 
    579  client& cluster_reset(const reply_callback_t& reply_callback);
    580  client& cluster_reset(const std::string& mode, const reply_callback_t& reply_callback);
    581  std::future<reply> cluster_reset(const std::string& mode = "soft");
    582 
    583  client& cluster_saveconfig(const reply_callback_t& reply_callback);
    584  std::future<reply> cluster_saveconfig();
    585 
    586  client& cluster_set_config_epoch(const std::string& epoch, const reply_callback_t& reply_callback);
    587  std::future<reply> cluster_set_config_epoch(const std::string& epoch);
    588 
    589  client& cluster_setslot(const std::string& slot, const std::string& mode, const reply_callback_t& reply_callback);
    590  std::future<reply> cluster_setslot(const std::string& slot, const std::string& mode);
    591 
    592  client& cluster_setslot(const std::string& slot, const std::string& mode, const std::string& node_id, const reply_callback_t& reply_callback);
    593  std::future<reply> cluster_setslot(const std::string& slot, const std::string& mode, const std::string& node_id);
    594 
    595  client& cluster_slaves(const std::string& node_id, const reply_callback_t& reply_callback);
    596  std::future<reply> cluster_slaves(const std::string& node_id);
    597 
    598  client& cluster_slots(const reply_callback_t& reply_callback);
    599  std::future<reply> cluster_slots();
    600 
    601  client& command(const reply_callback_t& reply_callback);
    602  std::future<reply> command();
    603 
    604  client& command_count(const reply_callback_t& reply_callback);
    605  std::future<reply> command_count();
    606 
    607  client& command_getkeys(const reply_callback_t& reply_callback);
    608  std::future<reply> command_getkeys();
    609 
    610  client& command_info(const std::vector<std::string>& command_name, const reply_callback_t& reply_callback);
    611  std::future<reply> command_info(const std::vector<std::string>& command_name);
    612 
    613  client& config_get(const std::string& param, const reply_callback_t& reply_callback);
    614  std::future<reply> config_get(const std::string& param);
    615 
    616  client& config_rewrite(const reply_callback_t& reply_callback);
    617  std::future<reply> config_rewrite();
    618 
    619  client& config_set(const std::string& param, const std::string& val, const reply_callback_t& reply_callback);
    620  std::future<reply> config_set(const std::string& param, const std::string& val);
    621 
    622  client& config_resetstat(const reply_callback_t& reply_callback);
    623  std::future<reply> config_resetstat();
    624 
    625  client& dbsize(const reply_callback_t& reply_callback);
    626  std::future<reply> dbsize();
    627 
    628  client& debug_object(const std::string& key, const reply_callback_t& reply_callback);
    629  std::future<reply> debug_object(const std::string& key);
    630 
    631  client& debug_segfault(const reply_callback_t& reply_callback);
    632  std::future<reply> debug_segfault();
    633 
    634  client& decr(const std::string& key, const reply_callback_t& reply_callback);
    635  std::future<reply> decr(const std::string& key);
    636 
    637  client& decrby(const std::string& key, int val, const reply_callback_t& reply_callback);
    638  std::future<reply> decrby(const std::string& key, int val);
    639 
    640  client& del(const std::vector<std::string>& key, const reply_callback_t& reply_callback);
    641  std::future<reply> del(const std::vector<std::string>& key);
    642 
    643  client& discard(const reply_callback_t& reply_callback);
    644  std::future<reply> discard();
    645 
    646  client& dump(const std::string& key, const reply_callback_t& reply_callback);
    647  std::future<reply> dump(const std::string& key);
    648 
    649  client& echo(const std::string& msg, const reply_callback_t& reply_callback);
    650  std::future<reply> echo(const std::string& msg);
    651 
    652  client& eval(const std::string& script, int numkeys, const std::vector<std::string>& keys, const std::vector<std::string>& args, const reply_callback_t& reply_callback);
    653  std::future<reply> eval(const std::string& script, int numkeys, const std::vector<std::string>& keys, const std::vector<std::string>& args);
    654 
    655  client& evalsha(const std::string& sha1, int numkeys, const std::vector<std::string>& keys, const std::vector<std::string>& args, const reply_callback_t& reply_callback);
    656  std::future<reply> evalsha(const std::string& sha1, int numkeys, const std::vector<std::string>& keys, const std::vector<std::string>& args);
    657 
    658  client& exec(const reply_callback_t& reply_callback);
    659  std::future<reply> exec();
    660 
    661  client& exists(const std::vector<std::string>& keys, const reply_callback_t& reply_callback);
    662  std::future<reply> exists(const std::vector<std::string>& keys);
    663 
    664  client& expire(const std::string& key, int seconds, const reply_callback_t& reply_callback);
    665  std::future<reply> expire(const std::string& key, int seconds);
    666 
    667  client& expireat(const std::string& key, int timestamp, const reply_callback_t& reply_callback);
    668  std::future<reply> expireat(const std::string& key, int timestamp);
    669 
    670  client& flushall(const reply_callback_t& reply_callback);
    671  std::future<reply> flushall();
    672 
    673  client& flushdb(const reply_callback_t& reply_callback);
    674  std::future<reply> flushdb();
    675 
    676  client& geoadd(const std::string& key, const std::vector<std::tuple<std::string, std::string, std::string>>& long_lat_memb, const reply_callback_t& reply_callback);
    677  std::future<reply> geoadd(const std::string& key, const std::vector<std::tuple<std::string, std::string, std::string>>& long_lat_memb);
    678 
    679  client& geohash(const std::string& key, const std::vector<std::string>& members, const reply_callback_t& reply_callback);
    680  std::future<reply> geohash(const std::string& key, const std::vector<std::string>& members);
    681 
    682  client& geopos(const std::string& key, const std::vector<std::string>& members, const reply_callback_t& reply_callback);
    683  std::future<reply> geopos(const std::string& key, const std::vector<std::string>& members);
    684 
    685  client& geodist(const std::string& key, const std::string& member_1, const std::string& member_2, const reply_callback_t& reply_callback);
    686  client& geodist(const std::string& key, const std::string& member_1, const std::string& member_2, const std::string& unit, const reply_callback_t& reply_callback);
    687  std::future<reply> geodist(const std::string& key, const std::string& member_1, const std::string& member_2, const std::string& unit = "m");
    688 
    689  client& georadius(const std::string& key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const reply_callback_t& reply_callback);
    690  client& georadius(const std::string& key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const reply_callback_t& reply_callback);
    691  client& georadius(const std::string& key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string& store_key, const reply_callback_t& reply_callback);
    692  client& georadius(const std::string& key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string& store_key, const std::string& storedist_key, const reply_callback_t& reply_callback);
    693  client& georadius(const std::string& key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const std::string& store_key, const reply_callback_t& reply_callback);
    694  client& georadius(const std::string& key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const std::string& store_key, const std::string& storedist_key, const reply_callback_t& reply_callback);
    695  std::future<reply> georadius(const std::string& key, double longitude, double latitude, double radius, geo_unit unit, bool with_coord = false, bool with_dist = false, bool with_hash = false, bool asc_order = false, std::size_t count = 0, const std::string& store_key = "", const std::string& storedist_key = "");
    696 
    697  client& georadiusbymember(const std::string& key, const std::string& member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const reply_callback_t& reply_callback);
    698  client& georadiusbymember(const std::string& key, const std::string& member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const reply_callback_t& reply_callback);
    699  client& georadiusbymember(const std::string& key, const std::string& member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string& store_key, const reply_callback_t& reply_callback);
    700  client& georadiusbymember(const std::string& key, const std::string& member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string& store_key, const std::string& storedist_key, const reply_callback_t& reply_callback);
    701  client& georadiusbymember(const std::string& key, const std::string& member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const std::string& store_key, const reply_callback_t& reply_callback);
    702  client& georadiusbymember(const std::string& key, const std::string& member, double radius, geo_unit unit, bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count, const std::string& store_key, const std::string& storedist_key, const reply_callback_t& reply_callback);
    703  std::future<reply> georadiusbymember(const std::string& key, const std::string& member, double radius, geo_unit unit, bool with_coord = false, bool with_dist = false, bool with_hash = false, bool asc_order = false, std::size_t count = 0, const std::string& store_key = "", const std::string& storedist_key = "");
    704 
    705  client& get(const std::string& key, const reply_callback_t& reply_callback);
    706  std::future<reply> get(const std::string& key);
    707 
    708  client& getbit(const std::string& key, int offset, const reply_callback_t& reply_callback);
    709  std::future<reply> getbit(const std::string& key, int offset);
    710 
    711  client& getrange(const std::string& key, int start, int end, const reply_callback_t& reply_callback);
    712  std::future<reply> getrange(const std::string& key, int start, int end);
    713 
    714  client& getset(const std::string& key, const std::string& val, const reply_callback_t& reply_callback);
    715  std::future<reply> getset(const std::string& key, const std::string& val);
    716 
    717  client& hdel(const std::string& key, const std::vector<std::string>& fields, const reply_callback_t& reply_callback);
    718  std::future<reply> hdel(const std::string& key, const std::vector<std::string>& fields);
    719 
    720  client& hexists(const std::string& key, const std::string& field, const reply_callback_t& reply_callback);
    721  std::future<reply> hexists(const std::string& key, const std::string& field);
    722 
    723  client& hget(const std::string& key, const std::string& field, const reply_callback_t& reply_callback);
    724  std::future<reply> hget(const std::string& key, const std::string& field);
    725 
    726  client& hgetall(const std::string& key, const reply_callback_t& reply_callback);
    727  std::future<reply> hgetall(const std::string& key);
    728 
    729  client& hincrby(const std::string& key, const std::string& field, int incr, const reply_callback_t& reply_callback);
    730  std::future<reply> hincrby(const std::string& key, const std::string& field, int incr);
    731 
    732  client& hincrbyfloat(const std::string& key, const std::string& field, float incr, const reply_callback_t& reply_callback);
    733  std::future<reply> hincrbyfloat(const std::string& key, const std::string& field, float incr);
    734 
    735  client& hkeys(const std::string& key, const reply_callback_t& reply_callback);
    736  std::future<reply> hkeys(const std::string& key);
    737 
    738  client& hlen(const std::string& key, const reply_callback_t& reply_callback);
    739  std::future<reply> hlen(const std::string& key);
    740 
    741  client& hmget(const std::string& key, const std::vector<std::string>& fields, const reply_callback_t& reply_callback);
    742  std::future<reply> hmget(const std::string& key, const std::vector<std::string>& fields);
    743 
    744  client& hmset(const std::string& key, const std::vector<std::pair<std::string, std::string>>& field_val, const reply_callback_t& reply_callback);
    745  std::future<reply> hmset(const std::string& key, const std::vector<std::pair<std::string, std::string>>& field_val);
    746 
    747  client& hscan(const std::string& key, std::size_t cursor, const reply_callback_t& reply_callback);
    748  std::future<reply> hscan(const std::string& key, std::size_t cursor);
    749 
    750  client& hscan(const std::string& key, std::size_t cursor, const std::string& pattern, const reply_callback_t& reply_callback);
    751  std::future<reply> hscan(const std::string& key, std::size_t cursor, const std::string& pattern);
    752 
    753  client& hscan(const std::string& key, std::size_t cursor, std::size_t count, const reply_callback_t& reply_callback);
    754  std::future<reply> hscan(const std::string& key, std::size_t cursor, std::size_t count);
    755 
    756  client& hscan(const std::string& key, std::size_t cursor, const std::string& pattern, std::size_t count, const reply_callback_t& reply_callback);
    757  std::future<reply> hscan(const std::string& key, std::size_t cursor, const std::string& pattern, std::size_t count);
    758 
    759  client& hset(const std::string& key, const std::string& field, const std::string& value, const reply_callback_t& reply_callback);
    760  std::future<reply> hset(const std::string& key, const std::string& field, const std::string& value);
    761 
    762  client& hsetnx(const std::string& key, const std::string& field, const std::string& value, const reply_callback_t& reply_callback);
    763  std::future<reply> hsetnx(const std::string& key, const std::string& field, const std::string& value);
    764 
    765  client& hstrlen(const std::string& key, const std::string& field, const reply_callback_t& reply_callback);
    766  std::future<reply> hstrlen(const std::string& key, const std::string& field);
    767 
    768  client& hvals(const std::string& key, const reply_callback_t& reply_callback);
    769  std::future<reply> hvals(const std::string& key);
    770 
    771  client& incr(const std::string& key, const reply_callback_t& reply_callback);
    772  std::future<reply> incr(const std::string& key);
    773 
    774  client& incrby(const std::string& key, int incr, const reply_callback_t& reply_callback);
    775  std::future<reply> incrby(const std::string& key, int incr);
    776 
    777  client& incrbyfloat(const std::string& key, float incr, const reply_callback_t& reply_callback);
    778  std::future<reply> incrbyfloat(const std::string& key, float incr);
    779 
    780  client& info(const reply_callback_t& reply_callback);
    781  client& info(const std::string& section, const reply_callback_t& reply_callback);
    782  std::future<reply> info(const std::string& section = "default");
    783 
    784  client& keys(const std::string& pattern, const reply_callback_t& reply_callback);
    785  std::future<reply> keys(const std::string& pattern);
    786 
    787  client& lastsave(const reply_callback_t& reply_callback);
    788  std::future<reply> lastsave();
    789 
    790  client& lindex(const std::string& key, int index, const reply_callback_t& reply_callback);
    791  std::future<reply> lindex(const std::string& key, int index);
    792 
    793  client& linsert(const std::string& key, const std::string& before_after, const std::string& pivot, const std::string& value, const reply_callback_t& reply_callback);
    794  std::future<reply> linsert(const std::string& key, const std::string& before_after, const std::string& pivot, const std::string& value);
    795 
    796  client& llen(const std::string& key, const reply_callback_t& reply_callback);
    797  std::future<reply> llen(const std::string& key);
    798 
    799  client& lpop(const std::string& key, const reply_callback_t& reply_callback);
    800  std::future<reply> lpop(const std::string& key);
    801 
    802  client& lpush(const std::string& key, const std::vector<std::string>& values, const reply_callback_t& reply_callback);
    803  std::future<reply> lpush(const std::string& key, const std::vector<std::string>& values);
    804 
    805  client& lpushx(const std::string& key, const std::string& value, const reply_callback_t& reply_callback);
    806  std::future<reply> lpushx(const std::string& key, const std::string& value);
    807 
    808  client& lrange(const std::string& key, int start, int stop, const reply_callback_t& reply_callback);
    809  std::future<reply> lrange(const std::string& key, int start, int stop);
    810 
    811  client& lrem(const std::string& key, int count, const std::string& value, const reply_callback_t& reply_callback);
    812  std::future<reply> lrem(const std::string& key, int count, const std::string& value);
    813 
    814  client& lset(const std::string& key, int index, const std::string& value, const reply_callback_t& reply_callback);
    815  std::future<reply> lset(const std::string& key, int index, const std::string& value);
    816 
    817  client& ltrim(const std::string& key, int start, int stop, const reply_callback_t& reply_callback);
    818  std::future<reply> ltrim(const std::string& key, int start, int stop);
    819 
    820  client& mget(const std::vector<std::string>& keys, const reply_callback_t& reply_callback);
    821  std::future<reply> mget(const std::vector<std::string>& keys);
    822 
    823  client& migrate(const std::string& host, int port, const std::string& key, const std::string& dest_db, int timeout, const reply_callback_t& reply_callback);
    824  client& migrate(const std::string& host, int port, const std::string& key, const std::string& dest_db, int timeout, bool copy, bool replace, const std::vector<std::string>& keys, const reply_callback_t& reply_callback);
    825  std::future<reply> migrate(const std::string& host, int port, const std::string& key, const std::string& dest_db, int timeout, bool copy = false, bool replace = false, const std::vector<std::string>& keys = {});
    826 
    827  client& monitor(const reply_callback_t& reply_callback);
    828  std::future<reply> monitor();
    829 
    830  client& move(const std::string& key, const std::string& db, const reply_callback_t& reply_callback);
    831  std::future<reply> move(const std::string& key, const std::string& db);
    832 
    833  client& mset(const std::vector<std::pair<std::string, std::string>>& key_vals, const reply_callback_t& reply_callback);
    834  std::future<reply> mset(const std::vector<std::pair<std::string, std::string>>& key_vals);
    835 
    836  client& msetnx(const std::vector<std::pair<std::string, std::string>>& key_vals, const reply_callback_t& reply_callback);
    837  std::future<reply> msetnx(const std::vector<std::pair<std::string, std::string>>& key_vals);
    838 
    839  client& multi(const reply_callback_t& reply_callback);
    840  std::future<reply> multi();
    841 
    842  client& object(const std::string& subcommand, const std::vector<std::string>& args, const reply_callback_t& reply_callback);
    843  std::future<reply> object(const std::string& subcommand, const std::vector<std::string>& args);
    844 
    845  client& persist(const std::string& key, const reply_callback_t& reply_callback);
    846  std::future<reply> persist(const std::string& key);
    847 
    848  client& pexpire(const std::string& key, int milliseconds, const reply_callback_t& reply_callback);
    849  std::future<reply> pexpire(const std::string& key, int milliseconds);
    850 
    851  client& pexpireat(const std::string& key, int milliseconds_timestamp, const reply_callback_t& reply_callback);
    852  std::future<reply> pexpireat(const std::string& key, int milliseconds_timestamp);
    853 
    854  client& pfadd(const std::string& key, const std::vector<std::string>& elements, const reply_callback_t& reply_callback);
    855  std::future<reply> pfadd(const std::string& key, const std::vector<std::string>& elements);
    856 
    857  client& pfcount(const std::vector<std::string>& keys, const reply_callback_t& reply_callback);
    858  std::future<reply> pfcount(const std::vector<std::string>& keys);
    859 
    860  client& pfmerge(const std::string& destkey, const std::vector<std::string>& sourcekeys, const reply_callback_t& reply_callback);
    861  std::future<reply> pfmerge(const std::string& destkey, const std::vector<std::string>& sourcekeys);
    862 
    863  client& ping(const reply_callback_t& reply_callback);
    864  std::future<reply> ping();
    865 
    866  client& ping(const std::string& message, const reply_callback_t& reply_callback);
    867  std::future<reply> ping(const std::string& message);
    868 
    869  client& psetex(const std::string& key, int milliseconds, const std::string& val, const reply_callback_t& reply_callback);
    870  std::future<reply> psetex(const std::string& key, int milliseconds, const std::string& val);
    871 
    872  client& publish(const std::string& channel, const std::string& message, const reply_callback_t& reply_callback);
    873  std::future<reply> publish(const std::string& channel, const std::string& message);
    874 
    875  client& pubsub(const std::string& subcommand, const std::vector<std::string>& args, const reply_callback_t& reply_callback);
    876  std::future<reply> pubsub(const std::string& subcommand, const std::vector<std::string>& args);
    877 
    878  client& pttl(const std::string& key, const reply_callback_t& reply_callback);
    879  std::future<reply> pttl(const std::string& key);
    880 
    881  client& quit(const reply_callback_t& reply_callback);
    882  std::future<reply> quit();
    883 
    884  client& randomkey(const reply_callback_t& reply_callback);
    885  std::future<reply> randomkey();
    886 
    887  client& readonly(const reply_callback_t& reply_callback);
    888  std::future<reply> readonly();
    889 
    890  client& readwrite(const reply_callback_t& reply_callback);
    891  std::future<reply> readwrite();
    892 
    893  client& rename(const std::string& key, const std::string& newkey, const reply_callback_t& reply_callback);
    894  std::future<reply> rename(const std::string& key, const std::string& newkey);
    895 
    896  client& renamenx(const std::string& key, const std::string& newkey, const reply_callback_t& reply_callback);
    897  std::future<reply> renamenx(const std::string& key, const std::string& newkey);
    898 
    899  client& restore(const std::string& key, int ttl, const std::string& serialized_value, const reply_callback_t& reply_callback);
    900  std::future<reply> restore(const std::string& key, int ttl, const std::string& serialized_value);
    901 
    902  client& restore(const std::string& key, int ttl, const std::string& serialized_value, const std::string& replace, const reply_callback_t& reply_callback);
    903  std::future<reply> restore(const std::string& key, int ttl, const std::string& serialized_value, const std::string& replace);
    904 
    905  client& role(const reply_callback_t& reply_callback);
    906  std::future<reply> role();
    907 
    908  client& rpop(const std::string& key, const reply_callback_t& reply_callback);
    909  std::future<reply> rpop(const std::string& key);
    910 
    911  client& rpoplpush(const std::string& source, const std::string& destination, const reply_callback_t& reply_callback);
    912  std::future<reply> rpoplpush(const std::string& src, const std::string& dst);
    913 
    914  client& rpush(const std::string& key, const std::vector<std::string>& values, const reply_callback_t& reply_callback);
    915  std::future<reply> rpush(const std::string& key, const std::vector<std::string>& values);
    916 
    917  client& rpushx(const std::string& key, const std::string& value, const reply_callback_t& reply_callback);
    918  std::future<reply> rpushx(const std::string& key, const std::string& value);
    919 
    920  client& sadd(const std::string& key, const std::vector<std::string>& members, const reply_callback_t& reply_callback);
    921  std::future<reply> sadd(const std::string& key, const std::vector<std::string>& members);
    922 
    923  client& save(const reply_callback_t& reply_callback);
    924  std::future<reply> save();
    925 
    926  client& scan(std::size_t cursor, const reply_callback_t& reply_callback);
    927  std::future<reply> scan(std::size_t cursor);
    928 
    929  client& scan(std::size_t cursor, const std::string& pattern, const reply_callback_t& reply_callback);
    930  std::future<reply> scan(std::size_t cursor, const std::string& pattern);
    931 
    932  client& scan(std::size_t cursor, std::size_t count, const reply_callback_t& reply_callback);
    933  std::future<reply> scan(std::size_t cursor, std::size_t count);
    934 
    935  client& scan(std::size_t cursor, const std::string& pattern, std::size_t count, const reply_callback_t& reply_callback);
    936  std::future<reply> scan(std::size_t cursor, const std::string& pattern, std::size_t count);
    937 
    938  client& scard(const std::string& key, const reply_callback_t& reply_callback);
    939  std::future<reply> scard(const std::string& key);
    940 
    941  client& script_debug(const std::string& mode, const reply_callback_t& reply_callback);
    942  std::future<reply> script_debug(const std::string& mode);
    943 
    944  client& script_exists(const std::vector<std::string>& scripts, const reply_callback_t& reply_callback);
    945  std::future<reply> script_exists(const std::vector<std::string>& scripts);
    946 
    947  client& script_flush(const reply_callback_t& reply_callback);
    948  std::future<reply> script_flush();
    949 
    950  client& script_kill(const reply_callback_t& reply_callback);
    951  std::future<reply> script_kill();
    952 
    953  client& script_load(const std::string& script, const reply_callback_t& reply_callback);
    954  std::future<reply> script_load(const std::string& script);
    955 
    956  client& sdiff(const std::vector<std::string>& keys, const reply_callback_t& reply_callback);
    957  std::future<reply> sdiff(const std::vector<std::string>& keys);
    958 
    959  client& sdiffstore(const std::string& destination, const std::vector<std::string>& keys, const reply_callback_t& reply_callback);
    960  std::future<reply> sdiffstore(const std::string& dst, const std::vector<std::string>& keys);
    961 
    962  client& select(int index, const reply_callback_t& reply_callback);
    963  std::future<reply> select(int index);
    964 
    965  client& set(const std::string& key, const std::string& value, const reply_callback_t& reply_callback);
    966  std::future<reply> set(const std::string& key, const std::string& value);
    967 
    968  client& set_advanced(const std::string& key, const std::string& value, const reply_callback_t& reply_callback);
    969  client& set_advanced(const std::string& key, const std::string& value, bool ex, int ex_sec, bool px, int px_milli, bool nx, bool xx, const reply_callback_t& reply_callback);
    970  std::future<reply> set_advanced(const std::string& key, const std::string& value, bool ex = false, int ex_sec = 0, bool px = false, int px_milli = 0, bool nx = false, bool xx = false);
    971 
    972  client& setbit_(const std::string& key, int offset, const std::string& value, const reply_callback_t& reply_callback);
    973  std::future<reply> setbit_(const std::string& key, int offset, const std::string& value);
    974 
    975  client& setex(const std::string& key, int seconds, const std::string& value, const reply_callback_t& reply_callback);
    976  std::future<reply> setex(const std::string& key, int seconds, const std::string& value);
    977 
    978  client& setnx(const std::string& key, const std::string& value, const reply_callback_t& reply_callback);
    979  std::future<reply> setnx(const std::string& key, const std::string& value);
    980 
    981  client& setrange(const std::string& key, int offset, const std::string& value, const reply_callback_t& reply_callback);
    982  std::future<reply> setrange(const std::string& key, int offset, const std::string& value);
    983 
    984  client& shutdown(const reply_callback_t& reply_callback);
    985  std::future<reply> shutdown();
    986 
    987  client& shutdown(const std::string& save, const reply_callback_t& reply_callback);
    988  std::future<reply> shutdown(const std::string& save);
    989 
    990  client& sinter(const std::vector<std::string>& keys, const reply_callback_t& reply_callback);
    991  std::future<reply> sinter(const std::vector<std::string>& keys);
    992 
    993  client& sinterstore(const std::string& destination, const std::vector<std::string>& keys, const reply_callback_t& reply_callback);
    994  std::future<reply> sinterstore(const std::string& dst, const std::vector<std::string>& keys);
    995 
    996  client& sismember(const std::string& key, const std::string& member, const reply_callback_t& reply_callback);
    997  std::future<reply> sismember(const std::string& key, const std::string& member);
    998 
    999  client& slaveof(const std::string& host, int port, const reply_callback_t& reply_callback);
    1000  std::future<reply> slaveof(const std::string& host, int port);
    1001 
    1002  client& slowlog(const std::string subcommand, const reply_callback_t& reply_callback);
    1003  std::future<reply> slowlog(const std::string& subcommand);
    1004 
    1005  client& slowlog(const std::string subcommand, const std::string& argument, const reply_callback_t& reply_callback);
    1006  std::future<reply> slowlog(const std::string& subcommand, const std::string& argument);
    1007 
    1008  client& smembers(const std::string& key, const reply_callback_t& reply_callback);
    1009  std::future<reply> smembers(const std::string& key);
    1010 
    1011  client& smove(const std::string& source, const std::string& destination, const std::string& member, const reply_callback_t& reply_callback);
    1012  std::future<reply> smove(const std::string& src, const std::string& dst, const std::string& member);
    1013 
    1014  client& sort(const std::string& key, const reply_callback_t& reply_callback);
    1015  std::future<reply> sort(const std::string& key);
    1016 
    1017  client& sort(const std::string& key, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const reply_callback_t& reply_callback);
    1018  std::future<reply> sort(const std::string& key, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha);
    1019 
    1020  client& sort(const std::string& key, std::size_t offset, std::size_t count, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const reply_callback_t& reply_callback);
    1021  std::future<reply> sort(const std::string& key, std::size_t offset, std::size_t count, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha);
    1022 
    1023  client& sort(const std::string& key, const std::string& by_pattern, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const reply_callback_t& reply_callback);
    1024  std::future<reply> sort(const std::string& key, const std::string& by_pattern, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha);
    1025 
    1026  client& sort(const std::string& key, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const std::string& store_dest, const reply_callback_t& reply_callback);
    1027  std::future<reply> sort(const std::string& key, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const std::string& store_dest);
    1028 
    1029  client& sort(const std::string& key, std::size_t offset, std::size_t count, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const std::string& store_dest, const reply_callback_t& reply_callback);
    1030  std::future<reply> sort(const std::string& key, std::size_t offset, std::size_t count, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const std::string& store_dest);
    1031 
    1032  client& sort(const std::string& key, const std::string& by_pattern, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const std::string& store_dest, const reply_callback_t& reply_callback);
    1033  std::future<reply> sort(const std::string& key, const std::string& by_pattern, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const std::string& store_dest);
    1034 
    1035  client& sort(const std::string& key, const std::string& by_pattern, std::size_t offset, std::size_t count, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const reply_callback_t& reply_callback);
    1036  std::future<reply> sort(const std::string& key, const std::string& by_pattern, std::size_t offset, std::size_t count, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha);
    1037 
    1038  client& sort(const std::string& key, const std::string& by_pattern, std::size_t offset, std::size_t count, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const std::string& store_dest, const reply_callback_t& reply_callback);
    1039  std::future<reply> sort(const std::string& key, const std::string& by_pattern, std::size_t offset, std::size_t count, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const std::string& store_dest);
    1040 
    1041  client& spop(const std::string& key, const reply_callback_t& reply_callback);
    1042  std::future<reply> spop(const std::string& key);
    1043 
    1044  client& spop(const std::string& key, int count, const reply_callback_t& reply_callback);
    1045  std::future<reply> spop(const std::string& key, int count);
    1046 
    1047  client& srandmember(const std::string& key, const reply_callback_t& reply_callback);
    1048  std::future<reply> srandmember(const std::string& key);
    1049 
    1050  client& srandmember(const std::string& key, int count, const reply_callback_t& reply_callback);
    1051  std::future<reply> srandmember(const std::string& key, int count);
    1052 
    1053  client& srem(const std::string& key, const std::vector<std::string>& members, const reply_callback_t& reply_callback);
    1054  std::future<reply> srem(const std::string& key, const std::vector<std::string>& members);
    1055 
    1056  client& sscan(const std::string& key, std::size_t cursor, const reply_callback_t& reply_callback);
    1057  std::future<reply> sscan(const std::string& key, std::size_t cursor);
    1058 
    1059  client& sscan(const std::string& key, std::size_t cursor, const std::string& pattern, const reply_callback_t& reply_callback);
    1060  std::future<reply> sscan(const std::string& key, std::size_t cursor, const std::string& pattern);
    1061 
    1062  client& sscan(const std::string& key, std::size_t cursor, std::size_t count, const reply_callback_t& reply_callback);
    1063  std::future<reply> sscan(const std::string& key, std::size_t cursor, std::size_t count);
    1064 
    1065  client& sscan(const std::string& key, std::size_t cursor, const std::string& pattern, std::size_t count, const reply_callback_t& reply_callback);
    1066  std::future<reply> sscan(const std::string& key, std::size_t cursor, const std::string& pattern, std::size_t count);
    1067 
    1068  client& strlen(const std::string& key, const reply_callback_t& reply_callback);
    1069  std::future<reply> strlen(const std::string& key);
    1070 
    1071  client& sunion(const std::vector<std::string>& keys, const reply_callback_t& reply_callback);
    1072  std::future<reply> sunion(const std::vector<std::string>& keys);
    1073 
    1074  client& sunionstore(const std::string& destination, const std::vector<std::string>& keys, const reply_callback_t& reply_callback);
    1075  std::future<reply> sunionstore(const std::string& dst, const std::vector<std::string>& keys);
    1076 
    1077  client& sync(const reply_callback_t& reply_callback);
    1078  std::future<reply> sync();
    1079 
    1080  client& time(const reply_callback_t& reply_callback);
    1081  std::future<reply> time();
    1082 
    1083  client& ttl(const std::string& key, const reply_callback_t& reply_callback);
    1084  std::future<reply> ttl(const std::string& key);
    1085 
    1086  client& type(const std::string& key, const reply_callback_t& reply_callback);
    1087  std::future<reply> type(const std::string& key);
    1088 
    1089  client& unwatch(const reply_callback_t& reply_callback);
    1090  std::future<reply> unwatch();
    1091 
    1092  client& wait(int numslaves, int timeout, const reply_callback_t& reply_callback);
    1093  std::future<reply> wait(int numslaves, int timeout);
    1094 
    1095  client& watch(const std::vector<std::string>& keys, const reply_callback_t& reply_callback);
    1096  std::future<reply> watch(const std::vector<std::string>& keys);
    1097 
    1098  client& zadd(const std::string& key, const std::vector<std::string>& options, const std::multimap<std::string, std::string>& score_members, const reply_callback_t& reply_callback);
    1099  std::future<reply> zadd(const std::string& key, const std::vector<std::string>& options, const std::multimap<std::string, std::string>& score_members);
    1100 
    1101  client& zcard(const std::string& key, const reply_callback_t& reply_callback);
    1102  std::future<reply> zcard(const std::string& key);
    1103 
    1104  client& zcount(const std::string& key, int min, int max, const reply_callback_t& reply_callback);
    1105  std::future<reply> zcount(const std::string& key, int min, int max);
    1106 
    1107  client& zcount(const std::string& key, double min, double max, const reply_callback_t& reply_callback);
    1108  std::future<reply> zcount(const std::string& key, double min, double max);
    1109 
    1110  client& zcount(const std::string& key, const std::string& min, const std::string& max, const reply_callback_t& reply_callback);
    1111  std::future<reply> zcount(const std::string& key, const std::string& min, const std::string& max);
    1112 
    1113  client& zincrby(const std::string& key, int incr, const std::string& member, const reply_callback_t& reply_callback);
    1114  std::future<reply> zincrby(const std::string& key, int incr, const std::string& member);
    1115 
    1116  client& zincrby(const std::string& key, double incr, const std::string& member, const reply_callback_t& reply_callback);
    1117  std::future<reply> zincrby(const std::string& key, double incr, const std::string& member);
    1118 
    1119  client& zincrby(const std::string& key, const std::string& incr, const std::string& member, const reply_callback_t& reply_callback);
    1120  std::future<reply> zincrby(const std::string& key, const std::string& incr, const std::string& member);
    1121 
    1122  client& zinterstore(const std::string& destination, std::size_t numkeys, const std::vector<std::string>& keys, const std::vector<std::size_t> weights, aggregate_method method, const reply_callback_t& reply_callback);
    1123  std::future<reply> zinterstore(const std::string& destination, std::size_t numkeys, const std::vector<std::string>& keys, const std::vector<std::size_t> weights, aggregate_method method);
    1124 
    1125  client& zlexcount(const std::string& key, int min, int max, const reply_callback_t& reply_callback);
    1126  std::future<reply> zlexcount(const std::string& key, int min, int max);
    1127 
    1128  client& zlexcount(const std::string& key, double min, double max, const reply_callback_t& reply_callback);
    1129  std::future<reply> zlexcount(const std::string& key, double min, double max);
    1130 
    1131  client& zlexcount(const std::string& key, const std::string& min, const std::string& max, const reply_callback_t& reply_callback);
    1132  std::future<reply> zlexcount(const std::string& key, const std::string& min, const std::string& max);
    1133 
    1134  client& zrange(const std::string& key, int start, int stop, const reply_callback_t& reply_callback);
    1135  client& zrange(const std::string& key, int start, int stop, bool withscores, const reply_callback_t& reply_callback);
    1136  std::future<reply> zrange(const std::string& key, int start, int stop, bool withscores = false);
    1137 
    1138  client& zrange(const std::string& key, double start, double stop, const reply_callback_t& reply_callback);
    1139  client& zrange(const std::string& key, double start, double stop, bool withscores, const reply_callback_t& reply_callback);
    1140  std::future<reply> zrange(const std::string& key, double start, double stop, bool withscores = false);
    1141 
    1142  client& zrange(const std::string& key, const std::string& start, const std::string& stop, const reply_callback_t& reply_callback);
    1143  client& zrange(const std::string& key, const std::string& start, const std::string& stop, bool withscores, const reply_callback_t& reply_callback);
    1144  std::future<reply> zrange(const std::string& key, const std::string& start, const std::string& stop, bool withscores = false);
    1145 
    1146  client& zrangebylex(const std::string& key, int min, int max, const reply_callback_t& reply_callback);
    1147  client& zrangebylex(const std::string& key, int min, int max, bool withscores, const reply_callback_t& reply_callback);
    1148  std::future<reply> zrangebylex(const std::string& key, int min, int max, bool withscores = false);
    1149 
    1150  client& zrangebylex(const std::string& key, double min, double max, const reply_callback_t& reply_callback);
    1151  client& zrangebylex(const std::string& key, double min, double max, bool withscores, const reply_callback_t& reply_callback);
    1152  std::future<reply> zrangebylex(const std::string& key, double min, double max, bool withscores = false);
    1153 
    1154  client& zrangebylex(const std::string& key, const std::string& min, const std::string& max, const reply_callback_t& reply_callback);
    1155  client& zrangebylex(const std::string& key, const std::string& min, const std::string& max, bool withscores, const reply_callback_t& reply_callback);
    1156  std::future<reply> zrangebylex(const std::string& key, const std::string& min, const std::string& max, bool withscores = false);
    1157 
    1158  client& zrangebylex(const std::string& key, int min, int max, std::size_t offset, std::size_t count, const reply_callback_t& reply_callback);
    1159  client& zrangebylex(const std::string& key, int min, int max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1160  std::future<reply> zrangebylex(const std::string& key, int min, int max, std::size_t offset, std::size_t count, bool withscores = false);
    1161 
    1162  client& zrangebylex(const std::string& key, double min, double max, std::size_t offset, std::size_t count, const reply_callback_t& reply_callback);
    1163  client& zrangebylex(const std::string& key, double min, double max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1164  std::future<reply> zrangebylex(const std::string& key, double min, double max, std::size_t offset, std::size_t count, bool withscores = false);
    1165 
    1166  client& zrangebylex(const std::string& key, const std::string& min, const std::string& max, std::size_t offset, std::size_t count, const reply_callback_t& reply_callback);
    1167  client& zrangebylex(const std::string& key, const std::string& min, const std::string& max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1168  std::future<reply> zrangebylex(const std::string& key, const std::string& min, const std::string& max, std::size_t offset, std::size_t count, bool withscores = false);
    1169 
    1170  client& zrangebyscore(const std::string& key, int min, int max, const reply_callback_t& reply_callback);
    1171  client& zrangebyscore(const std::string& key, int min, int max, bool withscores, const reply_callback_t& reply_callback);
    1172  std::future<reply> zrangebyscore(const std::string& key, int min, int max, bool withscores = false);
    1173 
    1174  client& zrangebyscore(const std::string& key, double min, double max, const reply_callback_t& reply_callback);
    1175  client& zrangebyscore(const std::string& key, double min, double max, bool withscores, const reply_callback_t& reply_callback);
    1176  std::future<reply> zrangebyscore(const std::string& key, double min, double max, bool withscores = false);
    1177 
    1178  client& zrangebyscore(const std::string& key, const std::string& min, const std::string& max, const reply_callback_t& reply_callback);
    1179  client& zrangebyscore(const std::string& key, const std::string& min, const std::string& max, bool withscores, const reply_callback_t& reply_callback);
    1180  std::future<reply> zrangebyscore(const std::string& key, const std::string& min, const std::string& max, bool withscores = false);
    1181 
    1182  client& zrangebyscore(const std::string& key, int min, int max, std::size_t offset, std::size_t count, const reply_callback_t& reply_callback);
    1183  client& zrangebyscore(const std::string& key, int min, int max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1184  std::future<reply> zrangebyscore(const std::string& key, int min, int max, std::size_t offset, std::size_t count, bool withscores = false);
    1185 
    1186  client& zrangebyscore(const std::string& key, double min, double max, std::size_t offset, std::size_t count, const reply_callback_t& reply_callback);
    1187  client& zrangebyscore(const std::string& key, double min, double max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1188  std::future<reply> zrangebyscore(const std::string& key, double min, double max, std::size_t offset, std::size_t count, bool withscores = false);
    1189 
    1190  client& zrangebyscore(const std::string& key, const std::string& min, const std::string& max, std::size_t offset, std::size_t count, const reply_callback_t& reply_callback);
    1191  client& zrangebyscore(const std::string& key, const std::string& min, const std::string& max, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1192  std::future<reply> zrangebyscore(const std::string& key, const std::string& min, const std::string& max, std::size_t offset, std::size_t count, bool withscores = false);
    1193 
    1194  client& zrank(const std::string& key, const std::string& member, const reply_callback_t& reply_callback);
    1195  std::future<reply> zrank(const std::string& key, const std::string& member);
    1196 
    1197  client& zrem(const std::string& key, const std::vector<std::string>& members, const reply_callback_t& reply_callback);
    1198  std::future<reply> zrem(const std::string& key, const std::vector<std::string>& members);
    1199 
    1200  client& zremrangebylex(const std::string& key, int min, int max, const reply_callback_t& reply_callback);
    1201  std::future<reply> zremrangebylex(const std::string& key, int min, int max);
    1202 
    1203  client& zremrangebylex(const std::string& key, double min, double max, const reply_callback_t& reply_callback);
    1204  std::future<reply> zremrangebylex(const std::string& key, double min, double max);
    1205 
    1206  client& zremrangebylex(const std::string& key, const std::string& min, const std::string& max, const reply_callback_t& reply_callback);
    1207  std::future<reply> zremrangebylex(const std::string& key, const std::string& min, const std::string& max);
    1208 
    1209  client& zremrangebyrank(const std::string& key, int start, int stop, const reply_callback_t& reply_callback);
    1210  std::future<reply> zremrangebyrank(const std::string& key, int start, int stop);
    1211 
    1212  client& zremrangebyrank(const std::string& key, double start, double stop, const reply_callback_t& reply_callback);
    1213  std::future<reply> zremrangebyrank(const std::string& key, double start, double stop);
    1214 
    1215  client& zremrangebyrank(const std::string& key, const std::string& start, const std::string& stop, const reply_callback_t& reply_callback);
    1216  std::future<reply> zremrangebyrank(const std::string& key, const std::string& start, const std::string& stop);
    1217 
    1218  client& zremrangebyscore(const std::string& key, int min, int max, const reply_callback_t& reply_callback);
    1219  std::future<reply> zremrangebyscore(const std::string& key, int min, int max);
    1220 
    1221  client& zremrangebyscore(const std::string& key, double min, double max, const reply_callback_t& reply_callback);
    1222  std::future<reply> zremrangebyscore(const std::string& key, double min, double max);
    1223 
    1224  client& zremrangebyscore(const std::string& key, const std::string& min, const std::string& max, const reply_callback_t& reply_callback);
    1225  std::future<reply> zremrangebyscore(const std::string& key, const std::string& min, const std::string& max);
    1226 
    1227  client& zrevrange(const std::string& key, int start, int stop, const reply_callback_t& reply_callback);
    1228  client& zrevrange(const std::string& key, int start, int stop, bool withscores, const reply_callback_t& reply_callback);
    1229  std::future<reply> zrevrange(const std::string& key, int start, int stop, bool withscores = false);
    1230 
    1231  client& zrevrange(const std::string& key, double start, double stop, const reply_callback_t& reply_callback);
    1232  client& zrevrange(const std::string& key, double start, double stop, bool withscores, const reply_callback_t& reply_callback);
    1233  std::future<reply> zrevrange(const std::string& key, double start, double stop, bool withscores = false);
    1234 
    1235  client& zrevrange(const std::string& key, const std::string& start, const std::string& stop, const reply_callback_t& reply_callback);
    1236  client& zrevrange(const std::string& key, const std::string& start, const std::string& stop, bool withscores, const reply_callback_t& reply_callback);
    1237  std::future<reply> zrevrange(const std::string& key, const std::string& start, const std::string& stop, bool withscores = false);
    1238 
    1239  client& zrevrangebylex(const std::string& key, int max, int min, const reply_callback_t& reply_callback);
    1240  client& zrevrangebylex(const std::string& key, int max, int min, bool withscores, const reply_callback_t& reply_callback);
    1241  std::future<reply> zrevrangebylex(const std::string& key, int max, int min, bool withscores = false);
    1242 
    1243  client& zrevrangebylex(const std::string& key, double max, double min, const reply_callback_t& reply_callback);
    1244  client& zrevrangebylex(const std::string& key, double max, double min, bool withscores, const reply_callback_t& reply_callback);
    1245  std::future<reply> zrevrangebylex(const std::string& key, double max, double min, bool withscores = false);
    1246 
    1247  client& zrevrangebylex(const std::string& key, const std::string& max, const std::string& min, const reply_callback_t& reply_callback);
    1248  client& zrevrangebylex(const std::string& key, const std::string& max, const std::string& min, bool withscores, const reply_callback_t& reply_callback);
    1249  std::future<reply> zrevrangebylex(const std::string& key, const std::string& max, const std::string& min, bool withscores = false);
    1250 
    1251  client& zrevrangebylex(const std::string& key, int max, int min, std::size_t offset, std::size_t count, const reply_callback_t& reply_callback);
    1252  client& zrevrangebylex(const std::string& key, int max, int min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1253  std::future<reply> zrevrangebylex(const std::string& key, int max, int min, std::size_t offset, std::size_t count, bool withscores = false);
    1254 
    1255  client& zrevrangebylex(const std::string& key, double max, double min, std::size_t offset, std::size_t count, const reply_callback_t& reply_callback);
    1256  client& zrevrangebylex(const std::string& key, double max, double min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1257  std::future<reply> zrevrangebylex(const std::string& key, double max, double min, std::size_t offset, std::size_t count, bool withscores = false);
    1258 
    1259  client& zrevrangebylex(const std::string& key, const std::string& max, const std::string& min, std::size_t offset, std::size_t count, const reply_callback_t& reply_callback);
    1260  client& zrevrangebylex(const std::string& key, const std::string& max, const std::string& min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1261  std::future<reply> zrevrangebylex(const std::string& key, const std::string& max, const std::string& min, std::size_t offset, std::size_t count, bool withscores = false);
    1262 
    1263  client& zrevrangebyscore(const std::string& key, int max, int min, const reply_callback_t& reply_callback);
    1264  client& zrevrangebyscore(const std::string& key, int max, int min, bool withscores, const reply_callback_t& reply_callback);
    1265  std::future<reply> zrevrangebyscore(const std::string& key, int max, int min, bool withscores = false);
    1266 
    1267  client& zrevrangebyscore(const std::string& key, double max, double min, const reply_callback_t& reply_callback);
    1268  client& zrevrangebyscore(const std::string& key, double max, double min, bool withscores, const reply_callback_t& reply_callback);
    1269  std::future<reply> zrevrangebyscore(const std::string& key, double max, double min, bool withscores = false);
    1270 
    1271  client& zrevrangebyscore(const std::string& key, const std::string& max, const std::string& min, const reply_callback_t& reply_callback);
    1272  client& zrevrangebyscore(const std::string& key, const std::string& max, const std::string& min, bool withscores, const reply_callback_t& reply_callback);
    1273  std::future<reply> zrevrangebyscore(const std::string& key, const std::string& max, const std::string& min, bool withscores = false);
    1274 
    1275  client& zrevrangebyscore(const std::string& key, int max, int min, std::size_t offset, std::size_t count, const reply_callback_t& reply_callback);
    1276  client& zrevrangebyscore(const std::string& key, int max, int min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1277  std::future<reply> zrevrangebyscore(const std::string& key, int max, int min, std::size_t offset, std::size_t count, bool withscores = false);
    1278 
    1279  client& zrevrangebyscore(const std::string& key, double max, double min, std::size_t offset, std::size_t count, const reply_callback_t& reply_callback);
    1280  client& zrevrangebyscore(const std::string& key, double max, double min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1281  std::future<reply> zrevrangebyscore(const std::string& key, double max, double min, std::size_t offset, std::size_t count, bool withscores = false);
    1282 
    1283  client& zrevrangebyscore(const std::string& key, const std::string& max, const std::string& min, std::size_t offset, std::size_t count, const reply_callback_t& reply_callback);
    1284  client& zrevrangebyscore(const std::string& key, const std::string& max, const std::string& min, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1285  std::future<reply> zrevrangebyscore(const std::string& key, const std::string& max, const std::string& min, std::size_t offset, std::size_t count, bool withscores = false);
    1286 
    1287  client& zrevrank(const std::string& key, const std::string& member, const reply_callback_t& reply_callback);
    1288  std::future<reply> zrevrank(const std::string& key, const std::string& member);
    1289 
    1290  client& zscan(const std::string& key, std::size_t cursor, const reply_callback_t& reply_callback);
    1291  std::future<reply> zscan(const std::string& key, std::size_t cursor);
    1292 
    1293  client& zscan(const std::string& key, std::size_t cursor, const std::string& pattern, const reply_callback_t& reply_callback);
    1294  std::future<reply> zscan(const std::string& key, std::size_t cursor, const std::string& pattern);
    1295 
    1296  client& zscan(const std::string& key, std::size_t cursor, std::size_t count, const reply_callback_t& reply_callback);
    1297  std::future<reply> zscan(const std::string& key, std::size_t cursor, std::size_t count);
    1298 
    1299  client& zscan(const std::string& key, std::size_t cursor, const std::string& pattern, std::size_t count, const reply_callback_t& reply_callback);
    1300  std::future<reply> zscan(const std::string& key, std::size_t cursor, const std::string& pattern, std::size_t count);
    1301 
    1302  client& zscore(const std::string& key, const std::string& member, const reply_callback_t& reply_callback);
    1303  std::future<reply> zscore(const std::string& key, const std::string& member);
    1304 
    1305  client& zunionstore(const std::string& destination, std::size_t numkeys, const std::vector<std::string>& keys, const std::vector<std::size_t> weights, aggregate_method method, const reply_callback_t& reply_callback);
    1306  std::future<reply> zunionstore(const std::string& destination, std::size_t numkeys, const std::vector<std::string>& keys, const std::vector<std::size_t> weights, aggregate_method method);
    1307 
    1308 private:
    1310  template <typename T>
    1311  typename std::enable_if<std::is_same<T, client_type>::value>::type
    1312  client_kill_unpack_arg(std::vector<std::string>& redis_cmd, reply_callback_t&, client_type type);
    1313 
    1314  template <typename T>
    1315  typename std::enable_if<std::is_same<T, bool>::value>::type
    1316  client_kill_unpack_arg(std::vector<std::string>& redis_cmd, reply_callback_t&, bool skip);
    1317 
    1318  template <typename T>
    1319  typename std::enable_if<std::is_integral<T>::value>::type
    1320  client_kill_unpack_arg(std::vector<std::string>& redis_cmd, reply_callback_t&, uint64_t id);
    1321 
    1322  template <typename T>
    1323  typename std::enable_if<std::is_class<T>::value>::type
    1324  client_kill_unpack_arg(std::vector<std::string>&, reply_callback_t& reply_callback, const T& cb);
    1325 
    1326  template <typename T, typename... Ts>
    1327  void
    1328  client_kill_impl(std::vector<std::string>& redis_cmd, reply_callback_t& reply, const T& arg, const Ts&... args);
    1329 
    1330  template <typename T>
    1331  void
    1332  client_kill_impl(std::vector<std::string>& redis_cmd, reply_callback_t& reply, const T& arg);
    1333 
    1334 private:
    1336  client& sort(const std::string& key, const std::string& by_pattern, bool limit, std::size_t offset, std::size_t count, const std::vector<std::string>& get_patterns, bool asc_order, bool alpha, const std::string& store_dest, const reply_callback_t& reply_callback);
    1337 
    1339  client& zrevrangebyscore(const std::string& key, const std::string& max, const std::string& min, bool limit, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1340 
    1342  client& zrangebyscore(const std::string& key, const std::string& min, const std::string& max, bool limit, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1343 
    1345  client& zrevrangebylex(const std::string& key, const std::string& max, const std::string& min, bool limit, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1346 
    1348  client& zrangebylex(const std::string& key, const std::string& min, const std::string& max, bool limit, std::size_t offset, std::size_t count, bool withscores, const reply_callback_t& reply_callback);
    1349 
    1350 private:
    1357  void connection_receive_handler(network::redis_connection& connection, reply& reply);
    1358 
    1364  void connection_disconnection_handler(network::redis_connection& connection);
    1365 
    1369  void clear_callbacks(void);
    1370 
    1375  void try_commit(void);
    1376 
    1378  std::future<reply> exec_cmd(const std::function<client&(const reply_callback_t&)>& f);
    1379 
    1380 private:
    1384  struct command_request {
    1385  std::vector<std::string> command;
    1386  reply_callback_t callback;
    1387  };
    1388 
    1389 private:
    1393  std::string m_redis_server;
    1397  std::size_t m_redis_port = 0;
    1401  std::string m_master_name;
    1405  std::string m_password;
    1409  int m_database_index = 0;
    1410 
    1414  network::redis_connection m_client;
    1415 
    1419  cpp_redis::sentinel m_sentinel;
    1420 
    1424  std::uint32_t m_connect_timeout_msecs = 0;
    1428  std::int32_t m_max_reconnects = 0;
    1432  std::int32_t m_current_reconnect_attempts = 0;
    1436  std::uint32_t m_reconnect_interval_msecs = 0;
    1437 
    1441  std::atomic_bool m_reconnecting;
    1445  std::atomic_bool m_cancel;
    1446 
    1450  std::queue<command_request> m_commands;
    1451 
    1455  connect_callback_t m_connect_callback;
    1456 
    1460  std::mutex m_callbacks_mutex;
    1461 
    1465  std::condition_variable m_sync_condvar;
    1466 
    1470  std::atomic<unsigned int> m_callbacks_running;
    1471 }; // namespace cpp_redis
    1472 
    1473 } // namespace cpp_redis
    1474 
    1475 #include <cpp_redis/impl/client.ipp>
    Definition: redis_connection.hpp:45
    -
    std::future< reply > client_kill_future(const T, const Ts...)
    Definition: client.ipp:122
    -
    client(void)
    ctor
    +
    1 // The MIT License (MIT)
    2 //
    3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
    4 //
    5 // Permission is hereby granted, free of charge, to any person obtaining a copy
    6 // of this software and associated documentation files (the "Software"), to deal
    7 // in the Software without restriction, including without limitation the rights
    8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    9 // copies of the Software, and to permit persons to whom the Software is
    10 // furnished to do so, subject to the following conditions:
    11 //
    12 // The above copyright notice and this permission notice shall be included in all
    13 // copies or substantial portions of the Software.
    14 //
    15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    21 // SOFTWARE.
    22 
    23 #pragma once
    24 
    25 #include <atomic>
    26 #include <condition_variable>
    27 #include <functional>
    28 #include <future>
    29 #include <map>
    30 #include <mutex>
    31 #include <queue>
    32 #include <string>
    33 #include <vector>
    34 
    35 #include <cpp_redis/core/sentinel.hpp>
    36 #include <cpp_redis/helpers/variadic_template.hpp>
    37 #include <cpp_redis/misc/logger.hpp>
    38 #include <cpp_redis/network/redis_connection.hpp>
    39 #include <cpp_redis/network/tcp_client_iface.hpp>
    40 
    41 namespace cpp_redis {
    42 
    48  class client {
    49  public:
    54  enum class client_type {
    55  normal,
    56  master,
    57  pubsub,
    58  slave
    59  };
    60 
    71  enum class connect_state {
    72  dropped,
    73  start,
    74  sleeping,
    75  ok,
    76  failed,
    77  lookup_failed,
    78  stopped
    79  };
    80 
    81  public:
    82 #ifndef __CPP_REDIS_USE_CUSTOM_TCP_CLIENT
    83 
    85  client();
    86 
    87 #endif /* __CPP_REDIS_USE_CUSTOM_TCP_CLIENT */
    88 
    94  explicit client(const std::shared_ptr<network::tcp_client_iface> &tcp_client);
    95 
    97  ~client();
    98 
    100  client(const client &) = delete;
    101 
    103  client &operator=(const client &) = delete;
    104 
    105  public:
    109  typedef std::function<void(const std::string &host, std::size_t port, connect_state status)> connect_callback_t;
    110 
    121  void connect(
    122  const std::string &host = "127.0.0.1",
    123  std::size_t port = 6379,
    124  const connect_callback_t &connect_callback = nullptr,
    125  std::uint32_t timeout_msecs = 0,
    126  std::int32_t max_reconnects = 0,
    127  std::uint32_t reconnect_interval_msecs = 0);
    128 
    138  void connect(
    139  const std::string &m_name,
    140  const connect_callback_t &connect_callback = nullptr,
    141  std::uint32_t timeout_msecs = 0,
    142  std::int32_t max_reconnects = 0,
    143  std::uint32_t reconnect_interval_msecs = 0);
    144 
    148  bool is_connected() const;
    149 
    155  void disconnect(bool wait_for_removal = false);
    156 
    160  bool is_reconnecting() const;
    161 
    165  void cancel_reconnect();
    166 
    167  public:
    172  typedef std::function<void(reply &)> reply_callback_t;
    173 
    183  client &send(const std::vector<std::string> &redis_cmd, const reply_callback_t &callback);
    184 
    192  std::future<reply> send(const std::vector<std::string> &redis_cmd);
    193 
    202  client &commit();
    203 
    210  client &sync_commit();
    211 
    218  template<class Rep, class Period>
    219  client &
    220  sync_commit(const std::chrono::duration<Rep, Period> &timeout) {
    223  if (!is_reconnecting()) {
    224  try_commit();
    225  }
    226 
    227  std::unique_lock<std::mutex> lock_callback(m_callbacks_mutex);
    228  __CPP_REDIS_LOG(debug, "cpp_redis::client waiting for callbacks to complete");
    229  if (!m_sync_condvar.wait_for(lock_callback, timeout,
    230  [=] { return m_callbacks_running == 0 && m_commands.empty(); })) {
    231  __CPP_REDIS_LOG(debug, "cpp_redis::client finished waiting for callback");
    232  } else {
    233  __CPP_REDIS_LOG(debug, "cpp_redis::client timed out waiting for callback");
    234  }
    235 
    236  return *this;
    237  }
    238 
    239  private:
    243  bool should_reconnect() const;
    244 
    248  void resend_failed_commands();
    249 
    253  void sleep_before_next_reconnect_attempt();
    254 
    259  void reconnect();
    260 
    264  void re_auth();
    265 
    269  void re_select();
    270 
    271  private:
    279  void unprotected_send(const std::vector<std::string> &redis_cmd, const reply_callback_t &callback);
    280 
    288  void unprotected_auth(const std::string &password, const reply_callback_t &reply_callback);
    289 
    297  void unprotected_select(int index, const reply_callback_t &reply_callback);
    298 
    299  public:
    307  void add_sentinel(const std::string &host, std::size_t port, std::uint32_t timeout_msecs = 0);
    308 
    314  const sentinel &get_sentinel() const;
    315 
    323 
    327  void clear_sentinels();
    328 
    329  public:
    335  enum class aggregate_method {
    336  sum,
    337  min,
    338  max,
    339  server_default
    340  };
    341 
    348  std::string aggregate_method_to_string(aggregate_method method) const;
    349 
    350  public:
    355  enum class geo_unit {
    356  m,
    357  km,
    358  ft,
    359  mi
    360  };
    361 
    368  std::string geo_unit_to_string(geo_unit unit) const;
    369 
    370  public:
    376  enum class overflow_type {
    377  wrap,
    378  sat,
    379  fail,
    380  server_default
    381  };
    382 
    389  std::string overflow_type_to_string(overflow_type type) const;
    390 
    391  public:
    397  get,
    398  set,
    399  incrby
    400  };
    401 
    408  std::string
    410 
    411  public:
    420 
    424  std::string type;
    425 
    429  int offset;
    430 
    434  int value;
    435 
    440 
    449  static bitfield_operation
    450  get(const std::string &type, int offset, overflow_type overflow = overflow_type::server_default);
    451 
    461  static bitfield_operation
    462  set(const std::string &type, int offset, int value, overflow_type overflow = overflow_type::server_default);
    463 
    473  static bitfield_operation incrby(const std::string &type, int offset, int increment,
    474  overflow_type overflow = overflow_type::server_default);
    475  };
    476 
    477  public:
    478  client &
    479  append(const std::string &key, const std::string &value, const reply_callback_t &reply_callback);
    480 
    481  std::future<reply> append(const std::string &key, const std::string &value);
    482 
    483  client &auth(const std::string &password, const reply_callback_t &reply_callback);
    484 
    485  std::future<reply> auth(const std::string &password);
    486 
    487  client &bgrewriteaof(const reply_callback_t &reply_callback);
    488 
    489  std::future<reply> bgrewriteaof();
    490 
    491  client &bgsave(const reply_callback_t &reply_callback);
    492 
    493  std::future<reply> bgsave();
    494 
    495  client &bitcount(const std::string &key, const reply_callback_t &reply_callback);
    496 
    497  std::future<reply> bitcount(const std::string &key);
    498 
    499  client &bitcount(const std::string &key, int start, int end, const reply_callback_t &reply_callback);
    500 
    501  std::future<reply> bitcount(const std::string &key, int start, int end);
    502 
    503  client &bitfield(const std::string &key, const std::vector<bitfield_operation> &operations,
    504  const reply_callback_t &reply_callback);
    505 
    506  std::future<reply> bitfield(const std::string &key, const std::vector<bitfield_operation> &operations);
    507 
    508  client &bitop(const std::string &operation, const std::string &destkey, const std::vector<std::string> &keys,
    509  const reply_callback_t &reply_callback);
    510 
    511  std::future<reply>
    512  bitop(const std::string &operation, const std::string &destkey, const std::vector<std::string> &keys);
    513 
    514  client &bitpos(const std::string &key, int bit, const reply_callback_t &reply_callback);
    515 
    516  std::future<reply> bitpos(const std::string &key, int bit);
    517 
    518  client &bitpos(const std::string &key, int bit, int start, const reply_callback_t &reply_callback);
    519 
    520  std::future<reply> bitpos(const std::string &key, int bit, int start);
    521 
    522  client &bitpos(const std::string &key, int bit, int start, int end, const reply_callback_t &reply_callback);
    523 
    524  std::future<reply> bitpos(const std::string &key, int bit, int start, int end);
    525 
    526  client &blpop(const std::vector<std::string> &keys, int timeout, const reply_callback_t &reply_callback);
    527 
    528  std::future<reply> blpop(const std::vector<std::string> &keys, int timeout);
    529 
    530  client &brpop(const std::vector<std::string> &keys, int timeout, const reply_callback_t &reply_callback);
    531 
    532  std::future<reply> brpop(const std::vector<std::string> &keys, int timeout);
    533 
    534  client &
    535  brpoplpush(const std::string &src, const std::string &dst, int timeout, const reply_callback_t &reply_callback);
    536 
    537  std::future<reply> brpoplpush(const std::string &src, const std::string &dst, int timeout);
    538 
    539  template<typename T, typename... Ts>
    540  client &client_kill(const std::string &host, int port, const T &arg, const Ts &... args);
    541 
    542  client &client_kill(const std::string &host, int port);
    543 
    544  template<typename... Ts>
    545  client &client_kill(const char *host, int port, const Ts &... args);
    546 
    547  template<typename T, typename... Ts>
    548  client &client_kill(const T &, const Ts &...);
    549 
    550  template<typename T, typename... Ts>
    551  std::future<reply> client_kill_future(T, const Ts...);
    552 
    553  client &client_list(const reply_callback_t &reply_callback);
    554 
    555  std::future<reply> client_list();
    556 
    557  client &client_getname(const reply_callback_t &reply_callback);
    558 
    559  std::future<reply> client_getname();
    560 
    561  client &client_pause(int timeout, const reply_callback_t &reply_callback);
    562 
    563  std::future<reply> client_pause(int timeout);
    564 
    565  client &client_reply(const std::string &mode, const reply_callback_t &reply_callback);
    566 
    567  std::future<reply> client_reply(const std::string &mode);
    568 
    569  client &client_setname(const std::string &m_name, const reply_callback_t &reply_callback);
    570 
    571  std::future<reply> client_setname(const std::string &m_name);
    572 
    573  client &cluster_addslots(const std::vector<std::string> &p_slots, const reply_callback_t &reply_callback);
    574 
    575  std::future<reply> cluster_addslots(const std::vector<std::string> &p_slots);
    576 
    577  client &cluster_count_failure_reports(const std::string &node_id, const reply_callback_t &reply_callback);
    578 
    579  std::future<reply> cluster_count_failure_reports(const std::string &node_id);
    580 
    581  client &cluster_countkeysinslot(const std::string &slot, const reply_callback_t &reply_callback);
    582 
    583  std::future<reply> cluster_countkeysinslot(const std::string &slot);
    584 
    585  client &cluster_delslots(const std::vector<std::string> &p_slots, const reply_callback_t &reply_callback);
    586 
    587  std::future<reply> cluster_delslots(const std::vector<std::string> &p_slots);
    588 
    589  client &cluster_failover(const reply_callback_t &reply_callback);
    590 
    591  std::future<reply> cluster_failover();
    592 
    593  client &cluster_failover(const std::string &mode, const reply_callback_t &reply_callback);
    594 
    595  std::future<reply> cluster_failover(const std::string &mode);
    596 
    597  client &cluster_forget(const std::string &node_id, const reply_callback_t &reply_callback);
    598 
    599  std::future<reply> cluster_forget(const std::string &node_id);
    600 
    601  client &cluster_getkeysinslot(const std::string &slot, int count, const reply_callback_t &reply_callback);
    602 
    603  std::future<reply> cluster_getkeysinslot(const std::string &slot, int count);
    604 
    605  client &cluster_info(const reply_callback_t &reply_callback);
    606 
    607  std::future<reply> cluster_info();
    608 
    609  client &cluster_keyslot(const std::string &key, const reply_callback_t &reply_callback);
    610 
    611  std::future<reply> cluster_keyslot(const std::string &key);
    612 
    613  client &cluster_meet(const std::string &ip, int port, const reply_callback_t &reply_callback);
    614 
    615  std::future<reply> cluster_meet(const std::string &ip, int port);
    616 
    617  client &cluster_nodes(const reply_callback_t &reply_callback);
    618 
    619  std::future<reply> cluster_nodes();
    620 
    621  client &cluster_replicate(const std::string &node_id, const reply_callback_t &reply_callback);
    622 
    623  std::future<reply> cluster_replicate(const std::string &node_id);
    624 
    625  client &cluster_reset(const reply_callback_t &reply_callback);
    626 
    627  client &cluster_reset(const std::string &mode, const reply_callback_t &reply_callback);
    628 
    629  std::future<reply> cluster_reset(const std::string &mode = "soft");
    630 
    631  client &cluster_saveconfig(const reply_callback_t &reply_callback);
    632 
    633  std::future<reply> cluster_saveconfig();
    634 
    635  client &cluster_set_config_epoch(const std::string &epoch, const reply_callback_t &reply_callback);
    636 
    637  std::future<reply> cluster_set_config_epoch(const std::string &epoch);
    638 
    639  client &cluster_setslot(const std::string &slot, const std::string &mode, const reply_callback_t &reply_callback);
    640 
    641  std::future<reply> cluster_setslot(const std::string &slot, const std::string &mode);
    642 
    643  client &cluster_setslot(const std::string &slot, const std::string &mode, const std::string &node_id,
    644  const reply_callback_t &reply_callback);
    645 
    646  std::future<reply> cluster_setslot(const std::string &slot, const std::string &mode, const std::string &node_id);
    647 
    648  client &cluster_slaves(const std::string &node_id, const reply_callback_t &reply_callback);
    649 
    650  std::future<reply> cluster_slaves(const std::string &node_id);
    651 
    652  client &cluster_slots(const reply_callback_t &reply_callback);
    653 
    654  std::future<reply> cluster_slots();
    655 
    656  client &command(const reply_callback_t &reply_callback);
    657 
    658  std::future<reply> command();
    659 
    660  client &command_count(const reply_callback_t &reply_callback);
    661 
    662  std::future<reply> command_count();
    663 
    664  client &command_getkeys(const reply_callback_t &reply_callback);
    665 
    666  std::future<reply> command_getkeys();
    667 
    668  client &command_info(const std::vector<std::string> &command_name, const reply_callback_t &reply_callback);
    669 
    670  std::future<reply> command_info(const std::vector<std::string> &command_name);
    671 
    672  client &config_get(const std::string &param, const reply_callback_t &reply_callback);
    673 
    674  std::future<reply> config_get(const std::string &param);
    675 
    676  client &config_rewrite(const reply_callback_t &reply_callback);
    677 
    678  std::future<reply> config_rewrite();
    679 
    680  client &config_set(const std::string &param, const std::string &val, const reply_callback_t &reply_callback);
    681 
    682  std::future<reply> config_set(const std::string &param, const std::string &val);
    683 
    684  client &config_resetstat(const reply_callback_t &reply_callback);
    685 
    686  std::future<reply> config_resetstat();
    687 
    688  client &dbsize(const reply_callback_t &reply_callback);
    689 
    690  std::future<reply> dbsize();
    691 
    692  client &debug_object(const std::string &key, const reply_callback_t &reply_callback);
    693 
    694  std::future<reply> debug_object(const std::string &key);
    695 
    696  client &debug_segfault(const reply_callback_t &reply_callback);
    697 
    698  std::future<reply> debug_segfault();
    699 
    700  client &decr(const std::string &key, const reply_callback_t &reply_callback);
    701 
    702  std::future<reply> decr(const std::string &key);
    703 
    704  client &decrby(const std::string &key, int val, const reply_callback_t &reply_callback);
    705 
    706  std::future<reply> decrby(const std::string &key, int val);
    707 
    708  client &del(const std::vector<std::string> &key, const reply_callback_t &reply_callback);
    709 
    710  std::future<reply> del(const std::vector<std::string> &key);
    711 
    712  client &discard(const reply_callback_t &reply_callback);
    713 
    714  std::future<reply> discard();
    715 
    716  client &dump(const std::string &key, const reply_callback_t &reply_callback);
    717 
    718  std::future<reply> dump(const std::string &key);
    719 
    720  client &echo(const std::string &msg, const reply_callback_t &reply_callback);
    721 
    722  std::future<reply> echo(const std::string &msg);
    723 
    724  client &eval(const std::string &script, int numkeys, const std::vector<std::string> &keys,
    725  const std::vector<std::string> &args, const reply_callback_t &reply_callback);
    726 
    727  std::future<reply> eval(const std::string &script, int numkeys, const std::vector<std::string> &keys,
    728  const std::vector<std::string> &args);
    729 
    730  client &evalsha(const std::string &sha1, int numkeys, const std::vector<std::string> &keys,
    731  const std::vector<std::string> &args, const reply_callback_t &reply_callback);
    732 
    733  std::future<reply> evalsha(const std::string &sha1, int numkeys, const std::vector<std::string> &keys,
    734  const std::vector<std::string> &args);
    735 
    736  client &exec(const reply_callback_t &reply_callback);
    737 
    738  std::future<reply> exec();
    739 
    740  client &exists(const std::vector<std::string> &keys, const reply_callback_t &reply_callback);
    741 
    742  std::future<reply> exists(const std::vector<std::string> &keys);
    743 
    744  client &expire(const std::string &key, int seconds, const reply_callback_t &reply_callback);
    745 
    746  std::future<reply> expire(const std::string &key, int seconds);
    747 
    748  client &expireat(const std::string &key, int timestamp, const reply_callback_t &reply_callback);
    749 
    750  std::future<reply> expireat(const std::string &key, int timestamp);
    751 
    752  client &flushall(const reply_callback_t &reply_callback);
    753 
    754  std::future<reply> flushall();
    755 
    756  client &flushdb(const reply_callback_t &reply_callback);
    757 
    758  std::future<reply> flushdb();
    759 
    760  client &geoadd(const std::string &key,
    761  const std::vector<std::tuple<std::string, std::string, std::string>> &long_lat_memb,
    762  const reply_callback_t &reply_callback);
    763 
    764  std::future<reply> geoadd(const std::string &key,
    765  const std::vector<std::tuple<std::string, std::string, std::string>> &long_lat_memb);
    766 
    767  client &
    768  geohash(const std::string &key, const std::vector<std::string> &members, const reply_callback_t &reply_callback);
    769 
    770  std::future<reply> geohash(const std::string &key, const std::vector<std::string> &members);
    771 
    772  client &
    773  geopos(const std::string &key, const std::vector<std::string> &members, const reply_callback_t &reply_callback);
    774 
    775  std::future<reply> geopos(const std::string &key, const std::vector<std::string> &members);
    776 
    777  client &geodist(const std::string &key, const std::string &member_1, const std::string &member_2,
    778  const reply_callback_t &reply_callback);
    779 
    780  client &
    781  geodist(const std::string &key, const std::string &member_1, const std::string &member_2, const std::string &unit,
    782  const reply_callback_t &reply_callback);
    783 
    784  std::future<reply> geodist(const std::string &key, const std::string &member_1, const std::string &member_2,
    785  const std::string &unit = "m");
    786 
    787  client &georadius(const std::string &key, double longitude, double latitude, double radius, geo_unit unit,
    788  bool with_coord, bool with_dist, bool with_hash, bool asc_order,
    789  const reply_callback_t &reply_callback);
    790 
    791  client &georadius(const std::string &key, double longitude, double latitude, double radius, geo_unit unit,
    792  bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count,
    793  const reply_callback_t &reply_callback);
    794 
    795  client &georadius(const std::string &key, double longitude, double latitude, double radius, geo_unit unit,
    796  bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string &store_key,
    797  const reply_callback_t &reply_callback);
    798 
    799  client &georadius(const std::string &key, double longitude, double latitude, double radius, geo_unit unit,
    800  bool with_coord, bool with_dist, bool with_hash, bool asc_order, const std::string &store_key,
    801  const std::string &storedist_key, const reply_callback_t &reply_callback);
    802 
    803  client &georadius(const std::string &key, double longitude, double latitude, double radius, geo_unit unit,
    804  bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count,
    805  const std::string &store_key, const reply_callback_t &reply_callback);
    806 
    807  client &georadius(const std::string &key, double longitude, double latitude, double radius, geo_unit unit,
    808  bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count,
    809  const std::string &store_key, const std::string &storedist_key,
    810  const reply_callback_t &reply_callback);
    811 
    812  std::future<reply>
    813  georadius(const std::string &key, double longitude, double latitude, double radius, geo_unit unit,
    814  bool with_coord = false, bool with_dist = false, bool with_hash = false, bool asc_order = false,
    815  std::size_t count = 0, const std::string &store_key = "", const std::string &storedist_key = "");
    816 
    817  client &georadiusbymember(const std::string &key, const std::string &member, double radius, geo_unit unit,
    818  bool with_coord, bool with_dist, bool with_hash, bool asc_order,
    819  const reply_callback_t &reply_callback);
    820 
    821  client &georadiusbymember(const std::string &key, const std::string &member, double radius, geo_unit unit,
    822  bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count,
    823  const reply_callback_t &reply_callback);
    824 
    825  client &georadiusbymember(const std::string &key, const std::string &member, double radius, geo_unit unit,
    826  bool with_coord, bool with_dist, bool with_hash, bool asc_order,
    827  const std::string &store_key, const reply_callback_t &reply_callback);
    828 
    829  client &georadiusbymember(const std::string &key, const std::string &member, double radius, geo_unit unit,
    830  bool with_coord, bool with_dist, bool with_hash, bool asc_order,
    831  const std::string &store_key, const std::string &storedist_key,
    832  const reply_callback_t &reply_callback);
    833 
    834  client &georadiusbymember(const std::string &key, const std::string &member, double radius, geo_unit unit,
    835  bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count,
    836  const std::string &store_key, const reply_callback_t &reply_callback);
    837 
    838  client &georadiusbymember(const std::string &key, const std::string &member, double radius, geo_unit unit,
    839  bool with_coord, bool with_dist, bool with_hash, bool asc_order, std::size_t count,
    840  const std::string &store_key, const std::string &storedist_key,
    841  const reply_callback_t &reply_callback);
    842 
    843  std::future<reply>
    844  georadiusbymember(const std::string &key, const std::string &member, double radius, geo_unit unit,
    845  bool with_coord = false, bool with_dist = false, bool with_hash = false, bool asc_order = false,
    846  std::size_t count = 0, const std::string &store_key = "",
    847  const std::string &storedist_key = "");
    848 
    849  client &get(const std::string &key, const reply_callback_t &reply_callback);
    850 
    851  std::future<reply> get(const std::string &key);
    852 
    853  client &getbit(const std::string &key, int offset, const reply_callback_t &reply_callback);
    854 
    855  std::future<reply> getbit(const std::string &key, int offset);
    856 
    857  client &getrange(const std::string &key, int start, int end, const reply_callback_t &reply_callback);
    858 
    859  std::future<reply> getrange(const std::string &key, int start, int end);
    860 
    861  client &getset(const std::string &key, const std::string &val, const reply_callback_t &reply_callback);
    862 
    863  std::future<reply> getset(const std::string &key, const std::string &val);
    864 
    865  client &
    866  hdel(const std::string &key, const std::vector<std::string> &fields, const reply_callback_t &reply_callback);
    867 
    868  std::future<reply> hdel(const std::string &key, const std::vector<std::string> &fields);
    869 
    870  client &hexists(const std::string &key, const std::string &field, const reply_callback_t &reply_callback);
    871 
    872  std::future<reply> hexists(const std::string &key, const std::string &field);
    873 
    874  client &hget(const std::string &key, const std::string &field, const reply_callback_t &reply_callback);
    875 
    876  std::future<reply> hget(const std::string &key, const std::string &field);
    877 
    878  client &hgetall(const std::string &key, const reply_callback_t &reply_callback);
    879 
    880  std::future<reply> hgetall(const std::string &key);
    881 
    882  client &
    883  hincrby(const std::string &key, const std::string &field, int incr, const reply_callback_t &reply_callback);
    884 
    885  std::future<reply> hincrby(const std::string &key, const std::string &field, int incr);
    886 
    887  client &hincrbyfloat(const std::string &key, const std::string &field, float incr,
    888  const reply_callback_t &reply_callback);
    889 
    890  std::future<reply> hincrbyfloat(const std::string &key, const std::string &field, float incr);
    891 
    892  client &hkeys(const std::string &key, const reply_callback_t &reply_callback);
    893 
    894  std::future<reply> hkeys(const std::string &key);
    895 
    896  client &hlen(const std::string &key, const reply_callback_t &reply_callback);
    897 
    898  std::future<reply> hlen(const std::string &key);
    899 
    900  client &
    901  hmget(const std::string &key, const std::vector<std::string> &fields, const reply_callback_t &reply_callback);
    902 
    903  std::future<reply> hmget(const std::string &key, const std::vector<std::string> &fields);
    904 
    905  client &hmset(const std::string &key, const std::vector<std::pair<std::string, std::string>> &field_val,
    906  const reply_callback_t &reply_callback);
    907 
    908  std::future<reply>
    909  hmset(const std::string &key, const std::vector<std::pair<std::string, std::string>> &field_val);
    910 
    911  client &hscan(const std::string &key, std::size_t cursor, const reply_callback_t &reply_callback);
    912 
    913  std::future<reply> hscan(const std::string &key, std::size_t cursor);
    914 
    915  client &hscan(const std::string &key, std::size_t cursor, const std::string &pattern,
    916  const reply_callback_t &reply_callback);
    917 
    918  std::future<reply> hscan(const std::string &key, std::size_t cursor, const std::string &pattern);
    919 
    920  client &
    921  hscan(const std::string &key, std::size_t cursor, std::size_t count, const reply_callback_t &reply_callback);
    922 
    923  std::future<reply> hscan(const std::string &key, std::size_t cursor, std::size_t count);
    924 
    925  client &hscan(const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count,
    926  const reply_callback_t &reply_callback);
    927 
    928  std::future<reply>
    929  hscan(const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count);
    930 
    931  client &hset(const std::string &key, const std::string &field, const std::string &value,
    932  const reply_callback_t &reply_callback);
    933 
    934  std::future<reply> hset(const std::string &key, const std::string &field, const std::string &value);
    935 
    936  client &hsetnx(const std::string &key, const std::string &field, const std::string &value,
    937  const reply_callback_t &reply_callback);
    938 
    939  std::future<reply> hsetnx(const std::string &key, const std::string &field, const std::string &value);
    940 
    941  client &hstrlen(const std::string &key, const std::string &field, const reply_callback_t &reply_callback);
    942 
    943  std::future<reply> hstrlen(const std::string &key, const std::string &field);
    944 
    945  client &hvals(const std::string &key, const reply_callback_t &reply_callback);
    946 
    947  std::future<reply> hvals(const std::string &key);
    948 
    949  client &incr(const std::string &key, const reply_callback_t &reply_callback);
    950 
    951  std::future<reply> incr(const std::string &key);
    952 
    953  client &incrby(const std::string &key, int incr, const reply_callback_t &reply_callback);
    954 
    955  std::future<reply> incrby(const std::string &key, int incr);
    956 
    957  client &incrbyfloat(const std::string &key, float incr, const reply_callback_t &reply_callback);
    958 
    959  std::future<reply> incrbyfloat(const std::string &key, float incr);
    960 
    961  client &info(const reply_callback_t &reply_callback);
    962 
    963  client &info(const std::string &section, const reply_callback_t &reply_callback);
    964 
    965  std::future<reply> info(const std::string &section = "default");
    966 
    967  client &keys(const std::string &pattern, const reply_callback_t &reply_callback);
    968 
    969  std::future<reply> keys(const std::string &pattern);
    970 
    971  client &lastsave(const reply_callback_t &reply_callback);
    972 
    973  std::future<reply> lastsave();
    974 
    975  client &lindex(const std::string &key, int index, const reply_callback_t &reply_callback);
    976 
    977  std::future<reply> lindex(const std::string &key, int index);
    978 
    979  client &linsert(const std::string &key, const std::string &before_after, const std::string &pivot,
    980  const std::string &value, const reply_callback_t &reply_callback);
    981 
    982  std::future<reply> linsert(const std::string &key, const std::string &before_after, const std::string &pivot,
    983  const std::string &value);
    984 
    985  client &llen(const std::string &key, const reply_callback_t &reply_callback);
    986 
    987  std::future<reply> llen(const std::string &key);
    988 
    989  client &lpop(const std::string &key, const reply_callback_t &reply_callback);
    990 
    991  std::future<reply> lpop(const std::string &key);
    992 
    993  client &
    994  lpush(const std::string &key, const std::vector<std::string> &values, const reply_callback_t &reply_callback);
    995 
    996  std::future<reply> lpush(const std::string &key, const std::vector<std::string> &values);
    997 
    998  client &lpushx(const std::string &key, const std::string &value, const reply_callback_t &reply_callback);
    999 
    1000  std::future<reply> lpushx(const std::string &key, const std::string &value);
    1001 
    1002  client &lrange(const std::string &key, int start, int stop, const reply_callback_t &reply_callback);
    1003 
    1004  std::future<reply> lrange(const std::string &key, int start, int stop);
    1005 
    1006  client &lrem(const std::string &key, int count, const std::string &value, const reply_callback_t &reply_callback);
    1007 
    1008  std::future<reply> lrem(const std::string &key, int count, const std::string &value);
    1009 
    1010  client &lset(const std::string &key, int index, const std::string &value, const reply_callback_t &reply_callback);
    1011 
    1012  std::future<reply> lset(const std::string &key, int index, const std::string &value);
    1013 
    1014  client &ltrim(const std::string &key, int start, int stop, const reply_callback_t &reply_callback);
    1015 
    1016  std::future<reply> ltrim(const std::string &key, int start, int stop);
    1017 
    1018  client &mget(const std::vector<std::string> &keys, const reply_callback_t &reply_callback);
    1019 
    1020  std::future<reply> mget(const std::vector<std::string> &keys);
    1021 
    1022  client &
    1023  migrate(const std::string &host, int port, const std::string &key, const std::string &dest_db, int timeout,
    1024  const reply_callback_t &reply_callback);
    1025 
    1026  client &
    1027  migrate(const std::string &host, int port, const std::string &key, const std::string &dest_db, int timeout,
    1028  bool copy, bool replace, const std::vector<std::string> &keys, const reply_callback_t &reply_callback);
    1029 
    1030  std::future<reply>
    1031  migrate(const std::string &host, int port, const std::string &key, const std::string &dest_db, int timeout,
    1032  bool copy = false, bool replace = false, const std::vector<std::string> &keys = {});
    1033 
    1034  client &monitor(const reply_callback_t &reply_callback);
    1035 
    1036  std::future<reply> monitor();
    1037 
    1038  client &move(const std::string &key, const std::string &db, const reply_callback_t &reply_callback);
    1039 
    1040  std::future<reply> move(const std::string &key, const std::string &db);
    1041 
    1042  client &
    1043  mset(const std::vector<std::pair<std::string, std::string>> &key_vals, const reply_callback_t &reply_callback);
    1044 
    1045  std::future<reply> mset(const std::vector<std::pair<std::string, std::string>> &key_vals);
    1046 
    1047  client &
    1048  msetnx(const std::vector<std::pair<std::string, std::string>> &key_vals, const reply_callback_t &reply_callback);
    1049 
    1050  std::future<reply> msetnx(const std::vector<std::pair<std::string, std::string>> &key_vals);
    1051 
    1052  client &multi(const reply_callback_t &reply_callback);
    1053 
    1054  std::future<reply> multi();
    1055 
    1056  client &object(const std::string &subcommand, const std::vector<std::string> &args,
    1057  const reply_callback_t &reply_callback);
    1058 
    1059  std::future<reply> object(const std::string &subcommand, const std::vector<std::string> &args);
    1060 
    1061  client &persist(const std::string &key, const reply_callback_t &reply_callback);
    1062 
    1063  std::future<reply> persist(const std::string &key);
    1064 
    1065  client &pexpire(const std::string &key, int milliseconds, const reply_callback_t &reply_callback);
    1066 
    1067  std::future<reply> pexpire(const std::string &key, int milliseconds);
    1068 
    1069  client &pexpireat(const std::string &key, int milliseconds_timestamp, const reply_callback_t &reply_callback);
    1070 
    1071  std::future<reply> pexpireat(const std::string &key, int milliseconds_timestamp);
    1072 
    1073  client &
    1074  pfadd(const std::string &key, const std::vector<std::string> &elements, const reply_callback_t &reply_callback);
    1075 
    1076  std::future<reply> pfadd(const std::string &key, const std::vector<std::string> &elements);
    1077 
    1078  client &pfcount(const std::vector<std::string> &keys, const reply_callback_t &reply_callback);
    1079 
    1080  std::future<reply> pfcount(const std::vector<std::string> &keys);
    1081 
    1082  client &pfmerge(const std::string &destkey, const std::vector<std::string> &sourcekeys,
    1083  const reply_callback_t &reply_callback);
    1084 
    1085  std::future<reply> pfmerge(const std::string &destkey, const std::vector<std::string> &sourcekeys);
    1086 
    1087  client &ping(const reply_callback_t &reply_callback);
    1088 
    1089  std::future<reply> ping();
    1090 
    1091  client &ping(const std::string &message, const reply_callback_t &reply_callback);
    1092 
    1093  std::future<reply> ping(const std::string &message);
    1094 
    1095  client &
    1096  psetex(const std::string &key, int milliseconds, const std::string &val, const reply_callback_t &reply_callback);
    1097 
    1098  std::future<reply> psetex(const std::string &key, int milliseconds, const std::string &val);
    1099 
    1100  client &publish(const std::string &channel, const std::string &message, const reply_callback_t &reply_callback);
    1101 
    1102  std::future<reply> publish(const std::string &channel, const std::string &message);
    1103 
    1104  client &pubsub(const std::string &subcommand, const std::vector<std::string> &args,
    1105  const reply_callback_t &reply_callback);
    1106 
    1107  std::future<reply> pubsub(const std::string &subcommand, const std::vector<std::string> &args);
    1108 
    1109  client &pttl(const std::string &key, const reply_callback_t &reply_callback);
    1110 
    1111  std::future<reply> pttl(const std::string &key);
    1112 
    1113  client &quit(const reply_callback_t &reply_callback);
    1114 
    1115  std::future<reply> quit();
    1116 
    1117  client &randomkey(const reply_callback_t &reply_callback);
    1118 
    1119  std::future<reply> randomkey();
    1120 
    1121  client &readonly(const reply_callback_t &reply_callback);
    1122 
    1123  std::future<reply> readonly();
    1124 
    1125  client &readwrite(const reply_callback_t &reply_callback);
    1126 
    1127  std::future<reply> readwrite();
    1128 
    1129  client &rename(const std::string &key, const std::string &newkey, const reply_callback_t &reply_callback);
    1130 
    1131  std::future<reply> rename(const std::string &key, const std::string &newkey);
    1132 
    1133  client &renamenx(const std::string &key, const std::string &newkey, const reply_callback_t &reply_callback);
    1134 
    1135  std::future<reply> renamenx(const std::string &key, const std::string &newkey);
    1136 
    1137  client &restore(const std::string &key, int ttl, const std::string &serialized_value,
    1138  const reply_callback_t &reply_callback);
    1139 
    1140  std::future<reply> restore(const std::string &key, int ttl, const std::string &serialized_value);
    1141 
    1142  client &restore(const std::string &key, int ttl, const std::string &serialized_value, const std::string &replace,
    1143  const reply_callback_t &reply_callback);
    1144 
    1145  std::future<reply>
    1146  restore(const std::string &key, int ttl, const std::string &serialized_value, const std::string &replace);
    1147 
    1148  client &role(const reply_callback_t &reply_callback);
    1149 
    1150  std::future<reply> role();
    1151 
    1152  client &rpop(const std::string &key, const reply_callback_t &reply_callback);
    1153 
    1154  std::future<reply> rpop(const std::string &key);
    1155 
    1156  client &
    1157  rpoplpush(const std::string &source, const std::string &destination, const reply_callback_t &reply_callback);
    1158 
    1159  std::future<reply> rpoplpush(const std::string &src, const std::string &dst);
    1160 
    1161  client &
    1162  rpush(const std::string &key, const std::vector<std::string> &values, const reply_callback_t &reply_callback);
    1163 
    1164  std::future<reply> rpush(const std::string &key, const std::vector<std::string> &values);
    1165 
    1166  client &rpushx(const std::string &key, const std::string &value, const reply_callback_t &reply_callback);
    1167 
    1168  std::future<reply> rpushx(const std::string &key, const std::string &value);
    1169 
    1170  client &
    1171  sadd(const std::string &key, const std::vector<std::string> &members, const reply_callback_t &reply_callback);
    1172 
    1173  std::future<reply> sadd(const std::string &key, const std::vector<std::string> &members);
    1174 
    1175  client &save(const reply_callback_t &reply_callback);
    1176 
    1177  std::future<reply> save();
    1178 
    1179  client &scan(std::size_t cursor, const reply_callback_t &reply_callback);
    1180 
    1181  std::future<reply> scan(std::size_t cursor);
    1182 
    1183  client &scan(std::size_t cursor, const std::string &pattern, const reply_callback_t &reply_callback);
    1184 
    1185  std::future<reply> scan(std::size_t cursor, const std::string &pattern);
    1186 
    1187  client &scan(std::size_t cursor, std::size_t count, const reply_callback_t &reply_callback);
    1188 
    1189  std::future<reply> scan(std::size_t cursor, std::size_t count);
    1190 
    1191  client &
    1192  scan(std::size_t cursor, const std::string &pattern, std::size_t count, const reply_callback_t &reply_callback);
    1193 
    1194  std::future<reply> scan(std::size_t cursor, const std::string &pattern, std::size_t count);
    1195 
    1196  client &scard(const std::string &key, const reply_callback_t &reply_callback);
    1197 
    1198  std::future<reply> scard(const std::string &key);
    1199 
    1200  client &script_debug(const std::string &mode, const reply_callback_t &reply_callback);
    1201 
    1202  std::future<reply> script_debug(const std::string &mode);
    1203 
    1204  client &script_exists(const std::vector<std::string> &scripts, const reply_callback_t &reply_callback);
    1205 
    1206  std::future<reply> script_exists(const std::vector<std::string> &scripts);
    1207 
    1208  client &script_flush(const reply_callback_t &reply_callback);
    1209 
    1210  std::future<reply> script_flush();
    1211 
    1212  client &script_kill(const reply_callback_t &reply_callback);
    1213 
    1214  std::future<reply> script_kill();
    1215 
    1216  client &script_load(const std::string &script, const reply_callback_t &reply_callback);
    1217 
    1218  std::future<reply> script_load(const std::string &script);
    1219 
    1220  client &sdiff(const std::vector<std::string> &keys, const reply_callback_t &reply_callback);
    1221 
    1222  std::future<reply> sdiff(const std::vector<std::string> &keys);
    1223 
    1224  client &sdiffstore(const std::string &destination, const std::vector<std::string> &keys,
    1225  const reply_callback_t &reply_callback);
    1226 
    1227  std::future<reply> sdiffstore(const std::string &dst, const std::vector<std::string> &keys);
    1228 
    1229  client &select(int index, const reply_callback_t &reply_callback);
    1230 
    1231  std::future<reply> select(int index);
    1232 
    1233  client &set(const std::string &key, const std::string &value, const reply_callback_t &reply_callback);
    1234 
    1235  std::future<reply> set(const std::string &key, const std::string &value);
    1236 
    1237  client &set_advanced(const std::string &key, const std::string &value, const reply_callback_t &reply_callback);
    1238 
    1239  client &set_advanced(const std::string &key, const std::string &value, bool ex, int ex_sec, bool px, int px_milli,
    1240  bool nx, bool xx, const reply_callback_t &reply_callback);
    1241 
    1242  std::future<reply>
    1243  set_advanced(const std::string &key, const std::string &value, bool ex = false, int ex_sec = 0, bool px = false,
    1244  int px_milli = 0, bool nx = false, bool xx = false);
    1245 
    1246  client &
    1247  setbit_(const std::string &key, int offset, const std::string &value, const reply_callback_t &reply_callback);
    1248 
    1249  std::future<reply> setbit_(const std::string &key, int offset, const std::string &value);
    1250 
    1251  client &
    1252  setex(const std::string &key, int seconds, const std::string &value, const reply_callback_t &reply_callback);
    1253 
    1254  std::future<reply> setex(const std::string &key, int seconds, const std::string &value);
    1255 
    1256  client &setnx(const std::string &key, const std::string &value, const reply_callback_t &reply_callback);
    1257 
    1258  std::future<reply> setnx(const std::string &key, const std::string &value);
    1259 
    1260  client &
    1261  setrange(const std::string &key, int offset, const std::string &value, const reply_callback_t &reply_callback);
    1262 
    1263  std::future<reply> setrange(const std::string &key, int offset, const std::string &value);
    1264 
    1265  client &shutdown(const reply_callback_t &reply_callback);
    1266 
    1267  std::future<reply> shutdown();
    1268 
    1269  client &shutdown(const std::string &save, const reply_callback_t &reply_callback);
    1270 
    1271  std::future<reply> shutdown(const std::string &save);
    1272 
    1273  client &sinter(const std::vector<std::string> &keys, const reply_callback_t &reply_callback);
    1274 
    1275  std::future<reply> sinter(const std::vector<std::string> &keys);
    1276 
    1277  client &sinterstore(const std::string &destination, const std::vector<std::string> &keys,
    1278  const reply_callback_t &reply_callback);
    1279 
    1280  std::future<reply> sinterstore(const std::string &dst, const std::vector<std::string> &keys);
    1281 
    1282  client &sismember(const std::string &key, const std::string &member, const reply_callback_t &reply_callback);
    1283 
    1284  std::future<reply> sismember(const std::string &key, const std::string &member);
    1285 
    1286  client &slaveof(const std::string &host, int port, const reply_callback_t &reply_callback);
    1287 
    1288  std::future<reply> slaveof(const std::string &host, int port);
    1289 
    1290  client &slowlog(std::string subcommand, const reply_callback_t &reply_callback);
    1291 
    1292  std::future<reply> slowlog(const std::string &subcommand);
    1293 
    1294  client &
    1295  slowlog(std::string subcommand, const std::string &argument, const reply_callback_t &reply_callback);
    1296 
    1297  std::future<reply> slowlog(const std::string &subcommand, const std::string &argument);
    1298 
    1299  client &smembers(const std::string &key, const reply_callback_t &reply_callback);
    1300 
    1301  std::future<reply> smembers(const std::string &key);
    1302 
    1303  client &smove(const std::string &source, const std::string &destination, const std::string &member,
    1304  const reply_callback_t &reply_callback);
    1305 
    1306  std::future<reply> smove(const std::string &src, const std::string &dst, const std::string &member);
    1307 
    1308  client &sort(const std::string &key, const reply_callback_t &reply_callback);
    1309 
    1310  std::future<reply> sort(const std::string &key);
    1311 
    1312  client &sort(const std::string &key, const std::vector<std::string> &get_patterns, bool asc_order, bool alpha,
    1313  const reply_callback_t &reply_callback);
    1314 
    1315  std::future<reply>
    1316  sort(const std::string &key, const std::vector<std::string> &get_patterns, bool asc_order, bool alpha);
    1317 
    1318  client &
    1319  sort(const std::string &key, std::size_t offset, std::size_t count, const std::vector<std::string> &get_patterns,
    1320  bool asc_order, bool alpha, const reply_callback_t &reply_callback);
    1321 
    1322  std::future<reply>
    1323  sort(const std::string &key, std::size_t offset, std::size_t count, const std::vector<std::string> &get_patterns,
    1324  bool asc_order, bool alpha);
    1325 
    1326  client &sort(const std::string &key, const std::string &by_pattern, const std::vector<std::string> &get_patterns,
    1327  bool asc_order, bool alpha, const reply_callback_t &reply_callback);
    1328 
    1329  std::future<reply>
    1330  sort(const std::string &key, const std::string &by_pattern, const std::vector<std::string> &get_patterns,
    1331  bool asc_order, bool alpha);
    1332 
    1333  client &sort(const std::string &key, const std::vector<std::string> &get_patterns, bool asc_order, bool alpha,
    1334  const std::string &store_dest, const reply_callback_t &reply_callback);
    1335 
    1336  std::future<reply>
    1337  sort(const std::string &key, const std::vector<std::string> &get_patterns, bool asc_order, bool alpha,
    1338  const std::string &store_dest);
    1339 
    1340  client &
    1341  sort(const std::string &key, std::size_t offset, std::size_t count, const std::vector<std::string> &get_patterns,
    1342  bool asc_order, bool alpha, const std::string &store_dest, const reply_callback_t &reply_callback);
    1343 
    1344  std::future<reply>
    1345  sort(const std::string &key, std::size_t offset, std::size_t count, const std::vector<std::string> &get_patterns,
    1346  bool asc_order, bool alpha, const std::string &store_dest);
    1347 
    1348  client &sort(const std::string &key, const std::string &by_pattern, const std::vector<std::string> &get_patterns,
    1349  bool asc_order, bool alpha, const std::string &store_dest, const reply_callback_t &reply_callback);
    1350 
    1351  std::future<reply>
    1352  sort(const std::string &key, const std::string &by_pattern, const std::vector<std::string> &get_patterns,
    1353  bool asc_order, bool alpha, const std::string &store_dest);
    1354 
    1355  client &sort(const std::string &key, const std::string &by_pattern, std::size_t offset, std::size_t count,
    1356  const std::vector<std::string> &get_patterns, bool asc_order, bool alpha,
    1357  const reply_callback_t &reply_callback);
    1358 
    1359  std::future<reply>
    1360  sort(const std::string &key, const std::string &by_pattern, std::size_t offset, std::size_t count,
    1361  const std::vector<std::string> &get_patterns, bool asc_order, bool alpha);
    1362 
    1363  client &sort(const std::string &key, const std::string &by_pattern, std::size_t offset, std::size_t count,
    1364  const std::vector<std::string> &get_patterns, bool asc_order, bool alpha,
    1365  const std::string &store_dest, const reply_callback_t &reply_callback);
    1366 
    1367  std::future<reply>
    1368  sort(const std::string &key, const std::string &by_pattern, std::size_t offset, std::size_t count,
    1369  const std::vector<std::string> &get_patterns, bool asc_order, bool alpha, const std::string &store_dest);
    1370 
    1371  client &spop(const std::string &key, const reply_callback_t &reply_callback);
    1372 
    1373  std::future<reply> spop(const std::string &key);
    1374 
    1375  client &spop(const std::string &key, int count, const reply_callback_t &reply_callback);
    1376 
    1377  std::future<reply> spop(const std::string &key, int count);
    1378 
    1379  client &srandmember(const std::string &key, const reply_callback_t &reply_callback);
    1380 
    1381  std::future<reply> srandmember(const std::string &key);
    1382 
    1383  client &srandmember(const std::string &key, int count, const reply_callback_t &reply_callback);
    1384 
    1385  std::future<reply> srandmember(const std::string &key, int count);
    1386 
    1387  client &
    1388  srem(const std::string &key, const std::vector<std::string> &members, const reply_callback_t &reply_callback);
    1389 
    1390  std::future<reply> srem(const std::string &key, const std::vector<std::string> &members);
    1391 
    1392  client &sscan(const std::string &key, std::size_t cursor, const reply_callback_t &reply_callback);
    1393 
    1394  std::future<reply> sscan(const std::string &key, std::size_t cursor);
    1395 
    1396  client &sscan(const std::string &key, std::size_t cursor, const std::string &pattern,
    1397  const reply_callback_t &reply_callback);
    1398 
    1399  std::future<reply> sscan(const std::string &key, std::size_t cursor, const std::string &pattern);
    1400 
    1401  client &
    1402  sscan(const std::string &key, std::size_t cursor, std::size_t count, const reply_callback_t &reply_callback);
    1403 
    1404  std::future<reply> sscan(const std::string &key, std::size_t cursor, std::size_t count);
    1405 
    1406  client &sscan(const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count,
    1407  const reply_callback_t &reply_callback);
    1408 
    1409  std::future<reply>
    1410  sscan(const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count);
    1411 
    1412  client &strlen(const std::string &key, const reply_callback_t &reply_callback);
    1413 
    1414  std::future<reply> strlen(const std::string &key);
    1415 
    1416  client &sunion(const std::vector<std::string> &keys, const reply_callback_t &reply_callback);
    1417 
    1418  std::future<reply> sunion(const std::vector<std::string> &keys);
    1419 
    1420  client &sunionstore(const std::string &destination, const std::vector<std::string> &keys,
    1421  const reply_callback_t &reply_callback);
    1422 
    1423  std::future<reply> sunionstore(const std::string &dst, const std::vector<std::string> &keys);
    1424 
    1425  client &sync(const reply_callback_t &reply_callback);
    1426 
    1427  std::future<reply> sync();
    1428 
    1429  client &time(const reply_callback_t &reply_callback);
    1430 
    1431  std::future<reply> time();
    1432 
    1433  client &ttl(const std::string &key, const reply_callback_t &reply_callback);
    1434 
    1435  std::future<reply> ttl(const std::string &key);
    1436 
    1437  client &type(const std::string &key, const reply_callback_t &reply_callback);
    1438 
    1439  std::future<reply> type(const std::string &key);
    1440 
    1441  client &unwatch(const reply_callback_t &reply_callback);
    1442 
    1443  std::future<reply> unwatch();
    1444 
    1445  client &wait(int numslaves, int timeout, const reply_callback_t &reply_callback);
    1446 
    1447  std::future<reply> wait(int numslaves, int timeout);
    1448 
    1449  client &watch(const std::vector<std::string> &keys, const reply_callback_t &reply_callback);
    1450 
    1451  std::future<reply> watch(const std::vector<std::string> &keys);
    1452 
    1453  client &xack(const std::string &key, const std::string &group, const std::vector<std::string> &id_members,
    1454  const reply_callback_t &reply_callback);
    1455 
    1456  std::future<reply>
    1457  xack(const std::string &key, const std::string &group, const std::vector<std::string> &id_members);
    1458 
    1459  client &
    1460  xadd(const std::string &key, const std::string &id, const std::multimap<std::string, std::string> &field_members,
    1461  const reply_callback_t &reply_callback);
    1462 
    1463  std::future<reply>
    1464  xadd(const std::string &key, const std::string &id, const std::multimap<std::string, std::string> &field_members);
    1465 
    1466  client &xclaim(const std::string &key, const std::string &group, const std::string &consumer, int min_idle_time,
    1467  const std::vector<std::string> &id_members, const reply_callback_t &reply_callback);
    1468 
    1469  std::future<reply>
    1470  xclaim(const std::string &key, const std::string &group, const std::string &consumer, const int &min_idle_time,
    1471  const std::vector<std::string> &id_members);
    1472 
    1473  client &
    1474  xdel(const std::string &key, const std::vector<std::string> &id_members, const reply_callback_t &reply_callback);
    1475 
    1476  std::future<reply> xdel(const std::string &key, const std::vector<std::string> &id_members);
    1477 
    1478  client &
    1479  xgroup_create(const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback);
    1480 
    1481  client &
    1482  xgroup_create(const std::string &key, const std::string &group_name, const std::string &id,
    1483  const reply_callback_t &reply_callback);
    1484 
    1485  std::future<reply>
    1486  xgroup_create(const std::string &key, const std::string &group_name, const std::string &id = "$");
    1487 
    1488  client &
    1489  xgroup_set_id(const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback);
    1490 
    1491  client &
    1492  xgroup_set_id(const std::string &key, const std::string &group_name, const std::string &id,
    1493  const reply_callback_t &reply_callback);
    1494 
    1495  std::future<reply>
    1496  xgroup_set_id(const std::string &key, const std::string &group_name, const std::string &id = "$");
    1497 
    1498  client &
    1499  xgroup_destroy(const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback);
    1500 
    1501  std::future<reply> xgroup_destroy(const std::string &key, const std::string &group_name);
    1502 
    1503  client &
    1504  xgroup_del_consumer(const std::string &key, const std::string &group_name, const std::string &consumer_name,
    1505  const reply_callback_t &reply_callback);
    1506 
    1507  std::future<reply>
    1508  xgroup_del_consumer(const std::string &key, const std::string &group_name, const std::string &consumer_name);
    1509 
    1516  client & xinfo_consumers(const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback);
    1517 
    1524  std::future<reply> xinfo_consumers(const std::string &key, const std::string &group_name);
    1525 
    1532  client & xinfo_groups(const std::string &key, const reply_callback_t &reply_callback);
    1533 
    1539  std::future<reply> xinfo_groups(const std::string &key);
    1540 
    1541  client & xinfo_stream(const std::string &key, const reply_callback_t &reply_callback);
    1542  std::future<reply> xinfo_stream(const std::string &key);
    1543 
    1553  client & xlen(const std::string &key, const reply_callback_t &reply_callback);
    1559  std::future<reply> xlen(const std::string &key);
    1560 
    1561  client &zadd(const std::string &key, const std::vector<std::string> &options,
    1562  const std::multimap<std::string, std::string> &score_members,
    1563  const reply_callback_t &reply_callback);
    1564 
    1565  std::future<reply> zadd(const std::string &key, const std::vector<std::string> &options,
    1566  const std::multimap<std::string, std::string> &score_members);
    1567 
    1568  client &zcard(const std::string &key, const reply_callback_t &reply_callback);
    1569 
    1570  std::future<reply> zcard(const std::string &key);
    1571 
    1572  client &zcount(const std::string &key, int min, int max, const reply_callback_t &reply_callback);
    1573 
    1574  std::future<reply> zcount(const std::string &key, int min, int max);
    1575 
    1576  client &zcount(const std::string &key, double min, double max, const reply_callback_t &reply_callback);
    1577 
    1578  std::future<reply> zcount(const std::string &key, double min, double max);
    1579 
    1580  client &zcount(const std::string &key, const std::string &min, const std::string &max,
    1581  const reply_callback_t &reply_callback);
    1582 
    1583  std::future<reply> zcount(const std::string &key, const std::string &min, const std::string &max);
    1584 
    1585  client &
    1586  zincrby(const std::string &key, int incr, const std::string &member, const reply_callback_t &reply_callback);
    1587 
    1588  std::future<reply> zincrby(const std::string &key, int incr, const std::string &member);
    1589 
    1590  client &
    1591  zincrby(const std::string &key, double incr, const std::string &member, const reply_callback_t &reply_callback);
    1592 
    1593  std::future<reply> zincrby(const std::string &key, double incr, const std::string &member);
    1594 
    1595  client &zincrby(const std::string &key, const std::string &incr, const std::string &member,
    1596  const reply_callback_t &reply_callback);
    1597 
    1598  std::future<reply> zincrby(const std::string &key, const std::string &incr, const std::string &member);
    1599 
    1600  client &zinterstore(const std::string &destination, std::size_t numkeys, const std::vector<std::string> &keys,
    1601  std::vector<std::size_t> weights, aggregate_method method,
    1602  const reply_callback_t &reply_callback);
    1603 
    1604  std::future<reply>
    1605  zinterstore(const std::string &destination, std::size_t numkeys, const std::vector<std::string> &keys,
    1606  std::vector<std::size_t> weights, aggregate_method method);
    1607 
    1608  client &zlexcount(const std::string &key, int min, int max, const reply_callback_t &reply_callback);
    1609 
    1610  std::future<reply> zlexcount(const std::string &key, int min, int max);
    1611 
    1612  client &zlexcount(const std::string &key, double min, double max, const reply_callback_t &reply_callback);
    1613 
    1614  std::future<reply> zlexcount(const std::string &key, double min, double max);
    1615 
    1616  client &zlexcount(const std::string &key, const std::string &min, const std::string &max,
    1617  const reply_callback_t &reply_callback);
    1618 
    1619  std::future<reply> zlexcount(const std::string &key, const std::string &min, const std::string &max);
    1620 
    1621  client &zrange(const std::string &key, int start, int stop, const reply_callback_t &reply_callback);
    1622 
    1623  client &
    1624  zrange(const std::string &key, int start, int stop, bool withscores, const reply_callback_t &reply_callback);
    1625 
    1626  std::future<reply> zrange(const std::string &key, int start, int stop, bool withscores = false);
    1627 
    1628  client &zrange(const std::string &key, double start, double stop, const reply_callback_t &reply_callback);
    1629 
    1630  client &zrange(const std::string &key, double start, double stop, bool withscores,
    1631  const reply_callback_t &reply_callback);
    1632 
    1633  std::future<reply> zrange(const std::string &key, double start, double stop, bool withscores = false);
    1634 
    1635  client &zrange(const std::string &key, const std::string &start, const std::string &stop,
    1636  const reply_callback_t &reply_callback);
    1637 
    1638  client &zrange(const std::string &key, const std::string &start, const std::string &stop, bool withscores,
    1639  const reply_callback_t &reply_callback);
    1640 
    1641  std::future<reply>
    1642  zrange(const std::string &key, const std::string &start, const std::string &stop, bool withscores = false);
    1643 
    1644  client &zrangebylex(const std::string &key, int min, int max, const reply_callback_t &reply_callback);
    1645 
    1646  client &
    1647  zrangebylex(const std::string &key, int min, int max, bool withscores, const reply_callback_t &reply_callback);
    1648 
    1649  std::future<reply> zrangebylex(const std::string &key, int min, int max, bool withscores = false);
    1650 
    1651  client &zrangebylex(const std::string &key, double min, double max, const reply_callback_t &reply_callback);
    1652 
    1653  client &zrangebylex(const std::string &key, double min, double max, bool withscores,
    1654  const reply_callback_t &reply_callback);
    1655 
    1656  std::future<reply> zrangebylex(const std::string &key, double min, double max, bool withscores = false);
    1657 
    1658  client &zrangebylex(const std::string &key, const std::string &min, const std::string &max,
    1659  const reply_callback_t &reply_callback);
    1660 
    1661  client &zrangebylex(const std::string &key, const std::string &min, const std::string &max, bool withscores,
    1662  const reply_callback_t &reply_callback);
    1663 
    1664  std::future<reply>
    1665  zrangebylex(const std::string &key, const std::string &min, const std::string &max, bool withscores = false);
    1666 
    1667  client &zrangebylex(const std::string &key, int min, int max, std::size_t offset, std::size_t count,
    1668  const reply_callback_t &reply_callback);
    1669 
    1670  client &
    1671  zrangebylex(const std::string &key, int min, int max, std::size_t offset, std::size_t count, bool withscores,
    1672  const reply_callback_t &reply_callback);
    1673 
    1674  std::future<reply> zrangebylex(const std::string &key, int min, int max, std::size_t offset, std::size_t count,
    1675  bool withscores = false);
    1676 
    1677  client &zrangebylex(const std::string &key, double min, double max, std::size_t offset, std::size_t count,
    1678  const reply_callback_t &reply_callback);
    1679 
    1680  client &zrangebylex(const std::string &key, double min, double max, std::size_t offset, std::size_t count,
    1681  bool withscores, const reply_callback_t &reply_callback);
    1682 
    1683  std::future<reply>
    1684  zrangebylex(const std::string &key, double min, double max, std::size_t offset, std::size_t count,
    1685  bool withscores = false);
    1686 
    1687  client &zrangebylex(const std::string &key, const std::string &min, const std::string &max, std::size_t offset,
    1688  std::size_t count, const reply_callback_t &reply_callback);
    1689 
    1690  client &zrangebylex(const std::string &key, const std::string &min, const std::string &max, std::size_t offset,
    1691  std::size_t count, bool withscores, const reply_callback_t &reply_callback);
    1692 
    1693  std::future<reply>
    1694  zrangebylex(const std::string &key, const std::string &min, const std::string &max, std::size_t offset,
    1695  std::size_t count, bool withscores = false);
    1696 
    1697  client &zrangebyscore(const std::string &key, int min, int max, const reply_callback_t &reply_callback);
    1698 
    1699  client &
    1700  zrangebyscore(const std::string &key, int min, int max, bool withscores, const reply_callback_t &reply_callback);
    1701 
    1702  std::future<reply> zrangebyscore(const std::string &key, int min, int max, bool withscores = false);
    1703 
    1704  client &zrangebyscore(const std::string &key, double min, double max, const reply_callback_t &reply_callback);
    1705 
    1706  client &zrangebyscore(const std::string &key, double min, double max, bool withscores,
    1707  const reply_callback_t &reply_callback);
    1708 
    1709  std::future<reply> zrangebyscore(const std::string &key, double min, double max, bool withscores = false);
    1710 
    1711  client &zrangebyscore(const std::string &key, const std::string &min, const std::string &max,
    1712  const reply_callback_t &reply_callback);
    1713 
    1714  client &zrangebyscore(const std::string &key, const std::string &min, const std::string &max, bool withscores,
    1715  const reply_callback_t &reply_callback);
    1716 
    1717  std::future<reply>
    1718  zrangebyscore(const std::string &key, const std::string &min, const std::string &max, bool withscores = false);
    1719 
    1720  client &zrangebyscore(const std::string &key, int min, int max, std::size_t offset, std::size_t count,
    1721  const reply_callback_t &reply_callback);
    1722 
    1723  client &
    1724  zrangebyscore(const std::string &key, int min, int max, std::size_t offset, std::size_t count, bool withscores,
    1725  const reply_callback_t &reply_callback);
    1726 
    1727  std::future<reply> zrangebyscore(const std::string &key, int min, int max, std::size_t offset, std::size_t count,
    1728  bool withscores = false);
    1729 
    1730  client &zrangebyscore(const std::string &key, double min, double max, std::size_t offset, std::size_t count,
    1731  const reply_callback_t &reply_callback);
    1732 
    1733  client &zrangebyscore(const std::string &key, double min, double max, std::size_t offset, std::size_t count,
    1734  bool withscores, const reply_callback_t &reply_callback);
    1735 
    1736  std::future<reply>
    1737  zrangebyscore(const std::string &key, double min, double max, std::size_t offset, std::size_t count,
    1738  bool withscores = false);
    1739 
    1740  client &zrangebyscore(const std::string &key, const std::string &min, const std::string &max, std::size_t offset,
    1741  std::size_t count, const reply_callback_t &reply_callback);
    1742 
    1743  client &zrangebyscore(const std::string &key, const std::string &min, const std::string &max, std::size_t offset,
    1744  std::size_t count, bool withscores, const reply_callback_t &reply_callback);
    1745 
    1746  std::future<reply>
    1747  zrangebyscore(const std::string &key, const std::string &min, const std::string &max, std::size_t offset,
    1748  std::size_t count, bool withscores = false);
    1749 
    1750  client &zrank(const std::string &key, const std::string &member, const reply_callback_t &reply_callback);
    1751 
    1752  std::future<reply> zrank(const std::string &key, const std::string &member);
    1753 
    1754  client &
    1755  zrem(const std::string &key, const std::vector<std::string> &members, const reply_callback_t &reply_callback);
    1756 
    1757  std::future<reply> zrem(const std::string &key, const std::vector<std::string> &members);
    1758 
    1759  client &zremrangebylex(const std::string &key, int min, int max, const reply_callback_t &reply_callback);
    1760 
    1761  std::future<reply> zremrangebylex(const std::string &key, int min, int max);
    1762 
    1763  client &zremrangebylex(const std::string &key, double min, double max, const reply_callback_t &reply_callback);
    1764 
    1765  std::future<reply> zremrangebylex(const std::string &key, double min, double max);
    1766 
    1767  client &zremrangebylex(const std::string &key, const std::string &min, const std::string &max,
    1768  const reply_callback_t &reply_callback);
    1769 
    1770  std::future<reply> zremrangebylex(const std::string &key, const std::string &min, const std::string &max);
    1771 
    1772  client &zremrangebyrank(const std::string &key, int start, int stop, const reply_callback_t &reply_callback);
    1773 
    1774  std::future<reply> zremrangebyrank(const std::string &key, int start, int stop);
    1775 
    1776  client &
    1777  zremrangebyrank(const std::string &key, double start, double stop, const reply_callback_t &reply_callback);
    1778 
    1779  std::future<reply> zremrangebyrank(const std::string &key, double start, double stop);
    1780 
    1781  client &zremrangebyrank(const std::string &key, const std::string &start, const std::string &stop,
    1782  const reply_callback_t &reply_callback);
    1783 
    1784  std::future<reply> zremrangebyrank(const std::string &key, const std::string &start, const std::string &stop);
    1785 
    1786  client &zremrangebyscore(const std::string &key, int min, int max, const reply_callback_t &reply_callback);
    1787 
    1788  std::future<reply> zremrangebyscore(const std::string &key, int min, int max);
    1789 
    1790  client &zremrangebyscore(const std::string &key, double min, double max, const reply_callback_t &reply_callback);
    1791 
    1792  std::future<reply> zremrangebyscore(const std::string &key, double min, double max);
    1793 
    1794  client &zremrangebyscore(const std::string &key, const std::string &min, const std::string &max,
    1795  const reply_callback_t &reply_callback);
    1796 
    1797  std::future<reply> zremrangebyscore(const std::string &key, const std::string &min, const std::string &max);
    1798 
    1799  client &zrevrange(const std::string &key, int start, int stop, const reply_callback_t &reply_callback);
    1800 
    1801  client &
    1802  zrevrange(const std::string &key, int start, int stop, bool withscores, const reply_callback_t &reply_callback);
    1803 
    1804  std::future<reply> zrevrange(const std::string &key, int start, int stop, bool withscores = false);
    1805 
    1806  client &zrevrange(const std::string &key, double start, double stop, const reply_callback_t &reply_callback);
    1807 
    1808  client &zrevrange(const std::string &key, double start, double stop, bool withscores,
    1809  const reply_callback_t &reply_callback);
    1810 
    1811  std::future<reply> zrevrange(const std::string &key, double start, double stop, bool withscores = false);
    1812 
    1813  client &zrevrange(const std::string &key, const std::string &start, const std::string &stop,
    1814  const reply_callback_t &reply_callback);
    1815 
    1816  client &zrevrange(const std::string &key, const std::string &start, const std::string &stop, bool withscores,
    1817  const reply_callback_t &reply_callback);
    1818 
    1819  std::future<reply>
    1820  zrevrange(const std::string &key, const std::string &start, const std::string &stop, bool withscores = false);
    1821 
    1822  client &zrevrangebylex(const std::string &key, int max, int min, const reply_callback_t &reply_callback);
    1823 
    1824  client &
    1825  zrevrangebylex(const std::string &key, int max, int min, bool withscores, const reply_callback_t &reply_callback);
    1826 
    1827  std::future<reply> zrevrangebylex(const std::string &key, int max, int min, bool withscores = false);
    1828 
    1829  client &zrevrangebylex(const std::string &key, double max, double min, const reply_callback_t &reply_callback);
    1830 
    1831  client &zrevrangebylex(const std::string &key, double max, double min, bool withscores,
    1832  const reply_callback_t &reply_callback);
    1833 
    1834  std::future<reply> zrevrangebylex(const std::string &key, double max, double min, bool withscores = false);
    1835 
    1836  client &zrevrangebylex(const std::string &key, const std::string &max, const std::string &min,
    1837  const reply_callback_t &reply_callback);
    1838 
    1839  client &zrevrangebylex(const std::string &key, const std::string &max, const std::string &min, bool withscores,
    1840  const reply_callback_t &reply_callback);
    1841 
    1842  std::future<reply>
    1843  zrevrangebylex(const std::string &key, const std::string &max, const std::string &min, bool withscores = false);
    1844 
    1845  client &zrevrangebylex(const std::string &key, int max, int min, std::size_t offset, std::size_t count,
    1846  const reply_callback_t &reply_callback);
    1847 
    1848  client &
    1849  zrevrangebylex(const std::string &key, int max, int min, std::size_t offset, std::size_t count, bool withscores,
    1850  const reply_callback_t &reply_callback);
    1851 
    1852  std::future<reply> zrevrangebylex(const std::string &key, int max, int min, std::size_t offset, std::size_t count,
    1853  bool withscores = false);
    1854 
    1855  client &zrevrangebylex(const std::string &key, double max, double min, std::size_t offset, std::size_t count,
    1856  const reply_callback_t &reply_callback);
    1857 
    1858  client &zrevrangebylex(const std::string &key, double max, double min, std::size_t offset, std::size_t count,
    1859  bool withscores, const reply_callback_t &reply_callback);
    1860 
    1861  std::future<reply>
    1862  zrevrangebylex(const std::string &key, double max, double min, std::size_t offset, std::size_t count,
    1863  bool withscores = false);
    1864 
    1865  client &zrevrangebylex(const std::string &key, const std::string &max, const std::string &min, std::size_t offset,
    1866  std::size_t count, const reply_callback_t &reply_callback);
    1867 
    1868  client &zrevrangebylex(const std::string &key, const std::string &max, const std::string &min, std::size_t offset,
    1869  std::size_t count, bool withscores, const reply_callback_t &reply_callback);
    1870 
    1871  std::future<reply>
    1872  zrevrangebylex(const std::string &key, const std::string &max, const std::string &min, std::size_t offset,
    1873  std::size_t count, bool withscores = false);
    1874 
    1875  client &zrevrangebyscore(const std::string &key, int max, int min, const reply_callback_t &reply_callback);
    1876 
    1877  client &zrevrangebyscore(const std::string &key, int max, int min, bool withscores,
    1878  const reply_callback_t &reply_callback);
    1879 
    1880  std::future<reply> zrevrangebyscore(const std::string &key, int max, int min, bool withscores = false);
    1881 
    1882  client &zrevrangebyscore(const std::string &key, double max, double min, const reply_callback_t &reply_callback);
    1883 
    1884  client &zrevrangebyscore(const std::string &key, double max, double min, bool withscores,
    1885  const reply_callback_t &reply_callback);
    1886 
    1887  std::future<reply> zrevrangebyscore(const std::string &key, double max, double min, bool withscores = false);
    1888 
    1889  client &zrevrangebyscore(const std::string &key, const std::string &max, const std::string &min,
    1890  const reply_callback_t &reply_callback);
    1891 
    1892  client &zrevrangebyscore(const std::string &key, const std::string &max, const std::string &min, bool withscores,
    1893  const reply_callback_t &reply_callback);
    1894 
    1895  std::future<reply>
    1896  zrevrangebyscore(const std::string &key, const std::string &max, const std::string &min, bool withscores = false);
    1897 
    1898  client &zrevrangebyscore(const std::string &key, int max, int min, std::size_t offset, std::size_t count,
    1899  const reply_callback_t &reply_callback);
    1900 
    1901  client &
    1902  zrevrangebyscore(const std::string &key, int max, int min, std::size_t offset, std::size_t count, bool withscores,
    1903  const reply_callback_t &reply_callback);
    1904 
    1905  std::future<reply>
    1906  zrevrangebyscore(const std::string &key, int max, int min, std::size_t offset, std::size_t count,
    1907  bool withscores = false);
    1908 
    1909  client &zrevrangebyscore(const std::string &key, double max, double min, std::size_t offset, std::size_t count,
    1910  const reply_callback_t &reply_callback);
    1911 
    1912  client &zrevrangebyscore(const std::string &key, double max, double min, std::size_t offset, std::size_t count,
    1913  bool withscores, const reply_callback_t &reply_callback);
    1914 
    1915  std::future<reply>
    1916  zrevrangebyscore(const std::string &key, double max, double min, std::size_t offset, std::size_t count,
    1917  bool withscores = false);
    1918 
    1919  client &
    1920  zrevrangebyscore(const std::string &key, const std::string &max, const std::string &min, std::size_t offset,
    1921  std::size_t count, const reply_callback_t &reply_callback);
    1922 
    1923  client &
    1924  zrevrangebyscore(const std::string &key, const std::string &max, const std::string &min, std::size_t offset,
    1925  std::size_t count, bool withscores, const reply_callback_t &reply_callback);
    1926 
    1927  std::future<reply>
    1928  zrevrangebyscore(const std::string &key, const std::string &max, const std::string &min, std::size_t offset,
    1929  std::size_t count, bool withscores = false);
    1930 
    1931  client &zrevrank(const std::string &key, const std::string &member, const reply_callback_t &reply_callback);
    1932 
    1933  std::future<reply> zrevrank(const std::string &key, const std::string &member);
    1934 
    1935  client &zscan(const std::string &key, std::size_t cursor, const reply_callback_t &reply_callback);
    1936 
    1937  std::future<reply> zscan(const std::string &key, std::size_t cursor);
    1938 
    1939  client &zscan(const std::string &key, std::size_t cursor, const std::string &pattern,
    1940  const reply_callback_t &reply_callback);
    1941 
    1942  std::future<reply> zscan(const std::string &key, std::size_t cursor, const std::string &pattern);
    1943 
    1944  client &
    1945  zscan(const std::string &key, std::size_t cursor, std::size_t count, const reply_callback_t &reply_callback);
    1946 
    1947  std::future<reply> zscan(const std::string &key, std::size_t cursor, std::size_t count);
    1948 
    1949  client &zscan(const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count,
    1950  const reply_callback_t &reply_callback);
    1951 
    1952  std::future<reply>
    1953  zscan(const std::string &key, std::size_t cursor, const std::string &pattern, std::size_t count);
    1954 
    1955  client &zscore(const std::string &key, const std::string &member, const reply_callback_t &reply_callback);
    1956 
    1957  std::future<reply> zscore(const std::string &key, const std::string &member);
    1958 
    1959  client &zunionstore(const std::string &destination, std::size_t numkeys, const std::vector<std::string> &keys,
    1960  std::vector<std::size_t> weights, aggregate_method method,
    1961  const reply_callback_t &reply_callback);
    1962 
    1963  std::future<reply>
    1964  zunionstore(const std::string &destination, std::size_t numkeys, const std::vector<std::string> &keys,
    1965  std::vector<std::size_t> weights, aggregate_method method);
    1966 
    1967  private:
    1969  template<typename T>
    1970  typename std::enable_if<std::is_same<T, client_type>::value>::type
    1971  client_kill_unpack_arg(std::vector<std::string> &redis_cmd, reply_callback_t &, client_type type);
    1972 
    1973  template<typename T>
    1974  typename std::enable_if<std::is_same<T, bool>::value>::type
    1975  client_kill_unpack_arg(std::vector<std::string> &redis_cmd, reply_callback_t &, bool skip);
    1976 
    1977  template<typename T>
    1978  typename std::enable_if<std::is_integral<T>::value>::type
    1979  client_kill_unpack_arg(std::vector<std::string> &redis_cmd, reply_callback_t &, uint64_t id);
    1980 
    1981  template<typename T>
    1982  typename std::enable_if<std::is_class<T>::value>::type
    1983  client_kill_unpack_arg(std::vector<std::string> &, reply_callback_t &reply_callback, const T &cb);
    1984 
    1985  template<typename T, typename... Ts>
    1986  void
    1987  client_kill_impl(std::vector<std::string> &redis_cmd, reply_callback_t &reply, const T &arg, const Ts &... args);
    1988 
    1989  template<typename T>
    1990  void
    1991  client_kill_impl(std::vector<std::string> &redis_cmd, reply_callback_t &reply, const T &arg);
    1992 
    1993  private:
    1995  client &
    1996  sort(const std::string &key, const std::string &by_pattern, bool limit, std::size_t offset, std::size_t count,
    1997  const std::vector<std::string> &get_patterns, bool asc_order, bool alpha, const std::string &store_dest,
    1998  const reply_callback_t &reply_callback);
    1999 
    2001  client &zrevrangebyscore(const std::string &key, const std::string &max, const std::string &min, bool limit,
    2002  std::size_t offset, std::size_t count, bool withscores,
    2003  const reply_callback_t &reply_callback);
    2004 
    2006  client &zrangebyscore(const std::string &key, const std::string &min, const std::string &max, bool limit,
    2007  std::size_t offset, std::size_t count, bool withscores,
    2008  const reply_callback_t &reply_callback);
    2009 
    2011  client &zrevrangebylex(const std::string &key, const std::string &max, const std::string &min, bool limit,
    2012  std::size_t offset, std::size_t count, bool withscores,
    2013  const reply_callback_t &reply_callback);
    2014 
    2016  client &zrangebylex(const std::string &key, const std::string &min, const std::string &max, bool limit,
    2017  std::size_t offset, std::size_t count, bool withscores,
    2018  const reply_callback_t &reply_callback);
    2019 
    2020  private:
    2027  void connection_receive_handler(network::redis_connection &connection, reply &reply);
    2028 
    2034  void connection_disconnection_handler(network::redis_connection &connection);
    2035 
    2039  void clear_callbacks();
    2040 
    2045  void try_commit();
    2046 
    2048  std::future<reply> exec_cmd(const std::function<client &(const reply_callback_t &)> &f);
    2049 
    2050  private:
    2054  struct command_request {
    2055  std::vector<std::string> command;
    2056  reply_callback_t callback;
    2057  };
    2058 
    2059  private:
    2063  std::string m_redis_server;
    2067  std::size_t m_redis_port = 0;
    2071  std::string m_master_name;
    2075  std::string m_password;
    2079  int m_database_index = 0;
    2080 
    2084  network::redis_connection m_client;
    2085 
    2089  cpp_redis::sentinel m_sentinel;
    2090 
    2094  std::uint32_t m_connect_timeout_msecs = 0;
    2098  std::int32_t m_max_reconnects = 0;
    2102  std::int32_t m_current_reconnect_attempts = 0;
    2106  std::uint32_t m_reconnect_interval_msecs = 0;
    2107 
    2111  std::atomic_bool m_reconnecting;
    2115  std::atomic_bool m_cancel;
    2116 
    2120  std::queue<command_request> m_commands;
    2121 
    2125  connect_callback_t m_connect_callback;
    2126 
    2130  std::mutex m_callbacks_mutex;
    2131 
    2135  std::condition_variable m_sync_condvar;
    2136 
    2140  std::atomic<unsigned int> m_callbacks_running;
    2141  }; // namespace cpp_redis
    2142 
    2143 } // namespace cpp_redis
    2144 
    2145 #include <cpp_redis/impl/client.ipp>
    Definition: redis_connection.hpp:45
    +
    client & commit()
    Definition: client.hpp:48
    + +
    client & xinfo_consumers(const std::string &key, const std::string &group_name, const reply_callback_t &reply_callback)
    introspection command used in order to retrieve different information about the consumer groups ...
    +
    std::function< void(reply &)> reply_callback_t
    Definition: client.hpp:172
    +
    const sentinel & get_sentinel() const
    client & operator=(const client &)=delete
    assignment operator
    -
    Definition: client.hpp:412
    -
    void cancel_reconnect(void)
    -
    geo_unit
    Definition: client.hpp:352
    -
    bitfield_operation_type operation_type
    Definition: client.hpp:416
    + +
    client & sync_commit()
    +
    Definition: client.hpp:415
    +
    client & xlen(const std::string &key, const reply_callback_t &reply_callback)
    Returns the number of entries inside a stream. If the specified key does not exist the command return...
    +
    geo_unit
    Definition: client.hpp:355
    +
    bitfield_operation_type operation_type
    Definition: client.hpp:419
    client & client_kill(const std::string &host, int port, const T &arg, const Ts &... args)
    Definition: client.ipp:93
    Definition: reply.hpp:37
    -
    bitfield_operation_type
    Definition: client.hpp:393
    +
    bool is_connected() const
    +
    static bitfield_operation incrby(const std::string &type, int offset, int increment, overflow_type overflow=overflow_type::server_default)
    +
    bitfield_operation_type
    Definition: client.hpp:396
    std::string aggregate_method_to_string(aggregate_method method) const
    -
    client & sync_commit(const std::chrono::duration< Rep, Period > &timeout)
    Definition: client.hpp:217
    +
    client & sync_commit(const std::chrono::duration< Rep, Period > &timeout)
    Definition: client.hpp:220
    std::string geo_unit_to_string(geo_unit unit) const
    -
    bool is_reconnecting(void) const
    connect_state
    Definition: client.hpp:71
    -
    std::function< void(reply &)> reply_callback_t
    Definition: client.hpp:169
    void add_sentinel(const std::string &host, std::size_t port, std::uint32_t timeout_msecs=0)
    -
    std::string type
    Definition: client.hpp:421
    +
    std::string type
    Definition: client.hpp:424
    std::string overflow_type_to_string(overflow_type type) const
    void disconnect(bool wait_for_removal=false)
    -
    client & sync_commit(void)
    +
    bool is_reconnecting() const
    client & send(const std::vector< std::string > &redis_cmd, const reply_callback_t &callback)
    Definition: sentinel.hpp:40
    + +
    std::function< void(const std::string &host, std::size_t port, connect_state status)> connect_callback_t
    Definition: client.hpp:109
    +
    client & xinfo_groups(const std::string &key, const reply_callback_t &reply_callback)
    std::string bitfield_operation_type_to_string(bitfield_operation_type operation) const
    -
    void clear_sentinels(void)
    -
    overflow_type overflow
    Definition: client.hpp:436
    +
    overflow_type overflow
    Definition: client.hpp:439
    void connect(const std::string &host="127.0.0.1", std::size_t port=6379, const connect_callback_t &connect_callback=nullptr, std::uint32_t timeout_msecs=0, std::int32_t max_reconnects=0, std::uint32_t reconnect_interval_msecs=0)
    -
    const sentinel & get_sentinel(void) const
    client_type
    Definition: client.hpp:54
    -
    std::function< void(const std::string &host, std::size_t port, connect_state status)> connect_callback_t
    Definition: client.hpp:106
    -
    int offset
    Definition: client.hpp:426
    -
    overflow_type
    Definition: client.hpp:373
    -
    int value
    Definition: client.hpp:431
    -
    ~client(void)
    dtor
    -
    bool is_connected(void) const
    -
    client & commit(void)
    +
    std::future< reply > client_kill_future(T, const Ts...)
    Definition: client.ipp:122
    +
    int offset
    Definition: client.hpp:429
    + +
    overflow_type
    Definition: client.hpp:376
    +
    int value
    Definition: client.hpp:434
    Definition: array_builder.hpp:29
    -
    aggregate_method
    Definition: client.hpp:332
    +
    aggregate_method
    Definition: client.hpp:335
    diff --git a/docs/html/client_8ipp.html b/docs/html/client_8ipp.html index 5c7ecfbb..b65bfceb 100644 --- a/docs/html/client_8ipp.html +++ b/docs/html/client_8ipp.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/impl/client.ipp File Reference @@ -55,7 +55,7 @@
    @@ -74,7 +74,7 @@
    #include <functional>
    #include <iostream>
    - diff --git a/docs/html/dir_09e761304027c904456130627fd4dcf5.html b/docs/html/dir_09e761304027c904456130627fd4dcf5.html index 75580bf9..1b72529e 100644 --- a/docs/html/dir_09e761304027c904456130627fd4dcf5.html +++ b/docs/html/dir_09e761304027c904456130627fd4dcf5.html @@ -3,8 +3,8 @@ - - + +cpp_redis: includes Directory Reference @@ -32,18 +32,21 @@

    +

    Namespaces

     cpp_redis
     
    - + +/* @license-end */
    @@ -74,7 +77,7 @@ diff --git a/docs/html/dir_352251206f2e216e88810b5fb29f51c8.html b/docs/html/dir_352251206f2e216e88810b5fb29f51c8.html index 91988c63..1a117c91 100644 --- a/docs/html/dir_352251206f2e216e88810b5fb29f51c8.html +++ b/docs/html/dir_352251206f2e216e88810b5fb29f51c8.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/builders Directory Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -74,7 +77,7 @@ diff --git a/docs/html/dir_385d11d1b9f28fad9d9928b9e15978bd.html b/docs/html/dir_385d11d1b9f28fad9d9928b9e15978bd.html index de922170..cc188f54 100644 --- a/docs/html/dir_385d11d1b9f28fad9d9928b9e15978bd.html +++ b/docs/html/dir_385d11d1b9f28fad9d9928b9e15978bd.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/network Directory Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -74,7 +77,7 @@ diff --git a/docs/html/dir_4a9a619cb35b7ba799bd8912e91a56ec.html b/docs/html/dir_4a9a619cb35b7ba799bd8912e91a56ec.html index 6b49b8f2..7dba244f 100644 --- a/docs/html/dir_4a9a619cb35b7ba799bd8912e91a56ec.html +++ b/docs/html/dir_4a9a619cb35b7ba799bd8912e91a56ec.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/helpers Directory Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -74,7 +77,7 @@ diff --git a/docs/html/dir_4c391377e6d701cd473ddfe3ca211243.html b/docs/html/dir_4c391377e6d701cd473ddfe3ca211243.html index f8a6db2d..7f7b6e88 100644 --- a/docs/html/dir_4c391377e6d701cd473ddfe3ca211243.html +++ b/docs/html/dir_4c391377e6d701cd473ddfe3ca211243.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/misc Directory Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -74,7 +77,7 @@ diff --git a/docs/html/dir_4cd0548f4edb17fdac03175eefab51fa.html b/docs/html/dir_4cd0548f4edb17fdac03175eefab51fa.html index 2b115088..247a8671 100644 --- a/docs/html/dir_4cd0548f4edb17fdac03175eefab51fa.html +++ b/docs/html/dir_4cd0548f4edb17fdac03175eefab51fa.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/core Directory Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -74,7 +77,7 @@ diff --git a/docs/html/dir_a1e54deb92a7436074f1a80a5fcea478.html b/docs/html/dir_a1e54deb92a7436074f1a80a5fcea478.html index 90eaeadd..d09c2c26 100644 --- a/docs/html/dir_a1e54deb92a7436074f1a80a5fcea478.html +++ b/docs/html/dir_a1e54deb92a7436074f1a80a5fcea478.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/impl Directory Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -74,7 +77,7 @@ diff --git a/docs/html/dir_aabee9b2b90be9a3c8dcec590ad04d13.html b/docs/html/dir_aabee9b2b90be9a3c8dcec590ad04d13.html index bf14852e..77313565 100644 --- a/docs/html/dir_aabee9b2b90be9a3c8dcec590ad04d13.html +++ b/docs/html/dir_aabee9b2b90be9a3c8dcec590ad04d13.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis Directory Reference @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -70,7 +73,7 @@
    -

    +

    Directories

    @@ -78,7 +81,7 @@ diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css index 4f1ab919..266c8b3a 100644 --- a/docs/html/doxygen.css +++ b/docs/html/doxygen.css @@ -1,4 +1,4 @@ -/* The standard CSS for doxygen 1.8.13 */ +/* The standard CSS for doxygen 1.8.14 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js index 85e18369..c1ce1226 100644 --- a/docs/html/dynsections.js +++ b/docs/html/dynsections.js @@ -1,3 +1,26 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + 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 + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ function toggleVisibility(linkObj) { var base = $(linkObj).attr('id'); @@ -15,7 +38,7 @@ function toggleVisibility(linkObj) summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } + } return false; } @@ -37,7 +60,7 @@ function toggleLevel(level) $(this).show(); } else if (l==level+1) { i.removeClass('iconfclosed iconfopen').addClass('iconfclosed'); - a.html('►'); + a.html('▶'); $(this).show(); } else { $(this).hide(); @@ -64,7 +87,7 @@ function toggleFolder(id) // replace down arrow by right arrow for current row var currentRowSpans = currentRow.find("span"); currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); - currentRowSpans.filter(".arrow").html('►'); + currentRowSpans.filter(".arrow").html('▶'); rows.filter("[id^=row_"+id+"]").hide(); // hide all children } else { // we are SHOWING // replace right arrow by down arrow for current row @@ -74,7 +97,7 @@ function toggleFolder(id) // replace down arrows by right arrows for child rows var childRowsSpans = childRows.find("span"); childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); - childRowsSpans.filter(".arrow").html('►'); + childRowsSpans.filter(".arrow").html('▶'); childRows.show(); //show all children } updateStripes(); @@ -94,4 +117,4 @@ function toggleInherit(id) $(img).attr('src',src.substring(0,src.length-10)+'open.png'); } } - +/* @license-end */ diff --git a/docs/html/error_8hpp.html b/docs/html/error_8hpp.html index 624e80f5..3047dcaf 100644 --- a/docs/html/error_8hpp.html +++ b/docs/html/error_8hpp.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/misc/error.hpp File Reference @@ -55,7 +55,7 @@
    @@ -77,12 +77,12 @@

    Go to the source code of this file.

    -

    +

    Classes

    class  cpp_redis::redis_error
     
    - diff --git a/docs/html/error_8hpp_source.html b/docs/html/error_8hpp_source.html index 44117555..21e027d9 100644 --- a/docs/html/error_8hpp_source.html +++ b/docs/html/error_8hpp_source.html @@ -3,8 +3,8 @@ - - + +cpp_redis: includes/cpp_redis/misc/error.hpp Source File @@ -32,18 +32,21 @@

    +

    Namespaces

     cpp_redis
     

    - + +/* @license-end */
    @@ -69,7 +72,7 @@
    error.hpp
    -
    1 // The MIT License (MIT)
    2 //
    3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
    4 //
    5 // Permission is hereby granted, free of charge, to any person obtaining a copy
    6 // of this software and associated documentation files (the "Software"), to deal
    7 // in the Software without restriction, including without limitation the rights
    8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    9 // copies of the Software, and to permit persons to whom the Software is
    10 // furnished to do so, subject to the following conditions:
    11 //
    12 // The above copyright notice and this permission notice shall be included in all
    13 // copies or substantial portions of the Software.
    14 //
    15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    21 // SOFTWARE.
    22 
    23 #pragma once
    24 
    25 #include <stdexcept>
    26 #include <string>
    27 
    28 namespace cpp_redis {
    29 
    33 class redis_error : public std::runtime_error {
    34 public:
    35  using std::runtime_error::runtime_error;
    36  using std::runtime_error::what;
    37 
    39  explicit redis_error(const std::string& err)
    40  : std::runtime_error(err.c_str()) {
    41  }
    42 
    44  explicit redis_error(const char* err)
    45  : std::runtime_error(err) {
    46  }
    47 };
    48 
    49 } // namespace cpp_redis
    redis_error(const std::string &err)
    ctor (string)
    Definition: error.hpp:39
    +
    1 // The MIT License (MIT)
    2 //
    3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
    4 //
    5 // Permission is hereby granted, free of charge, to any person obtaining a copy
    6 // of this software and associated documentation files (the "Software"), to deal
    7 // in the Software without restriction, including without limitation the rights
    8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    9 // copies of the Software, and to permit persons to whom the Software is
    10 // furnished to do so, subject to the following conditions:
    11 //
    12 // The above copyright notice and this permission notice shall be included in all
    13 // copies or substantial portions of the Software.
    14 //
    15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    21 // SOFTWARE.
    22 
    23 #pragma once
    24 
    25 #include <stdexcept>
    26 #include <string>
    27 
    28 namespace cpp_redis {
    29 
    33 class redis_error : public std::runtime_error {
    34 public:
    35  using std::runtime_error::runtime_error;
    36  using std::runtime_error::what;
    37 
    39  explicit redis_error(const std::string& err)
    40  : std::runtime_error(err.c_str()) {
    41  }
    42 
    44  explicit redis_error(const char* err)
    45  : std::runtime_error(err) {
    46  }
    47 };
    48 
    49 } // namespace cpp_redis
    redis_error(const std::string &err)
    ctor (string)
    Definition: error.hpp:39
    Definition: error.hpp:33
    redis_error(const char *err)
    ctor(char*)
    Definition: error.hpp:44
    Definition: array_builder.hpp:29
    @@ -78,7 +81,7 @@ diff --git a/docs/html/error__builder_8hpp.html b/docs/html/error__builder_8hpp.html index 2944d7ed..3148f99e 100644 --- a/docs/html/error__builder_8hpp.html +++ b/docs/html/error__builder_8hpp.html @@ -3,8 +3,8 @@ - - + + cpp_redis: includes/cpp_redis/builders/error_builder.hpp File Reference @@ -55,7 +55,7 @@
    @@ -78,12 +78,12 @@

    Go to the source code of this file.

    -

    +

    Classes

    class  cpp_redis::builders::error_builder
     
    - diff --git a/docs/html/error__builder_8hpp_source.html b/docs/html/error__builder_8hpp_source.html index b13cea98..2db91e48 100644 --- a/docs/html/error__builder_8hpp_source.html +++ b/docs/html/error__builder_8hpp_source.html @@ -3,8 +3,8 @@ - - + +cpp_redis: includes/cpp_redis/builders/error_builder.hpp Source File @@ -32,18 +32,21 @@

    +

    Namespaces

     cpp_redis
     
    - + +/* @license-end */
    @@ -69,7 +72,7 @@
    error_builder.hpp
    -
    1 // The MIT License (MIT)
    2 //
    3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
    4 //
    5 // Permission is hereby granted, free of charge, to any person obtaining a copy
    6 // of this software and associated documentation files (the "Software"), to deal
    7 // in the Software without restriction, including without limitation the rights
    8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    9 // copies of the Software, and to permit persons to whom the Software is
    10 // furnished to do so, subject to the following conditions:
    11 //
    12 // The above copyright notice and this permission notice shall be included in all
    13 // copies or substantial portions of the Software.
    14 //
    15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    21 // SOFTWARE.
    22 
    23 #pragma once
    24 
    25 #include <cpp_redis/builders/builder_iface.hpp>
    26 #include <cpp_redis/builders/simple_string_builder.hpp>
    27 #include <cpp_redis/core/reply.hpp>
    28 
    29 namespace cpp_redis {
    30 
    31 namespace builders {
    32 
    36 class error_builder : public builder_iface {
    37 public:
    39  error_builder(void) = default;
    41  ~error_builder(void) = default;
    42 
    44  error_builder(const error_builder&) = delete;
    46  error_builder& operator=(const error_builder&) = delete;
    47 
    48 public:
    56  builder_iface& operator<<(std::string& data);
    57 
    61  bool reply_ready(void) const;
    62 
    66  reply get_reply(void) const;
    67 
    71  const std::string& get_error(void) const;
    72 
    73 private:
    77  simple_string_builder m_string_builder;
    78 
    82  reply m_reply;
    83 };
    84 
    85 } // namespace builders
    86 
    87 } // namespace cpp_redis
    error_builder & operator=(const error_builder &)=delete
    assignment operator
    +
    1 // The MIT License (MIT)
    2 //
    3 // Copyright (c) 2015-2017 Simon Ninon <simon.ninon@gmail.com>
    4 //
    5 // Permission is hereby granted, free of charge, to any person obtaining a copy
    6 // of this software and associated documentation files (the "Software"), to deal
    7 // in the Software without restriction, including without limitation the rights
    8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    9 // copies of the Software, and to permit persons to whom the Software is
    10 // furnished to do so, subject to the following conditions:
    11 //
    12 // The above copyright notice and this permission notice shall be included in all
    13 // copies or substantial portions of the Software.
    14 //
    15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    21 // SOFTWARE.
    22 
    23 #pragma once
    24 
    25 #include <cpp_redis/builders/builder_iface.hpp>
    26 #include <cpp_redis/builders/simple_string_builder.hpp>
    27 #include <cpp_redis/core/reply.hpp>
    28 
    29 namespace cpp_redis {
    30 
    31 namespace builders {
    32 
    36 class error_builder : public builder_iface {
    37 public:
    39  error_builder(void) = default;
    41  ~error_builder(void) = default;
    42 
    44  error_builder(const error_builder&) = delete;
    46  error_builder& operator=(const error_builder&) = delete;
    47 
    48 public:
    56  builder_iface& operator<<(std::string& data);
    57 
    61  bool reply_ready(void) const;
    62 
    66  reply get_reply(void) const;
    67 
    71  const std::string& get_error(void) const;
    72 
    73 private:
    77  simple_string_builder m_string_builder;
    78 
    82  reply m_reply;
    83 };
    84 
    85 } // namespace builders
    86 
    87 } // namespace cpp_redis
    error_builder & operator=(const error_builder &)=delete
    assignment operator
    const std::string & get_error(void) const
    Definition: simple_string_builder.hpp:37
    @@ -86,7 +89,7 @@ diff --git a/docs/html/files.html b/docs/html/files.html index 8c769927..d1eb94ac 100644 --- a/docs/html/files.html +++ b/docs/html/files.html @@ -3,8 +3,8 @@ - - + + cpp_redis: File List @@ -32,18 +32,21 @@
    - + +/* @license-end */
    @@ -56,7 +59,7 @@
    @@ -100,7 +103,7 @@ diff --git a/docs/html/functions.html b/docs/html/functions.html index 02d82438..da572475 100644 --- a/docs/html/functions.html +++ b/docs/html/functions.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class Members @@ -32,18 +32,21 @@
    - + +/* @license-end */

    @@ -56,7 +59,7 @@
    @@ -119,7 +122,7 @@

    - a -

      diff --git a/docs/html/functions_0x7e.html b/docs/html/functions_0x7e.html index 5a290655..f0ed21e1 100644 --- a/docs/html/functions_0x7e.html +++ b/docs/html/functions_0x7e.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class Members @@ -32,18 +32,21 @@
    - + +/* @license-end */

    @@ -56,7 +59,7 @@
    @@ -71,7 +74,7 @@

    - ~ -

    - + +/* @license-end */

    @@ -56,7 +59,7 @@
    @@ -83,7 +86,7 @@

    - b -

      diff --git a/docs/html/functions_c.html b/docs/html/functions_c.html index 17cc6eef..ee72b60c 100644 --- a/docs/html/functions_c.html +++ b/docs/html/functions_c.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class Members @@ -32,18 +32,21 @@
    - + +/* @license-end */

    @@ -56,7 +59,7 @@
    @@ -65,13 +68,13 @@

    - c -

    - + +/* @license-end */

@@ -56,7 +59,7 @@
@@ -86,7 +89,7 @@

- d -

    diff --git a/docs/html/functions_e.html b/docs/html/functions_e.html index a79dbf16..f1282473 100644 --- a/docs/html/functions_e.html +++ b/docs/html/functions_e.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class Members @@ -32,18 +32,21 @@
- + +/* @license-end */

@@ -56,7 +59,7 @@
@@ -78,7 +81,7 @@

- e -

    diff --git a/docs/html/functions_enum.html b/docs/html/functions_enum.html index 4e5187bf..a1a5b645 100644 --- a/docs/html/functions_enum.html +++ b/docs/html/functions_enum.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class Members - Enumerations @@ -32,18 +32,21 @@
- + +/* @license-end */
@@ -56,7 +59,7 @@
@@ -96,7 +99,7 @@ diff --git a/docs/html/functions_f.html b/docs/html/functions_f.html index 2421c52a..e8a66467 100644 --- a/docs/html/functions_f.html +++ b/docs/html/functions_f.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class Members @@ -56,7 +56,7 @@
diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html index 1f297851..9b1c301f 100644 --- a/docs/html/functions_func.html +++ b/docs/html/functions_func.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class Members - Functions @@ -32,18 +32,21 @@

- + +/* @license-end */
@@ -56,7 +59,7 @@
@@ -96,409 +99,12 @@

- a -

- - -

- b -

- - -

- c -

- - -

- d -

- - -

- e -

- - -

- g -

- - -

- i -

- - -

- k -

- - -

- l -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- w -

- - -

- ~ -

diff --git a/docs/html/functions_func_0x7e.html b/docs/html/functions_func_0x7e.html index 20b0c34a..1c7fae95 100644 --- a/docs/html/functions_func_0x7e.html +++ b/docs/html/functions_func_0x7e.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class Members - Functions @@ -32,18 +32,21 @@

- + +/* @license-end */
@@ -56,7 +59,7 @@
@@ -67,14 +70,11 @@

- ~ -

- + +/* @license-end */
@@ -56,7 +59,7 @@
@@ -64,42 +67,11 @@  

- b -

@@ -107,7 +79,7 @@

- b -

    diff --git a/docs/html/functions_func_c.html b/docs/html/functions_func_c.html index 1522479f..b3727582 100644 --- a/docs/html/functions_func_c.html +++ b/docs/html/functions_func_c.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class Members - Functions @@ -32,18 +32,21 @@
- + +/* @license-end */

@@ -56,7 +59,7 @@
@@ -64,170 +67,40 @@  

- c -

@@ -235,7 +108,7 @@

- c -

    diff --git a/docs/html/functions_func_d.html b/docs/html/functions_func_d.html index a6e12b36..83786c02 100644 --- a/docs/html/functions_func_d.html +++ b/docs/html/functions_func_d.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class Members - Functions @@ -32,18 +32,21 @@

- + +/* @license-end */
@@ -56,7 +59,7 @@
@@ -64,31 +67,10 @@  

- d -

diff --git a/docs/html/functions_func_e.html b/docs/html/functions_func_e.html index 4271e8cd..056ff619 100644 --- a/docs/html/functions_func_e.html +++ b/docs/html/functions_func_e.html @@ -3,8 +3,8 @@ - - + + cpp_redis: Class Members - Functions @@ -32,18 +32,21 @@ - + +/* @license-end */ @@ -56,7 +59,7 @@
@@ -64,37 +67,13 @@  

- e -

@@ -102,7 +81,7 @@

- e -