mirror of https://github.com/oxen-io/lokinet
RouterHive initial commit, minor changes to RouterEvent
parent
07c5d6f5df
commit
6a0ee9dc55
@ -0,0 +1,39 @@
|
||||
#include <tooling/router_hive.hpp>
|
||||
|
||||
namespace tooling
|
||||
{
|
||||
|
||||
RouterHive::RouterHive(size_t eventQueueSize) : eventQueue(eventQueueSize)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
RouterHive::InformEvent(RouterEvent event)
|
||||
{
|
||||
if(eventQueue.tryPushBack(std::move(event))
|
||||
!= llarp::thread::QueueReturn::Success)
|
||||
{
|
||||
LogError("RouterHive Event Queue appears to be full. Either implement/change time dilation or increase the queue size.");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
RouterHive::ProcessEventQueue()
|
||||
{
|
||||
while(not eventQueue.empty())
|
||||
{
|
||||
RouterEvent event = eventQueue.popFront();
|
||||
|
||||
event.Process(*this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
ProcessPathBuildAttempt(PathBuildAttemptEvent event)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
} // namespace tooling
|
@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include <tooling/router_event.hpp>
|
||||
|
||||
#include <util/thread/queue.hpp>
|
||||
|
||||
namespace tooling
|
||||
{
|
||||
|
||||
struct RouterHive
|
||||
{
|
||||
constexpr size_t MAX_EVENT_QUEUE_SIZE = 200;
|
||||
|
||||
RouterHive(size_t eventQueueSize = MAX_EVENT_QUEUE_SIZE);
|
||||
|
||||
void
|
||||
InformEvent(RouterEvent event);
|
||||
|
||||
void
|
||||
ProcessEventQueue();
|
||||
|
||||
|
||||
/*
|
||||
* Event processing function declarations
|
||||
*/
|
||||
|
||||
void
|
||||
ProcessPathBuildAttempt(PathBuildAttemptEvent event);
|
||||
|
||||
|
||||
|
||||
llarp::thread::Queue<RouterEvent> eventQueue;
|
||||
};
|
||||
|
||||
} // namespace tooling
|
Loading…
Reference in New Issue