2020-01-17 13:22:08 +00:00
|
|
|
#pragma once
|
|
|
|
#include <crypto/crypto_libsodium.hpp>
|
|
|
|
#include <ev/ev.h>
|
|
|
|
|
|
|
|
namespace llarp
|
|
|
|
{
|
|
|
|
// forward declair
|
|
|
|
struct Context;
|
2020-04-07 18:38:56 +00:00
|
|
|
using Node_ptr = std::shared_ptr<llarp::Context>;
|
2020-01-17 13:22:08 +00:00
|
|
|
|
|
|
|
namespace simulate
|
|
|
|
{
|
2020-04-07 18:38:56 +00:00
|
|
|
struct Simulation : public std::enable_shared_from_this<Simulation>
|
2020-01-17 13:22:08 +00:00
|
|
|
{
|
|
|
|
Simulation();
|
|
|
|
|
|
|
|
llarp::CryptoManager m_CryptoManager;
|
|
|
|
llarp_ev_loop_ptr m_NetLoop;
|
|
|
|
|
2020-04-07 18:38:56 +00:00
|
|
|
std::unordered_map<std::string, Node_ptr> m_Nodes;
|
2020-01-17 13:22:08 +00:00
|
|
|
|
|
|
|
void
|
|
|
|
NodeUp(llarp::Context* node);
|
|
|
|
|
|
|
|
Node_ptr
|
|
|
|
AddNode(const std::string& name);
|
|
|
|
|
|
|
|
void
|
|
|
|
DelNode(const std::string& name);
|
|
|
|
};
|
|
|
|
|
2020-04-07 18:38:56 +00:00
|
|
|
using Sim_ptr = std::shared_ptr<Simulation>;
|
2020-01-17 13:22:08 +00:00
|
|
|
} // namespace simulate
|
|
|
|
} // namespace llarp
|