RSB
0.17.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
AsioServiceContext.cpp
Go to the documentation of this file.
1
/* ============================================================
2
*
3
* This file is part of the RSB project
4
*
5
* Copyright (C) 2014 Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de>
6
*
7
* This file may be licensed under the terms of the
8
* GNU Lesser General Public License Version 3 (the ``LGPL''),
9
* or (at your option) any later version.
10
*
11
* Software distributed under the License is distributed
12
* on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
13
* express or implied. See the LGPL for the specific language
14
* governing rights and limitations.
15
*
16
* You should have received a copy of the LGPL along with this
17
* program. If not, go to http://www.gnu.org/licenses/lgpl.html
18
* or write to the Free Software Foundation, Inc.,
19
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20
*
21
* The development of this software was supported by:
22
* CoR-Lab, Research Institute for Cognition and Robotics
23
* Bielefeld University
24
*
25
* ============================================================ */
26
27
#include "
AsioServiceContext.h
"
28
29
using namespace
std
;
30
using namespace
boost::asio
;
31
using namespace
rsc::logging
;
32
33
namespace
rsb
{
34
namespace
transport {
35
36
AsioServiceContext::AsioServiceContext() :
37
logger(Logger::getLogger(
"rsb.transport.socket.AsioServiceContext"
)), service(
38
new io_service), keepAlive(new io_service::work(*service)), thread(
39
boost
::bind(&
boost
::asio::io_service::run, service)) {
40
RSCINFO(
logger
,
"Started service thread"
);
41
}
42
43
AsioServiceContext::~AsioServiceContext
() {
44
RSCINFO(
logger
,
"Stopping service thread"
);
45
this->
keepAlive
.reset();
46
if
(boost::this_thread::get_id() != this->
thread
.get_id()) {
47
this->
thread
.join();
48
}
49
RSCINFO(
logger
,
"Stopped service thread"
);
50
}
51
52
AsioServiceContext::ServicePtr
AsioServiceContext::getService
() {
53
return
service
;
54
}
55
56
}
57
}
boost
rsb::transport::AsioServiceContext::getService
ServicePtr getService()
Definition:
AsioServiceContext.cpp:52
std
STL namespace.
asio
rsb
Definition:
CommException.cpp:31
rsb::transport::AsioServiceContext::service
ServicePtr service
Definition:
AsioServiceContext.h:60
rsb::transport::AsioServiceContext::keepAlive
WorkPtr keepAlive
Definition:
AsioServiceContext.h:61
AsioServiceContext.h
logging
rsb::transport::AsioServiceContext::logger
rsc::logging::LoggerPtr logger
Definition:
AsioServiceContext.h:59
rsb::transport::AsioServiceContext::thread
boost::thread thread
Definition:
AsioServiceContext.h:62
rsb::transport::AsioServiceContext::ServicePtr
boost::shared_ptr< boost::asio::io_service > ServicePtr
Definition:
AsioServiceContext.h:52
rsb::transport::AsioServiceContext::~AsioServiceContext
virtual ~AsioServiceContext()
Definition:
AsioServiceContext.cpp:43
rsb
transport
AsioServiceContext.cpp
Generated by
1.8.11