added benchmark test suite
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
#include "RecordingObserver.hpp"
|
||||
|
||||
namespace matador::test {
|
||||
RecordingObserver::RecordingObserver(utils::message_bus& bus) {
|
||||
subscriptions.push_back(bus.subscribe<sql::statement_accessed_event>([this](const sql::statement_accessed_event &ev) {
|
||||
std::lock_guard lock(mutex);
|
||||
events.push(utils::message::from_ref(ev));
|
||||
}));
|
||||
subscriptions.push_back(bus.subscribe<sql::statement_added_event>([this](const sql::statement_added_event &ev) {
|
||||
std::lock_guard lock(mutex);
|
||||
events.push(utils::message::from_ref(ev));
|
||||
}));
|
||||
subscriptions.push_back(bus.subscribe<sql::statement_evicted_event>([this](const sql::statement_evicted_event &ev) {
|
||||
std::lock_guard lock(mutex);
|
||||
events.push(utils::message::from_ref(ev));
|
||||
}));
|
||||
}
|
||||
|
||||
std::optional<utils::message> RecordingObserver::poll() {
|
||||
std::lock_guard lock(mutex);
|
||||
if (events.empty()) {
|
||||
return std::nullopt;
|
||||
}
|
||||
auto evt = events.front();
|
||||
events.pop();
|
||||
return evt;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user