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
|
notes.txt
|
||||||
sanitizer-suppressions.txt
|
sanitizer-suppressions.txt
|
||||||
snapserver.conf
|
snapserver.conf
|
||||||
|
certs
|
||||||
|
server/etc/certs
|
||||||
|
|
||||||
extras/package/debian/snap*.debhelper.log
|
extras/package/debian/snap*.debhelper.log
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include <boost/asio/write.hpp>
|
#include <boost/asio/write.hpp>
|
||||||
|
|
||||||
// standard headers
|
// standard headers
|
||||||
|
#include <cstdint>
|
||||||
#include <iostream>
|
#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)
|
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_(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();
|
base_msg_size_ = base_message_.getSize();
|
||||||
buffer_.resize(base_msg_size_);
|
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]()
|
boost::asio::post(strand_, [this, message, timeout, handler]()
|
||||||
{
|
{
|
||||||
pendingRequests_.erase(
|
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());
|
pendingRequests_.end());
|
||||||
unique_ptr<msg::BaseMessage> response(nullptr);
|
unique_ptr<msg::BaseMessage> response(nullptr);
|
||||||
if (++reqId_ >= 10000)
|
static constexpr uint16_t max_req_id = 10000;
|
||||||
|
if (++reqId_ >= max_req_id)
|
||||||
reqId_ = 1;
|
reqId_ = 1;
|
||||||
message->id = reqId_;
|
message->id = reqId_;
|
||||||
auto request = make_shared<PendingRequest>(strand_, reqId_, handler);
|
auto request = make_shared<PendingRequest>(strand_, reqId_, handler);
|
||||||
|
|
|
@ -83,10 +83,11 @@ private:
|
||||||
class ClientConnection
|
class ClientConnection
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/// Result callback with boost::error_code
|
||||||
using ResultHandler = std::function<void(const boost::system::error_code&)>;
|
using ResultHandler = std::function<void(const boost::system::error_code&)>;
|
||||||
|
|
||||||
/// c'tor
|
/// 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
|
/// d'tor
|
||||||
virtual ~ClientConnection();
|
virtual ~ClientConnection();
|
||||||
|
|
||||||
|
@ -122,6 +123,7 @@ public:
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @return MAC address of the client
|
||||||
std::string getMacAddress();
|
std::string getMacAddress();
|
||||||
|
|
||||||
/// async get the next message
|
/// async get the next message
|
||||||
|
@ -129,26 +131,42 @@ public:
|
||||||
void getNextMessage(const MessageHandler<msg::BaseMessage>& handler);
|
void getNextMessage(const MessageHandler<msg::BaseMessage>& handler);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
/// Send next pending message from messages_
|
||||||
void sendNext();
|
void sendNext();
|
||||||
|
|
||||||
|
/// Base message holding the received message
|
||||||
msg::BaseMessage base_message_;
|
msg::BaseMessage base_message_;
|
||||||
|
/// Receive buffer
|
||||||
std::vector<char> buffer_;
|
std::vector<char> buffer_;
|
||||||
|
/// Size of a base message (= message header)
|
||||||
size_t base_msg_size_;
|
size_t base_msg_size_;
|
||||||
|
|
||||||
|
/// Strand to serialize send/receive
|
||||||
boost::asio::strand<boost::asio::any_io_executor> strand_;
|
boost::asio::strand<boost::asio::any_io_executor> strand_;
|
||||||
|
/// TCP resolver
|
||||||
tcp::resolver resolver_;
|
tcp::resolver resolver_;
|
||||||
|
/// TCP socket
|
||||||
tcp::socket socket_;
|
tcp::socket socket_;
|
||||||
|
/// List of pending requests, waiting for a response (Message::refersTo)
|
||||||
std::vector<std::weak_ptr<PendingRequest>> pendingRequests_;
|
std::vector<std::weak_ptr<PendingRequest>> pendingRequests_;
|
||||||
|
/// unique request id to match a response
|
||||||
uint16_t reqId_;
|
uint16_t reqId_;
|
||||||
|
/// Server settings (host and port)
|
||||||
ClientSettings::Server server_;
|
ClientSettings::Server server_;
|
||||||
|
|
||||||
|
/// A pending request
|
||||||
struct PendingMessage
|
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;
|
msg::message_ptr msg;
|
||||||
|
/// Response handler
|
||||||
ResultHandler handler;
|
ResultHandler handler;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Pending messages to be sent
|
||||||
std::deque<PendingMessage> messages_;
|
std::deque<PendingMessage> messages_;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue