File tree Expand file tree Collapse file tree 4 files changed +12
-21
lines changed
source/intercept/source/collect Expand file tree Collapse file tree 4 files changed +12
-21
lines changed Original file line number Diff line number Diff line change 2222
2323#include < spdlog/spdlog.h>
2424
25- #include < memory>
2625#include < utility>
2726
2827namespace ic {
@@ -38,12 +37,14 @@ namespace ic {
3837 });
3938 }
4039
41- Reporter::Reporter (ic::EventsDatabase::Ptr events)
42- : events_(std::move(events))
40+ Reporter::Reporter (ic::EventsDatabase::Ptr database)
41+ : database_(std::move(database))
42+ , mutex_()
4343 { }
4444
4545 void Reporter::report (const rpc::Event& event) {
46- events_->insert_event (event)
46+ std::lock_guard<std::mutex> guard (mutex_);
47+ database_->insert_event (event)
4748 .on_error ([](auto error) {
4849 spdlog::warn (" Writing event into database failed: {} Ignored." , error.what ());
4950 });
Original file line number Diff line number Diff line change 1919
2020#pragma once
2121
22- #include " collect/Session.h"
23- #include " EventsDatabase.h"
22+ #include " collect/EventsDatabase.h"
2423#include " libflags/Flags.h"
2524#include " libresult/Result.h"
2625#include " intercept.pb.h"
2726
28- #include < filesystem>
2927#include < memory>
30- #include < cstdint>
31-
32- namespace fs = std::filesystem;
28+ #include < mutex>
3329
3430namespace ic {
3531
3632 // Responsible to collect executions and persist them into an output file.
3733 class Reporter {
3834 public:
3935 using Ptr = std::shared_ptr<Reporter>;
40- static rust::Result<Reporter::Ptr> from (const flags::Arguments& );
36+ static rust::Result<Reporter::Ptr> from (const flags::Arguments &flags );
4137
42- void report (const rpc::Event& request);
38+ void report (const rpc::Event & request);
4339
4440 public:
45- explicit Reporter (ic::EventsDatabase::Ptr events );
41+ explicit Reporter (ic::EventsDatabase::Ptr database );
4642
4743 Reporter () = delete ;
4844 ~Reporter () noexcept = default ;
@@ -54,6 +50,7 @@ namespace ic {
5450 Reporter& operator =(Reporter&&) noexcept = delete ;
5551
5652 private:
57- ic::EventsDatabase::Ptr events_;
53+ ic::EventsDatabase::Ptr database_;
54+ std::mutex mutex_;
5855 };
5956}
Original file line number Diff line number Diff line change @@ -42,15 +42,11 @@ namespace ic {
4242 InterceptorImpl::InterceptorImpl (Reporter &reporter)
4343 : rpc::Interceptor::Service()
4444 , reporter_(reporter)
45- , lock_()
4645 { }
4746
4847 grpc::Status InterceptorImpl::Register (grpc::ServerContext*, const rpc::Event* request, rpc::Empty*)
4948 {
50- std::lock_guard<std::mutex> guard (lock_);
51-
5249 reporter_.report (*request);
53-
5450 return ::grpc::Status::OK;
5551 }
5652}
Original file line number Diff line number Diff line change 1919
2020#pragma once
2121
22- #include < mutex>
23-
2422#include " intercept.grpc.pb.h"
2523#include " supervise.grpc.pb.h"
2624
@@ -49,6 +47,5 @@ namespace ic {
4947
5048 private:
5149 Reporter& reporter_;
52- std::mutex lock_;
5350 };
5451}
You can’t perform that action at this time.
0 commit comments