|
|
|
@ -21,17 +21,35 @@ namespace llarp
|
|
|
|
|
struct AbstractRouter;
|
|
|
|
|
struct RouterContact;
|
|
|
|
|
|
|
|
|
|
namespace metrics
|
|
|
|
|
{
|
|
|
|
|
class DefaultManagerGuard;
|
|
|
|
|
class PublisherScheduler;
|
|
|
|
|
} // namespace metrics
|
|
|
|
|
|
|
|
|
|
namespace thread
|
|
|
|
|
{
|
|
|
|
|
class Scheduler;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
struct Context
|
|
|
|
|
{
|
|
|
|
|
Context();
|
|
|
|
|
~Context();
|
|
|
|
|
|
|
|
|
|
// These come first, in this order.
|
|
|
|
|
// This ensures we get metric collection on shutdown
|
|
|
|
|
std::unique_ptr< thread::Scheduler > m_scheduler;
|
|
|
|
|
std::unique_ptr< metrics::DefaultManagerGuard > m_metricsManager;
|
|
|
|
|
std::unique_ptr< metrics::PublisherScheduler > m_metricsPublisher;
|
|
|
|
|
|
|
|
|
|
int num_nethreads = 1;
|
|
|
|
|
bool singleThreaded = false;
|
|
|
|
|
std::unique_ptr< llarp::Crypto > crypto;
|
|
|
|
|
std::unique_ptr< llarp::AbstractRouter > router;
|
|
|
|
|
std::unique_ptr< Crypto > crypto;
|
|
|
|
|
std::unique_ptr< AbstractRouter > router;
|
|
|
|
|
std::unique_ptr< llarp_threadpool > worker;
|
|
|
|
|
std::unique_ptr< llarp::Logic > logic;
|
|
|
|
|
std::unique_ptr< llarp::Config > config;
|
|
|
|
|
std::unique_ptr< Logic > logic;
|
|
|
|
|
std::unique_ptr< Config > config;
|
|
|
|
|
std::unique_ptr< llarp_nodedb > nodedb;
|
|
|
|
|
std::unique_ptr< llarp_ev_loop > mainloop;
|
|
|
|
|
std::string nodedb_dir;
|
|
|
|
|