Back to Site
Loading...
Searching...
No Matches
circuit_service.h
Go to the documentation of this file.
1#pragma once
2
41#include "librats/core/types.h"
43#include "librats/peer/peer_table.h" // PeerRoute
44#include "librats/transport/link.h"
45
46#include <cstdint>
47#include <memory>
48#include <optional>
49
50namespace librats {
51
53public:
54 virtual ~CircuitService() = default;
55
69 virtual std::optional<PeerRoute> adopt_circuit(const PeerId& carrier,
70 std::unique_ptr<Link> link,
71 ConnRole role, bool connected) = 0;
72
77 virtual void wake_circuit(PeerRoute route, uint32_t events) = 0;
78
81 virtual void close_circuit(PeerRoute route, CloseReason reason) = 0;
82};
83
84} // namespace librats
virtual std::optional< PeerRoute > adopt_circuit(const PeerId &carrier, std::unique_ptr< Link > link, ConnRole role, bool connected)=0
Adopt link as a connection carried by the peer carrier, on the reactor that owns the carrier's own co...
virtual void wake_circuit(PeerRoute route, uint32_t events)=0
Deliver poll-equivalent events (PollIn / PollOut / PollErr, see core/io_poller.h) to a circuit connec...
virtual ~CircuitService()=default
virtual void close_circuit(PeerRoute route, CloseReason reason)=0
Tear a circuit connection down.
Definition node.h:73
Self-certifying peer identity.