--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -764,7 +764,7 @@ FIND_PACKAGE(DirectInput) FIND_PACKAGE(NVTT) IF (NOT WIN32) - FIND_PACKAGE(Asio) + FIND_PACKAGE(Boost) ENDIF() FIND_PACKAGE(ZeroConf) --- a/CMakeModules/FindAsio.cmake +++ b/CMakeModules/FindAsio.cmake @@ -1,22 +0,0 @@ -# Locate ASIO-headers (http://think-async.com/Asio) -# This module defines -# ASIO_FOUND, if false, do not try to link to gdal -# ASIO_INCLUDE_DIR, where to find the headers -# -# Created by Stephan Maximilian Huber - -FIND_PATH(ASIO_INCLUDE_DIR - NAMES - asio.hpp - PATHS - /usr/include - /usr/local/include -) - -SET(ASIO_FOUND "NO") -IF(ASIO_INCLUDE_DIR) - FIND_PACKAGE( Boost 1.37 ) - IF(Boost_FOUND) - SET(ASIO_FOUND "YES") - ENDIF() -ENDIF() --- a/src/osgPlugins/CMakeLists.txt +++ b/src/osgPlugins/CMakeLists.txt @@ -299,13 +299,13 @@ # # Device integration plugins # -IF (SDL_FOUND) +IF(SDL_FOUND) ADD_PLUGIN_DIRECTORY(sdl) -ENDIF(SDL_FOUND) +ENDIF() -IF(ASIO_FOUND) +IF(Boost_FOUND) ADD_PLUGIN_DIRECTORY(RestHttpDevice) -ENDIF(ASIO_FOUND) +ENDIF() IF(ZEROCONF_FOUND) --- a/src/osgPlugins/RestHttpDevice/CMakeLists.txt +++ b/src/osgPlugins/RestHttpDevice/CMakeLists.txt @@ -1,6 +1,5 @@ INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) -INCLUDE_DIRECTORIES(${ASIO_INCLUDE_DIR}) - + SET(TARGET_SRC connection.cpp io_service_pool.cpp @@ -26,7 +25,7 @@ RestHttpDevice.hpp ) -SET(TARGET_ADDED_LIBRARIES osgPresentation ) +SET(TARGET_ADDED_LIBRARIES osgPresentation) #### end var setup ### SETUP_PLUGIN(resthttp) --- a/src/osgPlugins/RestHttpDevice/connection.cpp +++ b/src/osgPlugins/RestHttpDevice/connection.cpp @@ -37,14 +37,14 @@ void connection::start() { OSG_DEBUG << "RestHttpDevice :: connection::start" << std::endl; - + socket_.async_read_some(asio::buffer(buffer_), boost::bind(&connection::handle_read, shared_from_this(), asio::placeholders::error, asio::placeholders::bytes_transferred)); } -void connection::handle_read(const asio::error_code& e, +void connection::handle_read(const boost::system::error_code& e, std::size_t bytes_transferred) { if (!e) @@ -82,12 +82,12 @@ // handler returns. The connection class's destructor closes the socket. } -void connection::handle_write(const asio::error_code& e) +void connection::handle_write(const boost::system::error_code& e) { if (!e) { // Initiate graceful connection closure. - asio::error_code ignored_ec; + boost::system::error_code ignored_ec; socket_.shutdown(asio::ip::tcp::socket::shutdown_both, ignored_ec); } --- a/src/osgPlugins/RestHttpDevice/connection.hpp +++ b/src/osgPlugins/RestHttpDevice/connection.hpp @@ -11,7 +11,7 @@ #ifndef HTTP_SERVER_CONNECTION_HPP #define HTTP_SERVER_CONNECTION_HPP -#include +#include #include #include #include @@ -21,6 +21,8 @@ #include "request_handler.hpp" #include "request_parser.hpp" +using namespace boost; + namespace http { namespace server { @@ -42,11 +44,11 @@ ~connection(); private: /// Handle completion of a read operation. - void handle_read(const asio::error_code& e, + void handle_read(const boost::system::error_code& e, std::size_t bytes_transferred); /// Handle completion of a write operation. - void handle_write(const asio::error_code& e); + void handle_write(const boost::system::error_code& e); /// Socket for the connection. asio::ip::tcp::socket socket_; --- a/src/osgPlugins/RestHttpDevice/io_service_pool.cpp +++ b/src/osgPlugins/RestHttpDevice/io_service_pool.cpp @@ -11,7 +11,7 @@ #include "server.hpp" #include #include -#include +#include namespace http { namespace server { @@ -36,17 +36,14 @@ void io_service_pool::run() { // Create a pool of threads to run all of the io_services. - std::vector > threads; + std::vector threads; for (std::size_t i = 0; i < io_services_.size(); ++i) - { - boost::shared_ptr thread(new asio::thread( - boost::bind(&asio::io_service::run, io_services_[i]))); - threads.push_back(thread); - } + threads.emplace_back(thread(boost::bind(&asio::io_service::run, + io_services_[i]))); // Wait for all threads in the pool to exit. for (std::size_t i = 0; i < threads.size(); ++i) - threads[i]->join(); + threads[i].join(); } void io_service_pool::stop() --- a/src/osgPlugins/RestHttpDevice/io_service_pool.hpp +++ b/src/osgPlugins/RestHttpDevice/io_service_pool.hpp @@ -11,11 +11,13 @@ #ifndef HTTP_SERVER_IO_SERVICE_POOL_HPP #define HTTP_SERVER_IO_SERVICE_POOL_HPP -#include +#include #include #include #include +using namespace boost; + namespace http { namespace server { --- a/src/osgPlugins/RestHttpDevice/reply.hpp +++ b/src/osgPlugins/RestHttpDevice/reply.hpp @@ -13,9 +13,11 @@ #include #include -#include +#include #include "header.hpp" +using namespace boost; + namespace http { namespace server { --- a/src/osgPlugins/RestHttpDevice/server.cpp +++ b/src/osgPlugins/RestHttpDevice/server.cpp @@ -23,7 +23,7 @@ request_handler_(doc_root) { // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). - asio::ip::tcp::resolver resolver(acceptor_.get_io_service()); + asio::ip::tcp::resolver resolver(io_service_pool_.get_io_service()); asio::ip::tcp::resolver::query query(address, port); asio::ip::tcp::endpoint endpoint = *resolver.resolve(query); acceptor_.open(endpoint.protocol()); @@ -47,7 +47,7 @@ io_service_pool_.stop(); } -void server::handle_accept(const asio::error_code& e) +void server::handle_accept(const boost::system::error_code& e) { if (!e) { --- a/src/osgPlugins/RestHttpDevice/server.hpp +++ b/src/osgPlugins/RestHttpDevice/server.hpp @@ -11,7 +11,7 @@ #ifndef HTTP_SERVER_SERVER_HPP #define HTTP_SERVER_SERVER_HPP -#include +#include #include #include #include @@ -20,6 +20,8 @@ #include "io_service_pool.hpp" #include "request_handler.hpp" +using namespace boost; + namespace http { namespace server { @@ -38,12 +40,12 @@ /// Stop the server. void stop(); - + void setCallback(request_handler::Callback* cb) { request_handler_.setCallback(cb); } private: /// Handle completion of an asynchronous accept operation. - void handle_accept(const asio::error_code& e); + void handle_accept(const boost::system::error_code& e); /// The pool of io_service objects used to perform asynchronous operations. io_service_pool io_service_pool_;