pion::single_service_scheduler Class Reference

`#include <scheduler.hpp>`

Inherits pion::multi_thread_scheduler.

## Public Member Functions

| single_service_scheduler (void)
| constructs a new single_service_scheduler
virtual | ~single_service_scheduler ()
| virtual destructor
virtual boost::asio::io_service & | get_io_service (void)
| returns an async I/O service used to schedule work
virtual void | startup (void)
| Starts the thread scheduler (this is called automatically when necessary)
Public Member Functions inherited from pion::multi_thread_scheduler
| multi_thread_scheduler (void)
| constructs a new single_service_scheduler
virtual | ~multi_thread_scheduler ()
| virtual destructor
Public Member Functions inherited from pion::scheduler
| scheduler (void)
| constructs a new scheduler
virtual | ~scheduler ()
| virtual destructor
virtual void | shutdown (void)
| Stops the thread scheduler (this is called automatically when the program exits)
void | join (void)
| the calling thread will sleep until the scheduler has stopped
void | add_active_user (void)
void | remove_active_user (void)
| unregisters an active user with the thread scheduler
bool | is_running (void) const
| returns true if the scheduler is running
void | set_num_threads (const boost::uint32_t n)
| sets the number of threads to be used (these are shared by all servers)
boost::uint32_t | get_num_threads (void) const
| returns the number of threads currently in use
void | set_logger (logger log_ptr)
| sets the logger to be used
logger | get_logger (void)
| returns the logger currently in use
virtual void | post (boost::function0< void > work_func)
void | keep_running (boost::asio::io_service &my_service, boost::asio::deadline_timer &my_timer)
void | process_service_work (boost::asio::io_service &service)
| processes work passed to the asio service & handles uncaught exceptions

## Protected Member Functions

virtual void | stop_services (void)
| stops all services used to schedule work
virtual void | finish_services (void)
| finishes all services used to schedule work
Protected Member Functions inherited from pion::multi_thread_scheduler
virtual void | stop_threads (void)
| stops all threads used to perform work
virtual void | finish_threads (void)
| finishes all threads used to perform work

## Protected Attributes

boost::asio::io_service | m_service
| service used to manage async I/O events
boost::asio::deadline_timer | m_timer
| timer used to periodically check for shutdown
Protected Attributes inherited from pion::multi_thread_scheduler
ThreadPool | m_thread_pool
| pool of threads used to perform work
Protected Attributes inherited from pion::scheduler
boost::mutex | m_mutex
| mutex to make class thread-safe
logger | m_logger
| primary logging interface used by this class
boost::condition | m_no_more_active_users
| condition triggered when there are no more active users
boost::condition | m_scheduler_has_stopped
| condition triggered when the scheduler has stopped
boost::uint32_t | m_num_threads
| total number of worker threads in the pool
boost::uint32_t | m_active_users
| the scheduler will not shutdown until there are no more active users
bool | m_is_running
| true if the thread scheduler is running

## Additional Inherited Members

Static Public Member Functions inherited from pion::scheduler
static void | sleep (boost::uint32_t sleep_sec, boost::uint32_t sleep_nsec)
template<typename ConditionType , typename LockType >
static void | sleep (ConditionType &wakeup_condition, LockType &wakeup_lock, boost::uint32_t sleep_sec, boost::uint32_t sleep_nsec)
Protected Types inherited from pion::multi_thread_scheduler
typedef std::vector< boost::shared_ptr< boost::thread > > | ThreadPool
| typedef for a pool of worker threads
Static Protected Member Functions inherited from pion::scheduler
static boost::system_time | get_wakeup_time (boost::uint32_t sleep_sec, boost::uint32_t sleep_nsec)
Static Protected Attributes inherited from pion::scheduler
static const boost::uint32_t | DEFAULT_NUM_THREADS = 8
| default number of worker threads in the thread pool
static const boost::uint32_t | NSEC_IN_SECOND = 1000000000
| number of nanoseconds in one full second (10 ^ 9)
static const boost::uint32_t | MICROSEC_IN_SECOND = 1000000
| number of microseconds in one full second (10 ^ 6)
static const boost::uint32_t | KEEP_RUNNING_TIMER_SECONDS = 5
| number of seconds a timer should wait for to keep the IO services running

## Detailed Description

single_service_scheduler: uses a single IO service to schedule work

Definition at line 246 of file scheduler.hpp.

The documentation for this class was generated from the following files:

- include/pion/scheduler.hpp
- src/scheduler.cpp