2019-04-22 12:25:25 +00:00
|
|
|
#ifndef LLARP_HOOK_IHOOK_HPP
|
|
|
|
#define LLARP_HOOK_IHOOK_HPP
|
|
|
|
#include <string>
|
|
|
|
#include <unordered_map>
|
|
|
|
#include <memory>
|
|
|
|
|
|
|
|
namespace llarp
|
|
|
|
{
|
|
|
|
namespace hooks
|
|
|
|
{
|
|
|
|
/// base type for event hook handlers
|
|
|
|
struct IBackend
|
|
|
|
{
|
2019-05-07 08:29:47 +00:00
|
|
|
virtual ~IBackend() = 0;
|
2019-04-22 12:25:25 +00:00
|
|
|
virtual void
|
2020-04-07 18:38:56 +00:00
|
|
|
NotifyAsync(std::unordered_map<std::string, std::string> params) = 0;
|
2019-04-22 12:25:25 +00:00
|
|
|
|
|
|
|
/// start backend
|
|
|
|
virtual bool
|
|
|
|
Start() = 0;
|
|
|
|
|
|
|
|
/// stop backend
|
|
|
|
virtual bool
|
|
|
|
Stop() = 0;
|
|
|
|
};
|
|
|
|
|
2020-04-07 18:38:56 +00:00
|
|
|
using Backend_ptr = std::shared_ptr<IBackend>;
|
2019-05-07 08:29:47 +00:00
|
|
|
|
2019-07-30 23:42:13 +00:00
|
|
|
inline IBackend::~IBackend() = default;
|
2019-04-22 12:25:25 +00:00
|
|
|
} // namespace hooks
|
|
|
|
} // namespace llarp
|
|
|
|
|
2019-05-07 08:29:47 +00:00
|
|
|
#endif
|