llarp/messages/link_message_parser.hpp

Namespaces

Name
llarp
[crypto.hpp]

Classes

Name
struct llarp::LinkMessageParser

Source code

#pragma once

#include <llarp/router_id.hpp>
#include <llarp/util/bencode.h>

#include <memory>

namespace llarp
{
  struct AbstractRouter;
  struct ILinkMessage;
  struct ILinkSession;

  struct LinkMessageParser
  {
    LinkMessageParser(AbstractRouter* router);
    ~LinkMessageParser();

    bool
    operator()(llarp_buffer_t* buffer, llarp_buffer_t* key);

    bool
    ProcessFrom(ILinkSession* from, const llarp_buffer_t& buf);

    bool
    MessageDone();

    void
    Reset();

   private:
    RouterID
    GetCurrentFrom();

   private:
    bool firstkey;
    AbstractRouter* router;
    ILinkSession* from;
    ILinkMessage* msg;

    struct msg_holder_t;

    std::unique_ptr<msg_holder_t> holder;
  };
}  // namespace llarp

Updated on 2026-01-10 at 22:49:45 +0000