virtual void start_connect(const entity_addr_t& peer_addr,
const entity_type_t& peer_type) = 0;
- virtual void start_accept(seastar::foreign_ptr<std::unique_ptr<Socket>>&& socket,
+ virtual void start_accept(SocketFRef&& socket,
const entity_addr_t& peer_addr) = 0;
protected:
Dispatcher &dispatcher;
SocketConnection &conn;
- seastar::foreign_ptr<std::unique_ptr<Socket>> socket;
+ SocketFRef socket;
seastar::gate pending_dispatch;
// write_state is changed with state atomically, indicating the write
});
}
-void ProtocolV1::start_accept(seastar::foreign_ptr<std::unique_ptr<Socket>>&& sock,
+void ProtocolV1::start_accept(SocketFRef&& sock,
const entity_addr_t& _peer_addr)
{
ceph_assert(state == state_t::none);
void start_connect(const entity_addr_t& peer_addr,
const entity_type_t& peer_type) override;
- void start_accept(seastar::foreign_ptr<std::unique_ptr<Socket>>&& socket,
+ void start_accept(SocketFRef&& socket,
const entity_addr_t& peer_addr) override;
void trigger_close() override;
#pragma once
#include <seastar/core/reactor.hh>
+#include <seastar/core/sharded.hh>
#include <seastar/net/packet.hh>
#include "include/buffer.h"
namespace ceph::net {
+class Socket;
+using SocketFRef = seastar::foreign_ptr<std::unique_ptr<Socket>>;
+
class Socket
{
const seastar::shard_id sid;
}
void
-SocketConnection::start_accept(seastar::foreign_ptr<std::unique_ptr<Socket>>&& sock,
+SocketConnection::start_accept(SocketFRef&& sock,
const entity_addr_t& _peer_addr)
{
protocol->start_accept(std::move(sock), _peer_addr);
#include "msg/Policy.h"
#include "Connection.h"
+#include "Socket.h"
#include "crimson/thread/Throttle.h"
namespace ceph::net {
class Protocol;
-class Socket;
class SocketMessenger;
class SocketConnection;
using SocketConnectionRef = seastar::shared_ptr<SocketConnection>;
const entity_type_t& peer_type);
/// start a handshake from the server's perspective,
/// only call when SocketConnection first construct
- void start_accept(seastar::foreign_ptr<std::unique_ptr<Socket>>&& socket,
+ void start_accept(SocketFRef&& socket,
const entity_addr_t& peer_addr);
seq_num_t rx_seq_num() const {