From e9302f0fce7d6cac4a287cd08576a55d909a8082 Mon Sep 17 00:00:00 2001 From: Marcelo Zimbres Date: Sat, 30 Jan 2021 23:22:31 +0100 Subject: [PATCH] Adds receiver_ignore. --- examples/async_basic.cpp | 23 +++++++++++------- examples/async_pubsub.cpp | 49 +++++++++++++++++++-------------------- include/aedis/read.hpp | 7 ++++++ 3 files changed, 45 insertions(+), 34 deletions(-) diff --git a/examples/async_basic.cpp b/examples/async_basic.cpp index 1a544b82..83ebfdd6 100644 --- a/examples/async_basic.cpp +++ b/examples/async_basic.cpp @@ -19,23 +19,28 @@ namespace this_coro = net::this_coro; using namespace net; using namespace aedis; +void fill(resp::request& req) +{ + req.multi(); + req.hello(); + req.rpush("list", {1, 2, 3}); + req.lrange("list"); + req.exec(); + req.quit(); +} + net::awaitable example() { try { auto ex = co_await this_coro::executor; - resp::request p; - p.multi(); - p.hello(); - p.rpush("list", {1, 2, 3}); - p.lrange("list"); - p.exec(); - p.quit(); - tcp::resolver resv(ex); tcp_socket socket {ex}; co_await net::async_connect(socket, resv.resolve("127.0.0.1", "6379")); - co_await net::async_write(socket, net::buffer(p.payload)); + + resp::request req; + fill(req); + co_await net::async_write(socket, net::buffer(req.payload)); std::string buffer; for (;;) { diff --git a/examples/async_pubsub.cpp b/examples/async_pubsub.cpp index 268b2261..21f09873 100644 --- a/examples/async_pubsub.cpp +++ b/examples/async_pubsub.cpp @@ -39,34 +39,33 @@ operator<<(std::ostream& os, myevent e) auto fill_req(resp::request& req) { - req.flushall(); - req.subscribe("channel"); - req.subscribe("__keyspace@0__:user:*"); - req.ping(myevent::one); - req.set("aaaa", {std::to_string(1)}); - req.get("aaaa"); - req.del("aaaa"); - req.rpush("user:Marcelo", {1, 2, 3}, myevent::two); - req.lrange("user:Marcelo"); - req.publish("channel", "Some message"); - req.multi(); - req.lrange("user:Marcelo", 0, -1, myevent::zero); - req.exec(); + //req.subscribe("channel"); + //req.subscribe("__keyspace@0__:user:*"); + //req.ping(myevent::one); + //req.set("aaaa", {std::to_string(1)}); + //req.get("aaaa"); + //req.del("aaaa"); + //req.rpush("user:Marcelo", {1, 2, 3}, myevent::two); + //req.lrange("user:Marcelo"); + //req.publish("channel", "Some message"); + //req.multi(); + //req.lrange("user:Marcelo", 0, -1, myevent::zero); + //req.exec(); req.set("aaaa", {std::to_string(2)}); req.get("aaaa"); - req.multi(); - req.lrange("user:Marcelo"); + //req.multi(); + //req.lrange("user:Marcelo"); req.ping(); - req.lrange("user:Marcelo", 0, -1, myevent::zero); + //req.lrange("user:Marcelo", 0, -1, myevent::zero); + //req.ping(); + //req.lrange("user:Marcelo"); req.ping(); - req.lrange("user:Marcelo"); - req.ping(); - req.lrange("user:Marcelo"); - req.lrange("user:Marcelo"); - req.exec(); - req.set("eee", {std::to_string(8)}); - req.get("eee"); - req.del("eee"); + //req.lrange("user:Marcelo"); + //req.lrange("user:Marcelo"); + //req.exec(); + //req.set("eee", {std::to_string(8)}); + //req.get("eee"); + //req.del("eee"); } net::awaitable subscriber() @@ -94,7 +93,7 @@ net::awaitable subscriber() for (;;) { queue_writer(reqs, filler, st); - net::steady_timer timer(ex, std::chrono::milliseconds{100}); + net::steady_timer timer(ex, std::chrono::milliseconds{1000}); co_await timer.async_wait(net::use_awaitable); } diff --git a/include/aedis/read.hpp b/include/aedis/read.hpp index e87c5f60..a934ea6c 100644 --- a/include/aedis/read.hpp +++ b/include/aedis/read.hpp @@ -361,6 +361,13 @@ async_reader( } } +struct receiver_ignore { + template + void receive_transaction(std::queue>) { } + template + void receive(response_id const&) { } +}; + struct receiver_base { // The ids in the queue parameter have an unspecified message type. template