Make send_buffer protected

This commit is contained in:
Piotr Wójcik 2024-11-17 00:41:35 +01:00
commit 0f8bbf80a9
5 changed files with 25 additions and 30 deletions

View file

@ -1005,14 +1005,9 @@ TEST (node, fork_no_vote_quorum)
ASSERT_FALSE (system.wallet (1)->store.fetch (transaction, key1, key3));
auto vote = std::make_shared<nano::vote> (key1, key3, 0, 0, std::vector<nano::block_hash>{ send2->hash () });
nano::confirm_ack confirm{ nano::dev::network_params.network, vote };
std::vector<uint8_t> buffer;
{
nano::vectorstream stream (buffer);
confirm.serialize (stream);
}
auto channel = node2.network.find_node_id (node3.node_id.pub);
ASSERT_NE (nullptr, channel);
channel->send_buffer (nano::shared_const_buffer (std::move (buffer)));
channel->send (confirm);
ASSERT_TIMELY (10s, node3.stats.count (nano::stat::type::message, nano::stat::detail::confirm_ack, nano::stat::dir::in) >= 3);
ASSERT_EQ (node1.latest (nano::dev::genesis_key.pub), send1->hash ());
ASSERT_EQ (node2.latest (nano::dev::genesis_key.pub), send1->hash ());

View file

@ -35,15 +35,6 @@ public:
nano::transport::buffer_drop_policy policy = nano::transport::buffer_drop_policy::limiter,
nano::transport::traffic_type = nano::transport::traffic_type::generic);
/// Implements the actual send operation
/// @returns true if the message was sent (or queued to be sent), false if it was immediately dropped
// TODO: Make this private, do not allow external direct calls
virtual bool send_buffer (nano::shared_const_buffer const &,
callback_t const & callback = nullptr,
nano::transport::buffer_drop_policy = nano::transport::buffer_drop_policy::limiter,
nano::transport::traffic_type = nano::transport::traffic_type::generic)
= 0;
virtual void close () = 0;
virtual nano::endpoint get_remote_endpoint () const = 0;
@ -131,6 +122,13 @@ public:
std::shared_ptr<nano::node> owner () const;
protected:
virtual bool send_buffer (nano::shared_const_buffer const &,
callback_t const & callback = nullptr,
nano::transport::buffer_drop_policy = nano::transport::buffer_drop_policy::limiter,
nano::transport::traffic_type = nano::transport::traffic_type::generic)
= 0;
protected:
nano::node & node;
mutable nano::mutex mutex;

View file

@ -19,12 +19,6 @@ namespace transport
std::string to_string () const override;
bool send_buffer (
nano::shared_const_buffer const &,
std::function<void (boost::system::error_code const &, std::size_t)> const & = nullptr,
nano::transport::buffer_drop_policy = nano::transport::buffer_drop_policy::limiter,
nano::transport::traffic_type = nano::transport::traffic_type::generic) override;
void set_endpoint (nano::endpoint const & endpoint_a)
{
endpoint = endpoint_a;
@ -55,6 +49,13 @@ namespace transport
return !closed;
}
protected:
bool send_buffer (
nano::shared_const_buffer const &,
std::function<void (boost::system::error_code const &, std::size_t)> const & = nullptr,
nano::transport::buffer_drop_policy = nano::transport::buffer_drop_policy::limiter,
nano::transport::traffic_type = nano::transport::traffic_type::generic) override;
private:
nano::endpoint endpoint;

View file

@ -17,9 +17,6 @@ namespace transport
public:
explicit channel (nano::node & node, nano::node & destination);
// TODO: investigate clang-tidy warning about default parameters on virtual/override functions
bool send_buffer (nano::shared_const_buffer const &, std::function<void (boost::system::error_code const &, std::size_t)> const & = nullptr, nano::transport::buffer_drop_policy = nano::transport::buffer_drop_policy::limiter, nano::transport::traffic_type = nano::transport::traffic_type::generic) override;
std::string to_string () const override;
nano::endpoint get_remote_endpoint () const override
@ -42,6 +39,9 @@ namespace transport
// Can't be closed
}
protected:
bool send_buffer (nano::shared_const_buffer const &, std::function<void (boost::system::error_code const &, std::size_t)> const & = nullptr, nano::transport::buffer_drop_policy = nano::transport::buffer_drop_policy::limiter, nano::transport::traffic_type = nano::transport::traffic_type::generic) override;
private:
nano::node & destination;
nano::endpoint const endpoint;

View file

@ -50,12 +50,6 @@ public:
void close () override;
bool send_buffer (nano::shared_const_buffer const &,
nano::transport::channel::callback_t const & callback = nullptr,
nano::transport::buffer_drop_policy = nano::transport::buffer_drop_policy::limiter,
nano::transport::traffic_type = nano::transport::traffic_type::generic)
override;
bool max (nano::transport::traffic_type traffic_type) override;
bool alive () const override;
@ -69,6 +63,13 @@ public:
std::string to_string () const override;
protected:
bool send_buffer (nano::shared_const_buffer const &,
nano::transport::channel::callback_t const & callback = nullptr,
nano::transport::buffer_drop_policy = nano::transport::buffer_drop_policy::limiter,
nano::transport::traffic_type = nano::transport::traffic_type::generic)
override;
private:
void start ();
void stop ();