llarp/dht/publishservicejob.hpp

Namespaces

Name
llarp
[crypto.hpp]
llarp::dht

Classes

Name
struct llarp::dht::PublishServiceJob
struct llarp::dht::LocalPublishServiceJob

Source code

#ifndef LLARP_DHT_PUBLISHSERVICEJOB
#define LLARP_DHT_PUBLISHSERVICEJOB

#include "tx.hpp"
#include "txowner.hpp"
#include <llarp/service/address.hpp>
#include <llarp/service/intro_set.hpp>

#include <set>

namespace llarp::dht
{
  struct PublishServiceJob : public TX<TXOwner, service::EncryptedIntroSet>
  {
    uint64_t relayOrder;
    service::EncryptedIntroSet introset{};

    PublishServiceJob(
        const TXOwner& asker,
        const service::EncryptedIntroSet& introset,
        AbstractContext* ctx,
        uint64_t relayOrder);

    bool
    Validate(const service::EncryptedIntroSet& introset) const override;

    void
    Start(const TXOwner& peer) override;

    virtual void
    SendReply() override;
  };

  struct LocalPublishServiceJob : public PublishServiceJob
  {
    PathID_t localPath;
    uint64_t txid;
    LocalPublishServiceJob(
        const TXOwner& peer,
        const PathID_t& fromID,
        uint64_t txid,
        const service::EncryptedIntroSet& introset,
        AbstractContext* ctx,
        uint64_t relayOrder);

    void
    SendReply() override;
  };
}  // namespace llarp::dht

#endif

Updated on 2026-04-01 at 23:35:40 +0000