lokinet/llarp/routing/handler.hpp

88 lines
2.4 KiB
C++
Raw Normal View History

#ifndef LLARP_ROUTING_HANDLER_HPP
#define LLARP_ROUTING_HANDLER_HPP
namespace llarp
{
struct AbstractRouter;
namespace dht
{
struct IMessage;
}
namespace service
{
struct ProtocolFrame;
}
namespace routing
{
struct DataDiscardMessage;
struct GrantExitMessage;
struct ObtainExitMessage;
struct RejectExitMessage;
struct TransferTrafficMessage;
struct UpdateExitMessage;
struct UpdateExitVerifyMessage;
struct CloseExitMessage;
struct PathTransferMessage;
struct PathConfirmMessage;
struct PathLatencyMessage;
2018-06-26 16:23:43 +00:00
// handles messages on the routing level
struct IMessageHandler
{
virtual bool
HandleObtainExitMessage(const ObtainExitMessage *msg,
AbstractRouter *r) = 0;
virtual bool
HandleGrantExitMessage(const GrantExitMessage *msg,
AbstractRouter *r) = 0;
virtual bool
HandleRejectExitMessage(const RejectExitMessage *msg,
AbstractRouter *r) = 0;
virtual bool
HandleTransferTrafficMessage(const TransferTrafficMessage *msg,
AbstractRouter *r) = 0;
virtual bool
HandleUpdateExitMessage(const UpdateExitMessage *msg,
AbstractRouter *r) = 0;
2018-11-14 12:23:08 +00:00
virtual bool
HandleUpdateExitVerifyMessage(const UpdateExitVerifyMessage *msg,
AbstractRouter *r) = 0;
2018-11-14 12:23:08 +00:00
virtual bool
HandleCloseExitMessage(const CloseExitMessage *msg,
AbstractRouter *r) = 0;
virtual bool
HandleDataDiscardMessage(const DataDiscardMessage *msg,
AbstractRouter *r) = 0;
2018-06-23 00:00:44 +00:00
virtual bool
2018-07-09 03:34:29 +00:00
HandlePathTransferMessage(const PathTransferMessage *msg,
AbstractRouter *r) = 0;
virtual bool
HandleHiddenServiceFrame(const service::ProtocolFrame *msg) = 0;
virtual bool
2018-07-09 03:34:29 +00:00
HandlePathConfirmMessage(const PathConfirmMessage *msg,
AbstractRouter *r) = 0;
virtual bool
2018-07-09 03:34:29 +00:00
HandlePathLatencyMessage(const PathLatencyMessage *msg,
AbstractRouter *r) = 0;
2018-06-26 16:23:43 +00:00
virtual bool
HandleDHTMessage(const dht::IMessage *msg, AbstractRouter *r) = 0;
};
} // namespace routing
} // namespace llarp
#endif