[Libreoffice-commits] online.git: loolwsd/LOOLStress.cpp

Ashod Nakashian ashod.nakashian at collabora.co.uk
Mon Aug 8 03:50:56 UTC 2016


 loolwsd/LOOLStress.cpp |   24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

New commits:
commit a750edd70dda63a2dd5ca3c72641b207d4f45c99
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Mon Aug 1 22:21:06 2016 -0400

    loolstress: replay trace file
    
    Change-Id: I076ec4ff398cf22ca6916ad11afc9ecb75421ac1
    Reviewed-on: https://gerrit.libreoffice.org/27963
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/loolwsd/LOOLStress.cpp b/loolwsd/LOOLStress.cpp
index c83d641..6a7c38d 100644
--- a/loolwsd/LOOLStress.cpp
+++ b/loolwsd/LOOLStress.cpp
@@ -10,11 +10,13 @@
 #include <unistd.h>
 
 #include <algorithm>
+#include <chrono>
 #include <cstdlib>
 #include <cstring>
 #include <fstream>
 #include <iostream>
 #include <random>
+#include <thread>
 
 #include <Poco/Net/NetException.h>
 #include <Poco/Net/HTTPRequest.h>
@@ -87,9 +89,6 @@ public:
     {
         std::cerr << "Connecting to server: " << _app._serverURI << "\n";
 
-        const auto rec = _traceFile.getNextRecord(TraceFileRecord::Direction::Incoming);
-        std::cout << rec.Payload << "\n";
-
         Poco::URI uri(_app._serverURI);
 
         const auto documentURL = _traceFile.getDocURI();
@@ -100,9 +99,26 @@ public:
         Poco::Net::HTTPResponse response;
         auto socket = helpers::connectLOKit(uri, request, response, "loolStress ");
 
+        const auto epochStart(std::chrono::steady_clock::now());
         try
         {
-
+            for (;;)
+            {
+                const auto rec = _traceFile.getNextRecord(TraceFileRecord::Direction::Incoming);
+                if (rec.Dir == TraceFileRecord::Direction::Invalid)
+                {
+                    break;
+                }
+
+                const auto delta = (epochStart - std::chrono::steady_clock::now());
+                const auto delay = rec.TimestampNs - std::chrono::duration_cast<std::chrono::microseconds>(delta).count();
+                if (delay > 0)
+                {
+                    std::this_thread::sleep_for(std::chrono::microseconds(delay));
+                }
+
+                helpers::sendTextFrame(socket, rec.Payload);
+            }
         }
         catch (const Poco::Exception &e)
         {


More information about the Libreoffice-commits mailing list