21#include <dhtnet/connectionmanager.h>
31 using OnMessage = std::function<
void(
const std::shared_ptr<dht::crypto::Certificate>&, std::string&,
const std::string&)>;
50 std::shared_ptr<dhtnet::ChannelSocket>
getChannel(
const std::string& peer,
52 std::vector<std::shared_ptr<dhtnet::ChannelSocket>>
getChannels(
const std::string& peer)
const;
60 bool onRequest(
const std::shared_ptr<dht::crypto::Certificate>& peer,
61 const std::string& name)
override;
69 void onReady(
const std::shared_ptr<dht::crypto::Certificate>& peer,
70 const std::string& name,
71 std::shared_ptr<dhtnet::ChannelSocket> channel)
override;
73 void closeChannel(
const std::string& peer,
const DeviceId& device,
const std::shared_ptr<dhtnet::ChannelSocket>&
conn);
80 std::unique_ptr<ConversationRequest>
req;
81 MSGPACK_DEFINE_MAP(
id,
t,
c,
req)
84 static bool sendMessage(
const std::shared_ptr<dhtnet::ChannelSocket>&,
const Message& message);
88 std::shared_ptr<Impl> pimpl_;
A Channel handler is used to make the link between JamiAccount and ConnectionManager Its role is to m...
Manages channels for exchanging messages between peers.
static bool sendMessage(const std::shared_ptr< dhtnet::ChannelSocket > &, const Message &message)
std::vector< std::shared_ptr< dhtnet::ChannelSocket > > getChannels(const std::string &peer) const
void closeChannel(const std::string &peer, const DeviceId &device, const std::shared_ptr< dhtnet::ChannelSocket > &conn)
std::shared_ptr< dhtnet::ChannelSocket > getChannel(const std::string &peer, const DeviceId &deviceId) const
std::function< void(const std::string &, bool)> OnPeerStateChanged
std::function< void(const std::shared_ptr< dht::crypto::Certificate > &, std::string &, const std::string &)> OnMessage
bool onRequest(const std::shared_ptr< dht::crypto::Certificate > &peer, const std::string &name) override
Determine if we accept or not the message request.
void onReady(const std::shared_ptr< dht::crypto::Certificate > &peer, const std::string &name, std::shared_ptr< dhtnet::ChannelSocket > channel) override
Launch message process.
void connect(const DeviceId &deviceId, const std::string &, ConnectCb &&cb, const std::string &connectionType, bool forceNewConnection=false) override
Ask for a new message channel.
std::function< void(std::shared_ptr< dhtnet::ChannelSocket >, const DeviceId &)> ConnectCb
void emitSignal(Args... args)
std::unique_ptr< ConversationRequest > req