OpenDDS
Snapshot(2023/04/07-19:43)
|
#include <ReactorTask.h>
Classes | |
class | Interceptor |
Public Member Functions | |
ReactorTask (bool useAsyncSend) | |
virtual | ~ReactorTask () |
int | open_reactor_task (void *, ThreadStatusManager *thread_status_manager=0, const String &name="") |
virtual int | open (void *ptr) |
virtual int | svc () |
virtual int | close (u_long flags=0) |
void | stop () |
ACE_Reactor * | get_reactor () |
const ACE_Reactor * | get_reactor () const |
ACE_thread_t | get_reactor_owner () const |
ACE_Proactor * | get_proactor () |
const ACE_Proactor * | get_proactor () const |
void | wait_for_startup () const |
bool | is_shut_down () const |
ReactorInterceptor_rch | interceptor () const |
![]() | |
ACE_Task_Base (ACE_Thread_Manager *=0) | |
virtual | ~ACE_Task_Base (void) |
virtual int | module_closed (void) |
virtual int | put (ACE_Message_Block *, ACE_Time_Value *=0) |
virtual int | activate (long flags=THR_NEW_LWP|THR_JOINABLE|THR_INHERIT_SCHED, int n_threads=1, int force_active=0, long priority=ACE_DEFAULT_THREAD_PRIORITY, int grp_id=-1, ACE_Task_Base *task=0, ACE_hthread_t thread_handles[]=0, void *stack[]=0, size_t stack_size[]=0, ACE_thread_t thread_ids[]=0, const char *thr_name[]=0) |
virtual int | wait (void) |
virtual int | suspend (void) |
virtual int | resume (void) |
int | grp_id (void) const |
void | grp_id (int) |
ACE_Thread_Manager * | thr_mgr (void) const |
void | thr_mgr (ACE_Thread_Manager *) |
int | is_reader (void) const |
int | is_writer (void) const |
size_t | thr_count (void) const |
ACE_thread_t | last_thread (void) const |
![]() | |
ACE_Service_Object (ACE_Reactor *=0) | |
virtual | ~ACE_Service_Object (void) |
![]() | |
virtual | ~ACE_Event_Handler (void) |
virtual ACE_HANDLE | get_handle (void) const |
virtual void | set_handle (ACE_HANDLE) |
virtual int | priority (void) const |
virtual void | priority (int priority) |
virtual int | handle_input (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
virtual int | handle_output (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
virtual int | handle_exception (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
virtual int | handle_timeout (const ACE_Time_Value ¤t_time, const void *act=0) |
virtual int | handle_exit (ACE_Process *) |
virtual int | handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask) |
virtual int | handle_signal (int signum, siginfo_t *=0, ucontext_t *=0) |
virtual int | resume_handler (void) |
virtual int | handle_qos (ACE_HANDLE=ACE_INVALID_HANDLE) |
virtual int | handle_group_qos (ACE_HANDLE=ACE_INVALID_HANDLE) |
virtual ACE_Reactor_Timer_Interface * | reactor_timer_interface (void) const |
virtual Reference_Count | add_reference (void) |
virtual Reference_Count | remove_reference (void) |
Reference_Counting_Policy & | reference_counting_policy (void) |
![]() | |
ACE_Shared_Object (void) | |
virtual | ~ACE_Shared_Object (void) |
virtual int | init (int argc, ACE_TCHAR *argv[]) |
virtual int | fini (void) |
virtual int | info (ACE_TCHAR **info_string, size_t length=0) const |
![]() | |
virtual | ~RcObject () |
virtual void | _add_ref () |
virtual void | _remove_ref () |
long | ref_count () const |
WeakObject * | _get_weak_object () const |
Private Types | |
enum | State { STATE_UNINITIALIZED, STATE_OPENING, STATE_RUNNING, STATE_SHUT_DOWN } |
typedef ACE_SYNCH_MUTEX | LockType |
typedef ACE_Guard< LockType > | GuardType |
typedef ConditionVariable< LockType > | ConditionVariableType |
typedef ACE_Timer_Heap_T< ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall, ACE_SYNCH_RECURSIVE_MUTEX, MonotonicClock > | TimerQueueType |
Private Member Functions | |
virtual void | reactor (ACE_Reactor *reactor) |
virtual ACE_Reactor * | reactor () const |
void | cleanup () |
void | wait_for_startup_i () const |
Definition at line 34 of file ReactorTask.h.
|
private |
Definition at line 80 of file ReactorTask.h.
|
private |
Definition at line 79 of file ReactorTask.h.
|
private |
Definition at line 78 of file ReactorTask.h.
|
private |
Definition at line 83 of file ReactorTask.h.
|
private |
Enumerator | |
---|---|
STATE_UNINITIALIZED | |
STATE_OPENING | |
STATE_RUNNING | |
STATE_SHUT_DOWN |
Definition at line 85 of file ReactorTask.h.
|
explicit |
Definition at line 32 of file ReactorTask.cpp.
References NULL_thread.
|
virtual |
|
private |
Definition at line 61 of file ReactorTask.cpp.
References ACE_Event_Handler::DONT_CALL, ACE_Proactor_Impl::get_handle(), ACE_Proactor::implementation(), proactor_, reactor_, ACE_Reactor::remove_handler(), and timer_queue_.
Referenced by open_reactor_task(), and ~ReactorTask().
|
virtual |
Reimplemented from ACE_Task_Base.
Definition at line 178 of file ReactorTask.cpp.
References OpenDDS::DCPS::RcObject::_remove_ref().
ACE_INLINE ACE_Proactor * OpenDDS::DCPS::ReactorTask::get_proactor | ( | ) |
Definition at line 37 of file ReactorTask.inl.
References ACE_INLINE, lock_, and proactor_.
Referenced by OpenDDS::DCPS::MulticastDataLink::get_proactor().
ACE_INLINE const ACE_Proactor * OpenDDS::DCPS::ReactorTask::get_proactor | ( | ) | const |
ACE_INLINE ACE_Reactor * OpenDDS::DCPS::ReactorTask::get_reactor | ( | void | ) |
Definition at line 14 of file ReactorTask.inl.
References ACE_INLINE, lock_, and reactor_.
Referenced by OpenDDS::RTPS::Spdp::SpdpTransport::close(), OpenDDS::DCPS::RtpsUdpTransport::configure_i(), OpenDDS::DCPS::TcpTransport::configure_i(), OpenDDS::DCPS::Service_Participant::get_domain_participant_factory(), OpenDDS::DCPS::TcpReceiveStrategy::get_reactor(), OpenDDS::DCPS::UdpDataLink::get_reactor(), OpenDDS::DCPS::MulticastDataLink::get_reactor(), OpenDDS::DCPS::RtpsUdpDataLink::get_reactor(), OpenDDS::RTPS::Sedp::init(), OpenDDS::RTPS::Spdp::SpdpTransport::open(), OpenDDS::DCPS::Service_Participant::reactor(), OpenDDS::DCPS::TransportImpl::reactor(), OpenDDS::RTPS::Spdp::SpdpTransport::register_handlers(), OpenDDS::DCPS::TcpReceiveStrategy::reset(), OpenDDS::DCPS::TcpReceiveStrategy::start_i(), and OpenDDS::DCPS::Service_Participant::timer().
ACE_INLINE const ACE_Reactor * OpenDDS::DCPS::ReactorTask::get_reactor | ( | void | ) | const |
Definition at line 21 of file ReactorTask.inl.
References ACE_INLINE, lock_, reactor_, and wait_for_startup_i().
ACE_INLINE ACE_thread_t OpenDDS::DCPS::ReactorTask::get_reactor_owner | ( | ) | const |
Definition at line 29 of file ReactorTask.inl.
References ACE_INLINE, lock_, reactor_owner_, and wait_for_startup_i().
Referenced by OpenDDS::DCPS::Service_Participant::reactor_owner(), and OpenDDS::DCPS::TransportImpl::reactor_owner().
ACE_INLINE ReactorInterceptor_rch OpenDDS::DCPS::ReactorTask::interceptor | ( | ) | const |
Definition at line 65 of file ReactorTask.inl.
References interceptor_, lock_, OPENDDS_END_VERSIONED_NAMESPACE_DECL, and wait_for_startup_i().
Referenced by OpenDDS::DCPS::RtpsUdpTransport::configure_i(), OpenDDS::DCPS::Service_Participant::get_domain_participant_factory(), OpenDDS::DCPS::RtpsUdpDataLink::get_reactor_interceptor(), OpenDDS::RTPS::Sedp::init(), OpenDDS::DCPS::Service_Participant::interceptor(), OpenDDS::DCPS::RtpsUdpTransport::make_datalink(), OpenDDS::DCPS::ShmemDataLink::open(), OpenDDS::RTPS::Spdp::SpdpTransport::open(), OpenDDS::DCPS::RtpsUdpTransport::start_ice(), and OpenDDS::DCPS::RtpsUdpTransport::stop_ice().
ACE_INLINE bool OpenDDS::DCPS::ReactorTask::is_shut_down | ( | ) | const |
Definition at line 58 of file ReactorTask.inl.
References ACE_INLINE, lock_, state_, and STATE_SHUT_DOWN.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::reactor_is_shut_down().
|
inlinevirtual |
Reimplemented from ACE_Task_Base.
Definition at line 46 of file ReactorTask.h.
References close(), and OPENDDS_POOL_ALLOCATION_FWD.
int OpenDDS::DCPS::ReactorTask::open_reactor_task | ( | void * | , |
ThreadStatusManager * | thread_status_manager = 0 , |
||
const String & | name = "" |
||
) |
Definition at line 79 of file ReactorTask.cpp.
References ACE_ERROR_RETURN, ACE_Task_Base::activate(), cleanup(), condition_, ACE_WIN32_Proactor::get_handle(), LM_ERROR, lock_, name, name_, OpenDDS::DCPS::ConditionVariable< Mutex >::notify_all(), proactor_, reactor_, ACE_Reactor::register_handler(), state_, STATE_OPENING, STATE_RUNNING, thread_status_manager_, ACE_Reactor::timer_queue(), timer_queue_, and OpenDDS::DCPS::ConditionVariable< Mutex >::wait().
Referenced by OpenDDS::DCPS::TransportImpl::create_reactor_task(), and OpenDDS::DCPS::Service_Participant::get_domain_participant_factory().
|
privatevirtual |
Reimplemented from ACE_Event_Handler.
Definition at line 245 of file ReactorTask.cpp.
References ACE_Event_Handler::reactor().
|
privatevirtual |
Reimplemented from ACE_Event_Handler.
Definition at line 250 of file ReactorTask.cpp.
References OPENDDS_END_VERSIONED_NAMESPACE_DECL, and ACE_Event_Handler::reactor().
Referenced by stop().
void OpenDDS::DCPS::ReactorTask::stop | ( | void | ) |
Definition at line 196 of file ReactorTask.cpp.
References ACE_Event_Handler::DONT_CALL, ACE_Reactor::end_reactor_event_loop(), ACE_Proactor_Impl::get_handle(), ACE_Proactor::implementation(), lock_, OPENDDS_ASSERT, proactor_, reactor(), reactor_, ACE_Reactor::remove_handler(), state_, STATE_SHUT_DOWN, STATE_UNINITIALIZED, ACE_Task_Base::thr_mgr(), thread_status_manager_, and ACE_Task_Base::wait().
Referenced by OpenDDS::DCPS::Service_Participant::shutdown(), and OpenDDS::DCPS::TransportImpl::shutdown().
|
virtual |
Reimplemented from ACE_Task_Base.
Definition at line 129 of file ReactorTask.cpp.
References OpenDDS::DCPS::RcObject::_add_ref(), ACE_ERROR, condition_, ACE_Thread_Manager::instance(), interceptor_, LM_ERROR, lock_, name_, OpenDDS::DCPS::ConditionVariable< Mutex >::notify_all(), ACE_Reactor::owner(), reactor_, reactor_owner_, ACE_Reactor::run_reactor_event_loop(), SIG_SETMASK, ACE_OS::sigfillset(), state_, STATE_RUNNING, ACE_Thread_Manager::thr_self(), ACE_OS::thr_sigsetmask(), OpenDDS::DCPS::ThreadStatusManager::thread_status_interval(), thread_status_manager_, and OpenDDS::DCPS::ThreadStatusManager::update_thread_status().
ACE_INLINE void OpenDDS::DCPS::ReactorTask::wait_for_startup | ( | ) | const |
Definition at line 51 of file ReactorTask.inl.
References ACE_INLINE, lock_, and wait_for_startup_i().
|
private |
Definition at line 52 of file ReactorTask.cpp.
References condition_, state_, STATE_OPENING, STATE_UNINITIALIZED, TheServiceParticipant, thread_status_manager_, and OpenDDS::DCPS::ConditionVariable< Mutex >::wait().
Referenced by get_reactor(), get_reactor_owner(), interceptor(), and wait_for_startup().
|
mutableprivate |
Definition at line 103 of file ReactorTask.h.
Referenced by open_reactor_task(), svc(), and wait_for_startup_i().
|
private |
Definition at line 119 of file ReactorTask.h.
Referenced by interceptor(), and svc().
|
mutableprivate |
Definition at line 102 of file ReactorTask.h.
Referenced by get_proactor(), get_reactor(), get_reactor_owner(), interceptor(), is_shut_down(), open_reactor_task(), stop(), svc(), and wait_for_startup().
|
private |
Definition at line 117 of file ReactorTask.h.
Referenced by open_reactor_task(), and svc().
|
private |
Definition at line 107 of file ReactorTask.h.
Referenced by cleanup(), get_proactor(), open_reactor_task(), and stop().
|
private |
Definition at line 105 of file ReactorTask.h.
Referenced by cleanup(), get_reactor(), open_reactor_task(), stop(), and svc().
|
private |
Definition at line 106 of file ReactorTask.h.
Referenced by get_reactor_owner(), and svc().
|
private |
Definition at line 104 of file ReactorTask.h.
Referenced by is_shut_down(), open_reactor_task(), stop(), svc(), and wait_for_startup_i().
|
private |
Definition at line 120 of file ReactorTask.h.
Referenced by open_reactor_task(), stop(), svc(), and wait_for_startup_i().
|
private |
Definition at line 114 of file ReactorTask.h.
Referenced by cleanup(), and open_reactor_task().