#include <strand_service.hpp>

Public Types | |
| typedef boost::intrusive_ptr < strand_impl > | implementation_type |
Public Member Functions | |
| strand_service (asio::io_service &io_service) | |
| void | shutdown_service () |
| Destroy all user-defined handler objects owned by the service. | |
| void | construct (implementation_type &impl) |
| void | destroy (implementation_type &impl) |
| template<typename Handler> | |
| void | dispatch (implementation_type &impl, Handler handler) |
| template<typename Handler> | |
| void | post (implementation_type &impl, Handler handler) |
Private Attributes | |
| asio::detail::mutex | mutex_ |
| strand_impl * | impl_list_ |
Friends | |
| class | strand_impl |
Classes | |
| class | handler_base |
| class | handler_wrapper |
| class | invoke_current_handler |
| class | post_next_waiter_on_exit |
| class | strand_impl |
Definition at line 39 of file strand_service.hpp.
| typedef boost::intrusive_ptr<strand_impl> asio::detail::strand_service::implementation_type |
Definition at line 167 of file strand_service.hpp.
| asio::detail::strand_service::strand_service | ( | asio::io_service & | io_service | ) | [inline, explicit] |
Definition at line 354 of file strand_service.hpp.
| void asio::detail::strand_service::shutdown_service | ( | ) | [inline, virtual] |
Destroy all user-defined handler objects owned by the service.
Implements asio::io_service::service.
Definition at line 362 of file strand_service.hpp.
References asio::detail::strand_service::strand_impl::current_handler_, asio::detail::strand_service::handler_base::destroy(), asio::detail::strand_service::strand_impl::first_waiter_, impl_list_, asio::detail::strand_service::strand_impl::last_waiter_, mutex_, asio::detail::strand_service::strand_impl::next_, asio::detail::strand_service::handler_base::next_, and asio::detail::scoped_lock< Mutex >::unlock().
| void asio::detail::strand_service::construct | ( | implementation_type & | impl | ) | [inline] |
Definition at line 397 of file strand_service.hpp.
References strand_impl.
Referenced by asio::io_service::strand::strand().
| void asio::detail::strand_service::destroy | ( | implementation_type & | impl | ) | [inline] |
Definition at line 403 of file strand_service.hpp.
Referenced by asio::io_service::strand::~strand().
| void asio::detail::strand_service::dispatch | ( | implementation_type & | impl, | |
| Handler | handler | |||
| ) | [inline] |
Definition at line 410 of file strand_service.hpp.
References asio::io_service::dispatch(), asio::detail::handler_ptr< Alloc_Traits >::get(), asio_handler_invoke_helpers::invoke(), asio::io_service::service::io_service(), asio::detail::handler_ptr< Alloc_Traits >::release(), and asio::detail::scoped_lock< Mutex >::unlock().
Referenced by asio::io_service::strand::dispatch().
| void asio::detail::strand_service::post | ( | implementation_type & | impl, | |
| Handler | handler | |||
| ) | [inline] |
Definition at line 456 of file strand_service.hpp.
References asio::detail::handler_ptr< Alloc_Traits >::get(), asio::io_service::service::io_service(), asio::io_service::post(), asio::detail::handler_ptr< Alloc_Traits >::release(), and asio::detail::scoped_lock< Mutex >::unlock().
Referenced by asio::io_service::strand::post().
friend class strand_impl [friend] |
Definition at line 495 of file strand_service.hpp.
Referenced by shutdown_service(), asio::detail::strand_service::strand_impl::strand_impl(), and asio::detail::strand_service::strand_impl::~strand_impl().
Definition at line 498 of file strand_service.hpp.
Referenced by shutdown_service(), asio::detail::strand_service::strand_impl::strand_impl(), and asio::detail::strand_service::strand_impl::~strand_impl().
1.5.6