mirror of
https://github.com/badaix/snapcast.git
synced 2025-06-03 11:21:41 +02:00
sync send
git-svn-id: svn://elaine/murooma/trunk@256 d8a302eb-03bc-478d-80e4-98257eca68ef
This commit is contained in:
parent
979f6460d3
commit
3369363453
8 changed files with 111 additions and 25 deletions
|
@ -6,6 +6,8 @@
|
|||
#include <atomic>
|
||||
#include <mutex>
|
||||
#include <boost/asio.hpp>
|
||||
#include <condition_variable>
|
||||
#include <set>
|
||||
#include "message.h"
|
||||
|
||||
|
||||
|
@ -15,6 +17,16 @@ using boost::asio::ip::tcp;
|
|||
class SocketConnection;
|
||||
|
||||
|
||||
struct PendingRequest
|
||||
{
|
||||
PendingRequest(uint16_t reqId) : id(reqId), response(NULL) {};
|
||||
|
||||
uint16_t id;
|
||||
BaseMessage* response;
|
||||
std::condition_variable cv;
|
||||
};
|
||||
|
||||
|
||||
class MessageReceiver
|
||||
{
|
||||
public:
|
||||
|
@ -29,7 +41,8 @@ public:
|
|||
virtual ~SocketConnection();
|
||||
virtual void start();
|
||||
virtual void stop();
|
||||
virtual void send(BaseMessage* _message);
|
||||
virtual bool send(BaseMessage* _message);
|
||||
virtual BaseMessage* sendRequest(BaseMessage* message, size_t timeout);
|
||||
|
||||
virtual bool active()
|
||||
{
|
||||
|
@ -57,6 +70,8 @@ protected:
|
|||
tcp::resolver::iterator iterator;
|
||||
std::thread* receiverThread;
|
||||
mutable std::mutex mutex_;
|
||||
std::set<std::shared_ptr<PendingRequest>> pendingRequests;
|
||||
uint16_t reqId;
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue