From 53dc3a07274746cf8b6110c3cb256ab78025ca6a Mon Sep 17 00:00:00 2001 From: Denis Blank Date: Sun, 9 Aug 2015 01:47:57 +0200 Subject: [PATCH] more thoughts --- mockup.cpp | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 3 deletions(-) diff --git a/mockup.cpp b/mockup.cpp index 547f8fc..67f8761 100644 --- a/mockup.cpp +++ b/mockup.cpp @@ -1,4 +1,21 @@ +/* + * Copyright (C) 2015 Naios + * + * 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 3 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, see . + */ + #include #include @@ -39,18 +56,36 @@ Continuable<> operator|| (Continuable&&, Continuable& return Continuable<>(); } -Continuable<> http_request(std::string const& /*URL*/) +Continuable<> http_request(std::string const& url) +{ + return make_continuable([=](std::function&& callback) + { + // Do request... + callback("some HTTP content"); + }); +} + +struct ResultSet { }; + +Continuable<> mysql_query(std::string const& query) { return make_continuable([=](std::function&& callback) { // Do request... - callback("some HTTP content"); + callback("a mysql query result"); }); } void test_mockup() { + { + Continuable<> continuable = make_continuable([] + { + return "hey"; + }); + } + Continuable<> c1 = make_continuable([] { }); @@ -63,5 +98,18 @@ void test_mockup() { }); - Continuable<> c11 = (std::move(c1) && std::move(c2)) || std::move(c3); + Continuable<> c4 = make_continuable([] + { + }); + + (std::move(c1) && std::move(c2)) + .then(http_request("https://github.com/") && + http_request("https://www.google.de/") && + mysql_query("SELECT name, session FROM users WHERE id = 3726284")) + .then([](std::string github, std::string google, ResultSet user) + { + // result bla bla + }); + + // Continuable<> c11 = || std::move(c3); }