---
title: llarp/dht/publishservicejob.hpp

---

# llarp/dht/publishservicejob.hpp



## Namespaces

| Name           |
| -------------- |
| **[llarp](Namespaces/namespacellarp.md)** <br>[crypto.hpp] |
| **[llarp::dht](Namespaces/namespacellarp_1_1dht.md)**  |

## Classes

|                | Name           |
| -------------- | -------------- |
| struct | **[llarp::dht::PublishServiceJob](Classes/structllarp_1_1dht_1_1PublishServiceJob.md)**  |
| struct | **[llarp::dht::LocalPublishServiceJob](Classes/structllarp_1_1dht_1_1LocalPublishServiceJob.md)**  |




## Source code

```cpp
#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
{
  namespace 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 dht
}  // namespace llarp

#endif
```


-------------------------------

Updated on 2022-11-17 at 22:27:42 +0000
