[Libreoffice-commits] online.git: Branch 'private/Ashod/nonblocking' - net/clientnb.cpp

Michael Meeks michael.meeks at collabora.com
Thu Feb 16 11:46:08 UTC 2017


 net/clientnb.cpp |   35 +++++++++++++++++++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)

New commits:
commit 0c39cd017feb544f14acb253f6c3788ad43cccc5
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Thu Feb 16 11:43:30 2017 +0000

    Thread to poke server.

diff --git a/net/clientnb.cpp b/net/clientnb.cpp
index 87ee8b5..822804d 100644
--- a/net/clientnb.cpp
+++ b/net/clientnb.cpp
@@ -34,6 +34,8 @@
 #include <Poco/Util/HelpFormatter.h>
 #include <Poco/Util/Option.h>
 #include <Poco/Util/OptionSet.h>
+#include <Poco/Runnable.h>
+#include <Poco/Thread.h>
 
 using Poco::Net::HTTPClientSession;
 using Poco::Net::HTTPRequest;
@@ -86,11 +88,11 @@ struct Session
         Poco::Net::HTTPResponse response;
 
         try {
-            std::cerr << "try to get response\n";
+//            std::cerr << "try to get response\n";
             std::istream& responseStream = _session->receiveResponse(response);
 
             std::string result(std::istreambuf_iterator<char>(responseStream), {});
-            std::cerr << "Got response '" << result << "'\n";
+//            std::cerr << "Got response '" << result << "'\n";
             number = std::stoi(result);
         }
         catch (const Poco::Exception &e)
@@ -103,8 +105,35 @@ struct Session
     }
 };
 
+struct ThreadWorker : public Runnable
+{
+    const char *_domain;
+		ThreadWorker (const char *domain)
+            : _domain(domain)
+        {
+        }
+		virtual void run()
+        {
+            for (int i = 0; i < 100; ++i)
+            {
+                Session ping(_domain);
+                ping.sendPing(i);
+                int back = ping.getResponse();
+                assert(back == i + 1);
+            }
+		}
+};
+
 struct Client : public Poco::Util::Application
 {
+    void testLadder()
+    {
+        ThreadWorker ladder("init");
+        Thread thread;
+        thread.start(ladder);
+        thread.join();
+    }
+
 public:
     int main(const std::vector<std::string>& /* args */) override
     {
@@ -121,6 +150,8 @@ public:
         back = second.getResponse();
         assert (back == count + 2);
 
+        testLadder();
+
         return 0;
     }
 };


More information about the Libreoffice-commits mailing list