mirror of
https://github.com/badaix/snapcast.git
synced 2025-05-10 07:36:41 +02:00
Rename MessageReceiver to StreamMessageReceiver
This commit is contained in:
parent
d52015ff09
commit
af93719490
16 changed files with 37 additions and 40 deletions
|
@ -53,11 +53,6 @@ public:
|
|||
/// Send a message to all connected clients
|
||||
void send(const std::string& message, const ControlSession* excludeSession = nullptr);
|
||||
|
||||
/// Clients call this when they receive a message. Implementation of MessageReceiver::onMessageReceived
|
||||
std::string onMessageReceived(ControlSession* session, const std::string& message) override;
|
||||
void onNewSession(const std::shared_ptr<ControlSession>& session) override;
|
||||
void onNewSession(const std::shared_ptr<StreamSession>& session) override;
|
||||
|
||||
private:
|
||||
void startAccept();
|
||||
|
||||
|
@ -65,6 +60,11 @@ private:
|
|||
void handleAccept(tcp::socket socket, Args&&... args);
|
||||
void cleanup();
|
||||
|
||||
/// Implementation of ControlMessageReceiver
|
||||
std::string onMessageReceived(ControlSession* session, const std::string& message) override;
|
||||
void onNewSession(const std::shared_ptr<ControlSession>& session) override;
|
||||
void onNewSession(const std::shared_ptr<StreamSession>& session) override;
|
||||
|
||||
mutable std::recursive_mutex session_mutex_;
|
||||
std::vector<std::weak_ptr<ControlSession>> sessions_;
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ public:
|
|||
class ControlSession : public std::enable_shared_from_this<ControlSession>
|
||||
{
|
||||
public:
|
||||
/// ctor. Received message from the client are passed to MessageReceiver
|
||||
/// ctor. Received message from the client are passed to ControlMessageReceiver
|
||||
ControlSession(ControlMessageReceiver* receiver) : message_receiver_(receiver)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -252,7 +252,7 @@ void ControlSessionHttp::on_read(beast::error_code ec, std::size_t bytes_transfe
|
|||
}
|
||||
|
||||
LOG(DEBUG, LOG_TAG) << "read: " << bytes_transferred << ", method: " << req_.method_string() << ", content type: " << req_[beast::http::field::content_type]
|
||||
<< ", target: " << req_.target() << ", body: " << req_.body() << "\n";
|
||||
<< ", target: " << req_.target() << ", body: " << req_.body() << "\n";
|
||||
|
||||
// See if it is a WebSocket Upgrade
|
||||
if (websocket::is_upgrade(req_))
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace net = boost::asio; // from <boost/asio.hpp>
|
|||
class ControlSessionHttp : public ControlSession
|
||||
{
|
||||
public:
|
||||
/// ctor. Received message from the client are passed to MessageReceiver
|
||||
/// ctor. Received message from the client are passed to ControlMessageReceiver
|
||||
ControlSessionHttp(ControlMessageReceiver* receiver, boost::asio::io_context& ioc, tcp::socket&& socket, const ServerSettings::Http& settings);
|
||||
~ControlSessionHttp() override;
|
||||
void start() override;
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
class ControlSessionTcp : public ControlSession
|
||||
{
|
||||
public:
|
||||
/// ctor. Received message from the client are passed to MessageReceiver
|
||||
/// ctor. Received message from the client are passed to ControlMessageReceiver
|
||||
ControlSessionTcp(ControlMessageReceiver* receiver, boost::asio::io_context& ioc, tcp::socket&& socket);
|
||||
~ControlSessionTcp() override;
|
||||
void start() override;
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace net = boost::asio; // from <boost/asio.hpp>
|
|||
class ControlSessionWebsocket : public ControlSession
|
||||
{
|
||||
public:
|
||||
/// ctor. Received message from the client are passed to MessageReceiver
|
||||
/// ctor. Received message from the client are passed to ControlMessageReceiver
|
||||
ControlSessionWebsocket(ControlMessageReceiver* receiver, boost::asio::io_context& ioc, websocket::stream<beast::tcp_stream>&& socket);
|
||||
~ControlSessionWebsocket() override;
|
||||
void start() override;
|
||||
|
|
|
@ -29,12 +29,12 @@
|
|||
#include "common/queue.h"
|
||||
#include "common/sample_format.hpp"
|
||||
#include "control_server.hpp"
|
||||
#include "stream_server.hpp"
|
||||
#include "jsonrpcpp.hpp"
|
||||
#include "message/codec_header.hpp"
|
||||
#include "message/message.hpp"
|
||||
#include "message/server_settings.hpp"
|
||||
#include "server_settings.hpp"
|
||||
#include "stream_server.hpp"
|
||||
#include "stream_session.hpp"
|
||||
#include "streamreader/stream_manager.hpp"
|
||||
|
||||
|
@ -49,10 +49,10 @@ using session_ptr = std::shared_ptr<StreamSession>;
|
|||
/**
|
||||
* Reads PCM data using PipeStream, implements PcmListener to get the (encoded) PCM stream.
|
||||
* Accepts and holds client connections (StreamSession)
|
||||
* Receives (via the MessageReceiver interface) and answers messages from the clients
|
||||
* Receives (via the StreamMessageReceiver interface) and answers messages from the clients
|
||||
* Forwards PCM data to the clients
|
||||
*/
|
||||
class Server : public MessageReceiver, public ControlMessageReceiver, public PcmListener
|
||||
class Server : public StreamMessageReceiver, public ControlMessageReceiver, public PcmListener
|
||||
{
|
||||
public:
|
||||
Server(boost::asio::io_context& io_context, const ServerSettings& serverSettings);
|
||||
|
@ -61,16 +61,13 @@ public:
|
|||
void start();
|
||||
void stop();
|
||||
|
||||
/// Send a message to all connceted clients
|
||||
// void send(const msg::BaseMessage* message);
|
||||
|
||||
/// Clients call this when they receive a message. Implementation of MessageReceiver::onMessageReceived
|
||||
private:
|
||||
/// Implementation of StreamMessageReceiver
|
||||
void onMessageReceived(StreamSession* connection, const msg::BaseMessage& baseMessage, char* buffer) override;
|
||||
void onDisconnect(StreamSession* connection) override;
|
||||
|
||||
/// Implementation of ControllMessageReceiver::onMessageReceived, called by ControlServer::onMessageReceived
|
||||
/// Implementation of ControllMessageReceiver
|
||||
std::string onMessageReceived(ControlSession* connection, const std::string& message) override;
|
||||
// TODO Refactor: ControlServer implements ControlMessageReceiver, calling this one.
|
||||
void onNewSession(const std::shared_ptr<ControlSession>& session) override
|
||||
{
|
||||
std::ignore = session;
|
||||
|
|
|
@ -30,8 +30,8 @@
|
|||
#include "common/utils/string_utils.hpp"
|
||||
#include "encoder/encoder_factory.hpp"
|
||||
#include "message/message.hpp"
|
||||
#include "server_settings.hpp"
|
||||
#include "server.hpp"
|
||||
#include "server_settings.hpp"
|
||||
#if defined(HAS_AVAHI) || defined(HAS_BONJOUR)
|
||||
#include "publishZeroConf/publish_mdns.hpp"
|
||||
#endif
|
||||
|
|
|
@ -33,7 +33,7 @@ using json = nlohmann::json;
|
|||
|
||||
static constexpr auto LOG_TAG = "StreamServer";
|
||||
|
||||
StreamServer::StreamServer(boost::asio::io_context& io_context, const ServerSettings& serverSettings, MessageReceiver* messageReceiver)
|
||||
StreamServer::StreamServer(boost::asio::io_context& io_context, const ServerSettings& serverSettings, StreamMessageReceiver* messageReceiver)
|
||||
: io_context_(io_context), config_timer_(io_context), settings_(serverSettings), messageReceiver_(messageReceiver)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -48,13 +48,13 @@ using session_ptr = std::shared_ptr<StreamSession>;
|
|||
/**
|
||||
* Reads PCM data using PipeStream, implements PcmListener to get the (encoded) PCM stream.
|
||||
* Accepts and holds client connections (StreamSession)
|
||||
* Receives (via the MessageReceiver interface) and answers messages from the clients
|
||||
* Receives (via the StreamMessageReceiver interface) and answers messages from the clients
|
||||
* Forwards PCM data to the clients
|
||||
*/
|
||||
class StreamServer : public MessageReceiver
|
||||
class StreamServer : public StreamMessageReceiver
|
||||
{
|
||||
public:
|
||||
StreamServer(boost::asio::io_context& io_context, const ServerSettings& serverSettings, MessageReceiver* messageReceiver = nullptr);
|
||||
StreamServer(boost::asio::io_context& io_context, const ServerSettings& serverSettings, StreamMessageReceiver* messageReceiver = nullptr);
|
||||
virtual ~StreamServer();
|
||||
|
||||
void start();
|
||||
|
@ -75,7 +75,7 @@ private:
|
|||
void handleAccept(tcp::socket socket);
|
||||
void cleanup();
|
||||
|
||||
/// Clients call this when they receive a message. Implementation of MessageReceiver::onMessageReceived
|
||||
/// Implementation of StreamMessageReceiver
|
||||
void onMessageReceived(StreamSession* connection, const msg::BaseMessage& baseMessage, char* buffer) override;
|
||||
void onDisconnect(StreamSession* connection) override;
|
||||
|
||||
|
@ -88,7 +88,7 @@ private:
|
|||
|
||||
ServerSettings settings_;
|
||||
Queue<std::shared_ptr<msg::BaseMessage>> messages_;
|
||||
MessageReceiver* messageReceiver_;
|
||||
StreamMessageReceiver* messageReceiver_;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ using namespace streamreader;
|
|||
static constexpr auto LOG_TAG = "StreamSession";
|
||||
|
||||
|
||||
StreamSession::StreamSession(boost::asio::io_context& ioc, MessageReceiver* receiver) : messageReceiver_(receiver), pcmStream_(nullptr), strand_(ioc)
|
||||
StreamSession::StreamSession(boost::asio::io_context& ioc, StreamMessageReceiver* receiver) : messageReceiver_(receiver), pcmStream_(nullptr), strand_(ioc)
|
||||
{
|
||||
base_msg_size_ = baseMessage_.getSize();
|
||||
buffer_.resize(base_msg_size_);
|
||||
|
|
|
@ -40,7 +40,7 @@ class StreamSession;
|
|||
|
||||
|
||||
/// Interface: callback for a received message.
|
||||
class MessageReceiver
|
||||
class StreamMessageReceiver
|
||||
{
|
||||
public:
|
||||
virtual void onMessageReceived(StreamSession* connection, const msg::BaseMessage& baseMessage, char* buffer) = 0;
|
||||
|
@ -110,13 +110,13 @@ using WriteHandler = std::function<void(boost::system::error_code ec, std::size_
|
|||
/**
|
||||
* Endpoint for a connected client.
|
||||
* Messages are sent to the client with the "send" method.
|
||||
* Received messages from the client are passed to the MessageReceiver callback
|
||||
* Received messages from the client are passed to the StreamMessageReceiver callback
|
||||
*/
|
||||
class StreamSession : public std::enable_shared_from_this<StreamSession>
|
||||
{
|
||||
public:
|
||||
/// ctor. Received message from the client are passed to MessageReceiver
|
||||
StreamSession(boost::asio::io_context& ioc, MessageReceiver* receiver);
|
||||
/// ctor. Received message from the client are passed to StreamMessageReceiver
|
||||
StreamSession(boost::asio::io_context& ioc, StreamMessageReceiver* receiver);
|
||||
virtual ~StreamSession() = default;
|
||||
|
||||
virtual std::string getIP() = 0;
|
||||
|
@ -124,7 +124,7 @@ public:
|
|||
virtual void start() = 0;
|
||||
virtual void stop() = 0;
|
||||
|
||||
void setMessageReceiver(MessageReceiver* receiver)
|
||||
void setMessageReceiver(StreamMessageReceiver* receiver)
|
||||
{
|
||||
messageReceiver_ = receiver;
|
||||
}
|
||||
|
@ -153,7 +153,7 @@ protected:
|
|||
msg::BaseMessage baseMessage_;
|
||||
std::vector<char> buffer_;
|
||||
size_t base_msg_size_;
|
||||
MessageReceiver* messageReceiver_;
|
||||
StreamMessageReceiver* messageReceiver_;
|
||||
size_t bufferMs_;
|
||||
streamreader::PcmStreamPtr pcmStream_;
|
||||
boost::asio::io_context::strand strand_;
|
||||
|
|
|
@ -29,7 +29,7 @@ using namespace streamreader;
|
|||
static constexpr auto LOG_TAG = "StreamSessionTCP";
|
||||
|
||||
|
||||
StreamSessionTcp::StreamSessionTcp(boost::asio::io_context& ioc, MessageReceiver* receiver, tcp::socket&& socket)
|
||||
StreamSessionTcp::StreamSessionTcp(boost::asio::io_context& ioc, StreamMessageReceiver* receiver, tcp::socket&& socket)
|
||||
: StreamSession(ioc, receiver), socket_(std::move(socket))
|
||||
{
|
||||
}
|
||||
|
|
|
@ -28,13 +28,13 @@ using boost::asio::ip::tcp;
|
|||
/**
|
||||
* Endpoint for a connected client.
|
||||
* Messages are sent to the client with the "send" method.
|
||||
* Received messages from the client are passed to the MessageReceiver callback
|
||||
* Received messages from the client are passed to the StreamMessageReceiver callback
|
||||
*/
|
||||
class StreamSessionTcp : public StreamSession
|
||||
{
|
||||
public:
|
||||
/// ctor. Received message from the client are passed to MessageReceiver
|
||||
StreamSessionTcp(boost::asio::io_context& ioc, MessageReceiver* receiver, tcp::socket&& socket);
|
||||
/// ctor. Received message from the client are passed to StreamMessageReceiver
|
||||
StreamSessionTcp(boost::asio::io_context& ioc, StreamMessageReceiver* receiver, tcp::socket&& socket);
|
||||
~StreamSessionTcp() override;
|
||||
void start() override;
|
||||
void stop() override;
|
||||
|
|
|
@ -26,7 +26,7 @@ using namespace std;
|
|||
static constexpr auto LOG_TAG = "StreamSessionWS";
|
||||
|
||||
|
||||
StreamSessionWebsocket::StreamSessionWebsocket(boost::asio::io_context& ioc, MessageReceiver* receiver, websocket::stream<beast::tcp_stream>&& socket)
|
||||
StreamSessionWebsocket::StreamSessionWebsocket(boost::asio::io_context& ioc, StreamMessageReceiver* receiver, websocket::stream<beast::tcp_stream>&& socket)
|
||||
: StreamSession(ioc, receiver), ws_(std::move(socket))
|
||||
{
|
||||
LOG(DEBUG, LOG_TAG) << "StreamSessionWS\n";
|
||||
|
|
|
@ -39,8 +39,8 @@ namespace net = boost::asio; // from <boost/asio.hpp>
|
|||
class StreamSessionWebsocket : public StreamSession
|
||||
{
|
||||
public:
|
||||
/// ctor. Received message from the client are passed to MessageReceiver
|
||||
StreamSessionWebsocket(boost::asio::io_context& ioc, MessageReceiver* receiver, websocket::stream<beast::tcp_stream>&& socket);
|
||||
/// ctor. Received message from the client are passed to StreamMessageReceiver
|
||||
StreamSessionWebsocket(boost::asio::io_context& ioc, StreamMessageReceiver* receiver, websocket::stream<beast::tcp_stream>&& socket);
|
||||
~StreamSessionWebsocket() override;
|
||||
void start() override;
|
||||
void stop() override;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue