mirror of
https://github.com/badaix/snapcast.git
synced 2025-04-28 09:47:09 +02:00
Fix linter warnings
This commit is contained in:
parent
9c9ebaead8
commit
ab5318fea4
3 changed files with 28 additions and 6 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -66,5 +66,7 @@ compile_commands.json
|
|||
notes.txt
|
||||
sanitizer-suppressions.txt
|
||||
snapserver.conf
|
||||
certs
|
||||
server/etc/certs
|
||||
|
||||
extras/package/debian/snap*.debhelper.log
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include <boost/asio/write.hpp>
|
||||
|
||||
// standard headers
|
||||
#include <cstdint>
|
||||
#include <iostream>
|
||||
|
||||
|
||||
|
@ -91,8 +92,8 @@ bool PendingRequest::operator<(const PendingRequest& other) const
|
|||
|
||||
|
||||
|
||||
ClientConnection::ClientConnection(boost::asio::io_context& io_context, const ClientSettings::Server& server)
|
||||
: strand_(boost::asio::make_strand(io_context.get_executor())), resolver_(strand_), socket_(strand_), reqId_(1), server_(server)
|
||||
ClientConnection::ClientConnection(boost::asio::io_context& io_context, ClientSettings::Server server)
|
||||
: strand_(boost::asio::make_strand(io_context.get_executor())), resolver_(strand_), socket_(strand_), reqId_(1), server_(std::move(server))
|
||||
{
|
||||
base_msg_size_ = base_message_.getSize();
|
||||
buffer_.resize(base_msg_size_);
|
||||
|
@ -247,10 +248,11 @@ void ClientConnection::sendRequest(const msg::message_ptr& message, const chrono
|
|||
boost::asio::post(strand_, [this, message, timeout, handler]()
|
||||
{
|
||||
pendingRequests_.erase(
|
||||
std::remove_if(pendingRequests_.begin(), pendingRequests_.end(), [](std::weak_ptr<PendingRequest> request) { return request.expired(); }),
|
||||
std::remove_if(pendingRequests_.begin(), pendingRequests_.end(), [](const std::weak_ptr<PendingRequest>& request) { return request.expired(); }),
|
||||
pendingRequests_.end());
|
||||
unique_ptr<msg::BaseMessage> response(nullptr);
|
||||
if (++reqId_ >= 10000)
|
||||
static constexpr uint16_t max_req_id = 10000;
|
||||
if (++reqId_ >= max_req_id)
|
||||
reqId_ = 1;
|
||||
message->id = reqId_;
|
||||
auto request = make_shared<PendingRequest>(strand_, reqId_, handler);
|
||||
|
|
|
@ -83,10 +83,11 @@ private:
|
|||
class ClientConnection
|
||||
{
|
||||
public:
|
||||
/// Result callback with boost::error_code
|
||||
using ResultHandler = std::function<void(const boost::system::error_code&)>;
|
||||
|
||||
/// c'tor
|
||||
ClientConnection(boost::asio::io_context& io_context, const ClientSettings::Server& server);
|
||||
ClientConnection(boost::asio::io_context& io_context, ClientSettings::Server server);
|
||||
/// d'tor
|
||||
virtual ~ClientConnection();
|
||||
|
||||
|
@ -122,6 +123,7 @@ public:
|
|||
});
|
||||
}
|
||||
|
||||
/// @return MAC address of the client
|
||||
std::string getMacAddress();
|
||||
|
||||
/// async get the next message
|
||||
|
@ -129,26 +131,42 @@ public:
|
|||
void getNextMessage(const MessageHandler<msg::BaseMessage>& handler);
|
||||
|
||||
protected:
|
||||
/// Send next pending message from messages_
|
||||
void sendNext();
|
||||
|
||||
/// Base message holding the received message
|
||||
msg::BaseMessage base_message_;
|
||||
/// Receive buffer
|
||||
std::vector<char> buffer_;
|
||||
/// Size of a base message (= message header)
|
||||
size_t base_msg_size_;
|
||||
|
||||
/// Strand to serialize send/receive
|
||||
boost::asio::strand<boost::asio::any_io_executor> strand_;
|
||||
/// TCP resolver
|
||||
tcp::resolver resolver_;
|
||||
/// TCP socket
|
||||
tcp::socket socket_;
|
||||
/// List of pending requests, waiting for a response (Message::refersTo)
|
||||
std::vector<std::weak_ptr<PendingRequest>> pendingRequests_;
|
||||
/// unique request id to match a response
|
||||
uint16_t reqId_;
|
||||
/// Server settings (host and port)
|
||||
ClientSettings::Server server_;
|
||||
|
||||
/// A pending request
|
||||
struct PendingMessage
|
||||
{
|
||||
PendingMessage(const msg::message_ptr& msg, ResultHandler handler) : msg(msg), handler(handler)
|
||||
/// C'tor
|
||||
PendingMessage(msg::message_ptr msg, ResultHandler handler) : msg(std::move(msg)), handler(std::move(handler))
|
||||
{
|
||||
}
|
||||
/// Pointer to the request
|
||||
msg::message_ptr msg;
|
||||
/// Response handler
|
||||
ResultHandler handler;
|
||||
};
|
||||
|
||||
/// Pending messages to be sent
|
||||
std::deque<PendingMessage> messages_;
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue