switched to standalone asio

This commit is contained in:
badaix 2015-12-03 22:23:43 +01:00
parent 75179cc936
commit 5cc7285a87
14 changed files with 42 additions and 42 deletions

View file

@ -3,7 +3,7 @@ TARGET = snapclient
SHELL = /bin/bash
CXX = /usr/bin/g++
CFLAGS = -std=c++0x -Wall -Wno-unused-function -O3 -pthread -DVERSION=\"$(VERSION)\" -I..
CFLAGS = -std=c++0x -Wall -Wno-unused-function -O3 -pthread -DVERSION=\"$(VERSION)\" -I.. -I../externals/asio/asio/include
#CFLAGS = -std=c++0x -Wall -Wno-unused-function -O3 -pthread -DVERSION=\"$(VERSION)\" -I.. -static-libgcc -static-libstdc++
LDFLAGS = -lrt -lboost_system -lboost_program_options -lasound -logg -lvorbis -lvorbisenc -lFLAC -lavahi-client -lavahi-common

View file

@ -47,7 +47,7 @@ void ClientConnection::socketRead(void* _to, size_t _bytes)
do
{
// boost::system::error_code error;
len += socket_->read_some(boost::asio::buffer((char*)_to + len, toRead));
len += socket_->read_some(asio::buffer((char*)_to + len, toRead));
//cout << "len: " << len << ", error: " << error << endl;
toRead = _bytes - len;
}
@ -58,7 +58,7 @@ void ClientConnection::socketRead(void* _to, size_t _bytes)
void ClientConnection::start()
{
tcp::resolver resolver(io_service_);
tcp::resolver::query query(tcp::v4(), host_, std::to_string(port_), boost::asio::ip::resolver_query_base::numeric_service);
tcp::resolver::query query(tcp::v4(), host_, std::to_string(port_), asio::ip::resolver_query_base::numeric_service);
auto iterator = resolver.resolve(query);
logO << "Connecting\n";
socket_.reset(new tcp::socket(io_service_));
@ -86,10 +86,10 @@ void ClientConnection::stop()
active_ = false;
try
{
boost::system::error_code ec;
std::error_code ec;
if (socket_)
{
socket_->shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
socket_->shutdown(asio::ip::tcp::socket::shutdown_both, ec);
if (ec) logE << "Error in socket shutdown: " << ec << endl;
socket_->close(ec);
if (ec) logE << "Error in socket close: " << ec << endl;
@ -116,12 +116,12 @@ bool ClientConnection::send(const msg::BaseMessage* message) const
if (!connected())
return false;
//logD << "send: " << message->type << ", size: " << message->getSize() << "\n";
boost::asio::streambuf streambuf;
asio::streambuf streambuf;
std::ostream stream(&streambuf);
tv t;
message->sent = t;
message->serialize(stream);
boost::asio::write(*socket_.get(), streambuf);
asio::write(*socket_.get(), streambuf);
return true;
}

View file

@ -24,14 +24,14 @@
#include <atomic>
#include <mutex>
#include <memory>
#include <boost/asio.hpp>
#include <asio.hpp>
#include <condition_variable>
#include <set>
#include "message/message.h"
#include "common/timeDefs.h"
using boost::asio::ip::tcp;
using asio::ip::tcp;
class ClientConnection;
@ -105,7 +105,7 @@ protected:
void socketRead(void* to, size_t bytes);
void getNextMessage();
boost::asio::io_service io_service_;
asio::io_service io_service_;
std::shared_ptr<tcp::socket> socket_;
std::atomic<bool> active_;
std::atomic<bool> connected_;

2
externals/tclap vendored

@ -1 +1 @@
Subproject commit f41dcb5ce3d063c9fe95623193bba693338f3edb
Subproject commit 3627d9402e529770df9b0edf2aa8c0e0d6c6bb41

View file

@ -3,7 +3,7 @@ TARGET = snapserver
SHELL = /bin/bash
CXX = /usr/bin/g++
CFLAGS = -std=c++0x -Wall -Wno-unused-function -O3 -pthread -DVERSION=\"$(VERSION)\" -I..
CFLAGS = -std=c++0x -Wall -Wno-unused-function -O3 -pthread -DVERSION=\"$(VERSION)\" -I.. -I../externals/asio/asio/include
LDFLAGS = -lrt -lboost_system -lboost_program_options -lvorbis -lvorbisenc -logg -lFLAC -lavahi-client -lavahi-common
OBJ = snapServer.o config.o controlServer.o controlSession.o streamServer.o streamSession.o json/jsonrpc.o pcmreader/pcmReader.o pcmreader/pipeReader.o encoder/encoderFactory.o encoder/flacEncoder.o encoder/pcmEncoder.o encoder/oggEncoder.o publishAvahi.o ../common/log.o ../message/pcmChunk.o ../message/sampleFormat.o

View file

@ -33,7 +33,7 @@ using namespace std;
using json = nlohmann::json;
ControlServer::ControlServer(boost::asio::io_service* io_service, size_t port, ControlMessageReceiver* controlMessageReceiver) : io_service_(io_service), port_(port), controlMessageReceiver_(controlMessageReceiver)
ControlServer::ControlServer(asio::io_service* io_service, size_t port, ControlMessageReceiver* controlMessageReceiver) : io_service_(io_service), port_(port), controlMessageReceiver_(controlMessageReceiver)
{
}

View file

@ -19,7 +19,7 @@
#ifndef CONTROL_SERVER_H
#define CONTROL_SERVER_H
#include <boost/asio.hpp>
#include <asio.hpp>
#include <vector>
#include <thread>
#include <memory>
@ -35,7 +35,7 @@
#include "message/serverSettings.h"
using boost::asio::ip::tcp;
using asio::ip::tcp;
typedef std::shared_ptr<tcp::socket> socket_ptr;
@ -46,7 +46,7 @@ typedef std::shared_ptr<tcp::socket> socket_ptr;
class ControlServer : public ControlMessageReceiver
{
public:
ControlServer(boost::asio::io_service* io_service, size_t port, ControlMessageReceiver* controlMessageReceiver = NULL);
ControlServer(asio::io_service* io_service, size_t port, ControlMessageReceiver* controlMessageReceiver = NULL);
virtual ~ControlServer();
void start();
@ -67,7 +67,7 @@ private:
std::shared_ptr<tcp::acceptor> acceptor_;
Queue<std::shared_ptr<msg::BaseMessage>> messages_;
boost::asio::io_service* io_service_;
asio::io_service* io_service_;
size_t port_;
ControlMessageReceiver* controlMessageReceiver_;
};

View file

@ -52,10 +52,10 @@ void ControlSession::stop()
active_ = false;
try
{
boost::system::error_code ec;
std::error_code ec;
if (socket_)
{
socket_->shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
socket_->shutdown(asio::ip::tcp::socket::shutdown_both, ec);
if (ec) logE << "Error in socket shutdown: " << ec << "\n";
socket_->close(ec);
if (ec) logE << "Error in socket close: " << ec << "\n";
@ -96,10 +96,10 @@ bool ControlSession::send(const std::string& message) const
std::unique_lock<std::mutex> mlock(mutex_);
if (!socket_ || !active_)
return false;
boost::asio::streambuf streambuf;
asio::streambuf streambuf;
std::ostream request_stream(&streambuf);
request_stream << message << "\r\n";
boost::asio::write(*socket_.get(), streambuf);
asio::write(*socket_.get(), streambuf);
// logO << "done: " << message->type << ", size: " << message->size << ", id: " << message->id << ", refers: " << message->refersTo << "\n";
return true;
}
@ -112,8 +112,8 @@ void ControlSession::reader()
{
while (active_)
{
boost::asio::streambuf response;
boost::asio::read_until(*socket_, response, "\r\n");
asio::streambuf response;
asio::read_until(*socket_, response, "\r\n");
std::string s((istreambuf_iterator<char>(&response)), istreambuf_iterator<char>());
s.resize(s.length() - 2);
@ -133,7 +133,7 @@ void ControlSession::writer()
{
try
{
boost::asio::streambuf streambuf;
asio::streambuf streambuf;
std::ostream stream(&streambuf);
string message;
while (active_)

View file

@ -24,14 +24,14 @@
#include <atomic>
#include <mutex>
#include <memory>
#include <boost/asio.hpp>
#include <asio.hpp>
#include <condition_variable>
#include <set>
#include "message/message.h"
#include "common/queue.h"
using boost::asio::ip::tcp;
using asio::ip::tcp;
class ControlSession;

View file

@ -127,11 +127,11 @@ int main(int argc, char* argv[])
settings.bufferMs = 400;
settings.sampleFormat = sampleFormat;
boost::asio::io_service io_service;
asio::io_service io_service;
std::unique_ptr<StreamServer> streamServer(new StreamServer(&io_service, settings));
streamServer->start();
auto func = [](boost::asio::io_service* ioservice)->void{ioservice->run();};
auto func = [](asio::io_service* ioservice)->void{ioservice->run();};
std::thread t(func, &io_service);
while (!g_terminated)

View file

@ -32,7 +32,7 @@ using namespace std;
using json = nlohmann::json;
StreamServer::StreamServer(boost::asio::io_service* io_service, const StreamServerSettings& streamServerSettings) : io_service_(io_service), settings_(streamServerSettings), sampleFormat_(streamServerSettings.sampleFormat)
StreamServer::StreamServer(asio::io_service* io_service, const StreamServerSettings& streamServerSettings) : io_service_(io_service), settings_(streamServerSettings), sampleFormat_(streamServerSettings.sampleFormat)
{
}

View file

@ -19,7 +19,7 @@
#ifndef STREAM_SERVER_H
#define STREAM_SERVER_H
#include <boost/asio.hpp>
#include <asio.hpp>
#include <vector>
#include <thread>
#include <memory>
@ -37,7 +37,7 @@
#include "controlServer.h"
using boost::asio::ip::tcp;
using asio::ip::tcp;
typedef std::shared_ptr<tcp::socket> socket_ptr;
@ -73,7 +73,7 @@ struct StreamServerSettings
class StreamServer : public MessageReceiver, ControlMessageReceiver, PcmListener
{
public:
StreamServer(boost::asio::io_service* io_service, const StreamServerSettings& streamServerSettings);
StreamServer(asio::io_service* io_service, const StreamServerSettings& streamServerSettings);
virtual ~StreamServer();
void start();
@ -100,7 +100,7 @@ private:
mutable std::mutex mutex_;
std::unique_ptr<PcmReader> pcmReader_;
std::set<std::shared_ptr<StreamSession>> sessions_;
boost::asio::io_service* io_service_;
asio::io_service* io_service_;
std::shared_ptr<tcp::acceptor> acceptor_;
StreamServerSettings settings_;

View file

@ -54,10 +54,10 @@ void StreamSession::stop()
setActive(false);
try
{
boost::system::error_code ec;
std::error_code ec;
if (socket_)
{
socket_->shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
socket_->shutdown(asio::ip::tcp::socket::shutdown_both, ec);
if (ec) logE << "Error in socket shutdown: " << ec << "\n";
socket_->close(ec);
if (ec) logE << "Error in socket close: " << ec << "\n";
@ -90,8 +90,8 @@ void StreamSession::socketRead(void* _to, size_t _bytes)
size_t read = 0;
do
{
boost::system::error_code error;
read += socket_->read_some(boost::asio::buffer((char*)_to + read, _bytes - read));
std::error_code error;
read += socket_->read_some(asio::buffer((char*)_to + read, _bytes - read));
}
while (active_ && (read < _bytes));
}
@ -114,12 +114,12 @@ bool StreamSession::send(const msg::BaseMessage* message) const
std::unique_lock<std::mutex> mlock(mutex_);
if (!socket_ || !active_)
return false;
boost::asio::streambuf streambuf;
asio::streambuf streambuf;
std::ostream stream(&streambuf);
tv t;
message->sent = t;
message->serialize(stream);
boost::asio::write(*socket_.get(), streambuf);
asio::write(*socket_.get(), streambuf);
// logO << "done: " << message->type << ", size: " << message->size << ", id: " << message->id << ", refers: " << message->refersTo << "\n";
return true;
}
@ -165,7 +165,7 @@ void StreamSession::writer()
{
try
{
boost::asio::streambuf streambuf;
asio::streambuf streambuf;
std::ostream stream(&streambuf);
shared_ptr<const msg::BaseMessage> message;
while (active_)

View file

@ -24,14 +24,14 @@
#include <atomic>
#include <mutex>
#include <memory>
#include <boost/asio.hpp>
#include <asio.hpp>
#include <condition_variable>
#include <set>
#include "message/message.h"
#include "common/queue.h"
using boost::asio::ip::tcp;
using asio::ip::tcp;
class StreamSession;