* make tranform function for SessionResult to SendStatus

* add case for SessionResult::EstablishFail
* clean up outbound message handler to use transform function instead of many private member functions
pull/1693/head
Jeff Becker 3 years ago
parent 8f4c23ef47
commit 18cb59a1b5
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -137,61 +137,31 @@ namespace llarp
outboundMessageQueues.emplace(zeroID, MessageQueue());
}
void
OutboundMessageHandler::OnSessionEstablished(const RouterID& router)
{
FinalizeSessionRequest(router, SendStatus::Success);
}
void
OutboundMessageHandler::OnConnectTimeout(const RouterID& router)
{
FinalizeSessionRequest(router, SendStatus::Timeout);
}
void
OutboundMessageHandler::OnRouterNotFound(const RouterID& router)
{
FinalizeSessionRequest(router, SendStatus::RouterNotFound);
}
void
OutboundMessageHandler::OnInvalidRouter(const RouterID& router)
{
FinalizeSessionRequest(router, SendStatus::InvalidRouter);
}
void
OutboundMessageHandler::OnNoLink(const RouterID& router)
{
FinalizeSessionRequest(router, SendStatus::NoLink);
}
void
OutboundMessageHandler::OnSessionResult(const RouterID& router, const SessionResult result)
constexpr SendStatus
ToSendStatus(const SessionResult result)
{
switch (result)
{
case SessionResult::Establish:
OnSessionEstablished(router);
break;
return SendStatus::Success;
case SessionResult::Timeout:
OnConnectTimeout(router);
break;
case SessionResult::EstablishFail:
return SendStatus::Timeout;
case SessionResult::RouterNotFound:
OnRouterNotFound(router);
break;
return SendStatus::RouterNotFound;
case SessionResult::InvalidRouter:
OnInvalidRouter(router);
break;
return SendStatus::InvalidRouter;
case SessionResult::NoLink:
OnNoLink(router);
break;
default:
LogError("Impossible situation: enum class value out of bounds.");
std::abort();
break;
return SendStatus::NoLink;
}
// fall through case to appease compiler
return SendStatus::Congestion;
}
void
OutboundMessageHandler::OnSessionResult(const RouterID& router, const SessionResult result)
{
FinalizeSessionRequest(router, ToSendStatus(result));
}
void

@ -114,22 +114,6 @@ namespace llarp
* the messages are dropped and their send status callbacks are invoked with
* the appropriate send status.
*/
void
OnSessionEstablished(const RouterID& router);
void
OnConnectTimeout(const RouterID& router);
void
OnRouterNotFound(const RouterID& router);
void
OnInvalidRouter(const RouterID& router);
void
OnNoLink(const RouterID& router);
void
OnSessionResult(const RouterID& router, const SessionResult result);

Loading…
Cancel
Save