[Libreoffice-commits] online.git: tools/Replay.hpp wsd/TraceFile.hpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Fri Feb 10 07:03:49 UTC 2017
tools/Replay.hpp | 7 ++++++-
wsd/TraceFile.hpp | 14 +++++++++++++-
2 files changed, 19 insertions(+), 2 deletions(-)
New commits:
commit 53a8101331933254fe0845daa789a94611df54b6
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Fri Feb 10 00:54:52 2017 -0500
wsd: log the trace file duration and each record before executing
Change-Id: Ia5c21f01198de3dc655fe3bf247178dd04f5eaa7
Reviewed-on: https://gerrit.libreoffice.org/34113
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/tools/Replay.hpp b/tools/Replay.hpp
index d5ed00b..99806ec 100644
--- a/tools/Replay.hpp
+++ b/tools/Replay.hpp
@@ -114,9 +114,12 @@ protected:
{
TraceFileReader traceFile(_uri);
- auto epochFile(traceFile.getEpoch());
+ auto epochFile(traceFile.getEpochStart());
auto epochCurrent(std::chrono::steady_clock::now());
+ const auto replayDuration = (traceFile.getEpochEnd() - epochFile);
+ std::cout << "Replaying file [" << _uri << "] of " << replayDuration / 1000000. << " second length." << std::endl;
+
for (;;)
{
const auto rec = traceFile.getNextRecord();
@@ -139,6 +142,8 @@ protected:
std::this_thread::sleep_for(std::chrono::microseconds(delay));
}
+ std::cout << rec.toString() << std::endl;
+
if (rec.Dir == TraceFileRecord::Direction::Event)
{
// Meta info about about an event.
diff --git a/wsd/TraceFile.hpp b/wsd/TraceFile.hpp
index 544adac..91f5a5e 100644
--- a/wsd/TraceFile.hpp
+++ b/wsd/TraceFile.hpp
@@ -45,6 +45,14 @@ public:
{
}
+ std::string toString() const
+ {
+ std::ostringstream oss;
+ oss << static_cast<char>(Dir) << Pid << static_cast<char>(Dir)
+ << SessionId << static_cast<char>(Dir) << Payload;
+ return oss.str();
+ }
+
Direction Dir;
unsigned TimestampNs;
unsigned Pid;
@@ -308,6 +316,7 @@ public:
TraceFileReader(const std::string& path) :
_compressed(path.size() > 2 && path.substr(path.size() - 2) == "gz"),
_epochStart(0),
+ _epochEnd(0),
_stream(path, _compressed ? std::ios::binary : std::ios::in),
_inflater(_stream, Poco::InflatingStreamBuf::STREAM_GZIP),
_index(0),
@@ -322,7 +331,8 @@ public:
_stream.close();
}
- Poco::Int64 getEpoch() const { return _epochStart; }
+ Poco::Int64 getEpochStart() const { return _epochStart; }
+ Poco::Int64 getEpochEnd() const { return _epochEnd; }
TraceFileRecord getNextRecord()
{
@@ -402,6 +412,7 @@ private:
_indexOut = advance(-1, TraceFileRecord::Direction::Outgoing);
_epochStart = _records[0].TimestampNs;
+ _epochEnd = _records[_records.size() - 1].TimestampNs;
}
static bool extractRecord(const std::string& s, TraceFileRecord& rec)
@@ -459,6 +470,7 @@ private:
private:
const bool _compressed;
Poco::Int64 _epochStart;
+ Poco::Int64 _epochEnd;
std::ifstream _stream;
Poco::InflatingInputStream _inflater;
std::vector<TraceFileRecord> _records;
More information about the Libreoffice-commits
mailing list