From cc61af1e2c933f2178a5dc3e5a5599e74d380eb3 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Thu, 10 Aug 2017 21:55:29 +0200 Subject: Add duration to packages and tpp format --- src/proxy.cc | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/proxy.cc') diff --git a/src/proxy.cc b/src/proxy.cc index b1e5940..b8df00c 100644 --- a/src/proxy.cc +++ b/src/proxy.cc @@ -1929,30 +1929,35 @@ void ProxyImpl::send_attached_data(uint32_t id, void const* ptr, size_t size, } if (attached_.empty()) return; if (size == 0 && !last) return; - uint8_t data[10]; + uint8_t data[22]; data[0] = 'D'; data[1] = 'A'; data[2] = 'T'; write_u32(data + 5, id); + auto dur = looper_->now().time_since_epoch(); + auto sec = std::chrono::duration_cast(dur); + write_u64(data + 10, sec.count()); + write_u32(data + 18, std::chrono::duration_cast( + dur - sec).count()); if (size == 0) { assert(last); assert(ptr == nullptr); write_u16(data + 3, 10); data[9] = 0; - send_attached(data, 10, nullptr, 0); + send_attached(data, 22, nullptr, 0); } else { - size_t max = 0xffff - 10; + size_t max = 0xffff - 22; auto p = reinterpret_cast(ptr); data[9] = 1; while (size > max) { write_u16(data + 3, 0xffff); - send_attached(data, 10, p, max); + send_attached(data, 22, p, max); p += max; size -= max; } data[9] = last ? 0 : 1; - write_u16(data + 3, size + 10); - send_attached(data, 10, p, size); + write_u16(data + 3, size + 22); + send_attached(data, 22, p, size); } } -- cgit v1.2.3-70-g09d2