From 979cc4db87883469229e9fac5518c789b5ad3e34 Mon Sep 17 00:00:00 2001 From: bert hubert Date: Thu, 9 Jan 2020 12:13:23 +0100 Subject: [PATCH] speed up navcat.cc, plus no longer emit messages from beyond the end of the time period --- navcat.cc | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/navcat.cc b/navcat.cc index d431f6f..1bca914 100644 --- a/navcat.cc +++ b/navcat.cc @@ -108,20 +108,20 @@ void sendProtobuf(string_view dir, time_t startTime, time_t stopTime=0) nmms.clear(); for(const auto& src: srcs) { string fname = getPath(dir, start.first, src); - int fd = open(fname.c_str(), O_RDONLY); - if(fd < 0) + FILE* fp = fopen(fname.c_str(), "r"); + if(!fp) continue; uint32_t offset= fpos[fname]; - if(lseek(fd, offset, SEEK_SET) < 0) { + if(fseek(fp, offset, SEEK_SET) < 0) { cerr<<"Error seeking: "<= start) { nmms.push_back(nmm); @@ -130,8 +130,9 @@ void sendProtobuf(string_view dir, time_t startTime, time_t stopTime=0) } cerr<<"Harvested "< stopTime) + break; std::string out; nmm.SerializeToString(&out); std::string buf="bert"; uint16_t len = htons(out.size()); buf.append((char*)(&len), 2); buf+=out; + //fwrite(buf.c_str(), 1, buf.size(), stdout); writen2(1, buf.c_str(), buf.size()); } if(3600 + start.first - (start.first%3600) < stopTime)