OpenDDS  Snapshot(2023/04/07-19:43)
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
OpenDDS::DCPS::EndHistoricSamplesMissedSweeper Class Reference

#include <DataReaderImpl.h>

Inheritance diagram for OpenDDS::DCPS::EndHistoricSamplesMissedSweeper:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::EndHistoricSamplesMissedSweeper:
Collaboration graph
[legend]

Classes

class  CancelCommand
 
class  CommandBase
 
class  ScheduleCommand
 

Public Member Functions

 EndHistoricSamplesMissedSweeper (ACE_Reactor *reactor, ACE_thread_t owner, DataReaderImpl *reader)
 
void schedule_timer (WriterInfo_rch &info)
 
void cancel_timer (WriterInfo_rch &info)
 
int handle_timeout (const ACE_Time_Value &current_time, const void *arg)
 
virtual bool reactor_is_shut_down () const
 
- Public Member Functions inherited from OpenDDS::DCPS::ReactorInterceptor
CommandPtr execute_or_enqueue (CommandPtr command)
 
virtual void reactor (ACE_Reactor *reactor)
 
virtual ACE_Reactorreactor () const
 
- Public Member Functions inherited from OpenDDS::DCPS::RcEventHandler
 RcEventHandler ()
 
ACE_Event_Handler::Reference_Count add_reference ()
 
ACE_Event_Handler::Reference_Count remove_reference ()
 
- Public Member Functions inherited from ACE_Event_Handler
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_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_Interfacereactor_timer_interface (void) const
 
Reference_Counting_Policyreference_counting_policy (void)
 
- Public Member Functions inherited from OpenDDS::DCPS::RcObject
virtual ~RcObject ()
 
virtual void _add_ref ()
 
virtual void _remove_ref ()
 
long ref_count () const
 
WeakObject_get_weak_object () const
 

Private Member Functions

 ~EndHistoricSamplesMissedSweeper ()
 
 OPENDDS_SET (WriterInfo_rch) info_set_
 

Private Attributes

WeakRcHandle< DataReaderImplreader_
 

Additional Inherited Members

- Public Types inherited from OpenDDS::DCPS::ReactorInterceptor
typedef RcHandle< CommandCommandPtr
 
- Public Types inherited from ACE_Event_Handler
typedef long Reference_Count
 
- Static Public Member Functions inherited from ACE_Event_Handler
static ACE_THR_FUNC_RETURN read_adapter (void *event_handler)
 
static int register_stdin_handler (ACE_Event_Handler *eh, ACE_Reactor *reactor, ACE_Thread_Manager *thr_mgr, int flags=THR_DETACHED)
 
static int remove_stdin_handler (ACE_Reactor *reactor, ACE_Thread_Manager *thr_mgr)
 
- Public Attributes inherited from ACE_Event_Handler
 LO_PRIORITY
 
 HI_PRIORITY
 
 NULL_MASK
 
 READ_MASK
 
 WRITE_MASK
 
 EXCEPT_MASK
 
 ACCEPT_MASK
 
 CONNECT_MASK
 
 TIMER_MASK
 
 QOS_MASK
 
 GROUP_QOS_MASK
 
 SIGNAL_MASK
 
 ALL_EVENTS_MASK
 
 RWE_MASK
 
 DONT_CALL
 
 ACE_EVENT_HANDLER_NOT_RESUMED
 
 ACE_REACTOR_RESUMES_HANDLER
 
 ACE_APPLICATION_RESUMES_HANDLER
 
- Protected Types inherited from OpenDDS::DCPS::ReactorInterceptor
enum  ReactorState { RS_NONE, RS_NOTIFIED, RS_PROCESSING }
 
- Protected Types inherited from ACE_Event_Handler
typedef ACE_Atomic_Op< ACE_SYNCH_MUTEX, Reference_CountAtomic_Reference_Count
 
- Protected Member Functions inherited from OpenDDS::DCPS::ReactorInterceptor
 ReactorInterceptor (ACE_Reactor *reactor, ACE_thread_t owner)
 
virtual ~ReactorInterceptor ()
 
int handle_exception (ACE_HANDLE)
 
void process_command_queue_i (ACE_Guard< ACE_Thread_Mutex > &guard)
 
typedef OPENDDS_VECTOR (CommandPtr) Queue
 
- Protected Member Functions inherited from ACE_Event_Handler
 ACE_Event_Handler (ACE_Reactor *=0, int priority=ACE_Event_Handler::LO_PRIORITY)
 
- Protected Member Functions inherited from OpenDDS::DCPS::RcObject
 RcObject ()
 
- Protected Attributes inherited from OpenDDS::DCPS::ReactorInterceptor
ACE_thread_t owner_
 
ACE_Thread_Mutex mutex_
 
Queue command_queue_
 
ReactorState state_
 
- Protected Attributes inherited from ACE_Event_Handler
Atomic_Reference_Count reference_count_
 

Detailed Description

Definition at line 126 of file DataReaderImpl.h.

Constructor & Destructor Documentation

◆ EndHistoricSamplesMissedSweeper()

OpenDDS::DCPS::EndHistoricSamplesMissedSweeper::EndHistoricSamplesMissedSweeper ( ACE_Reactor reactor,
ACE_thread_t  owner,
DataReaderImpl reader 
)

Definition at line 3411 of file DataReaderImpl.cpp.

3414  : ReactorInterceptor (reactor, owner)
3415  , reader_(*reader)
3416 { }
ReactorInterceptor(ACE_Reactor *reactor, ACE_thread_t owner)
WeakRcHandle< DataReaderImpl > reader_

◆ ~EndHistoricSamplesMissedSweeper()

OpenDDS::DCPS::EndHistoricSamplesMissedSweeper::~EndHistoricSamplesMissedSweeper ( )
private

Definition at line 3418 of file DataReaderImpl.cpp.

3419 { }

Member Function Documentation

◆ cancel_timer()

void OpenDDS::DCPS::EndHistoricSamplesMissedSweeper::cancel_timer ( WriterInfo_rch info)

Definition at line 3427 of file DataReaderImpl.cpp.

References OpenDDS::DCPS::ReactorInterceptor::execute_or_enqueue(), OpenDDS::DCPS::ref(), and OpenDDS::DCPS::WriterInfo::waiting_for_end_historic_samples().

Referenced by OpenDDS::DCPS::WriterInfo::check_end_historic_samples().

3428 {
3429  info->waiting_for_end_historic_samples(false);
3430  execute_or_enqueue(make_rch<CancelCommand>(this, ref(info)));
3431 }
reference_wrapper< T > ref(T &r)
Definition: RcHandle_T.h:237
CommandPtr execute_or_enqueue(CommandPtr command)

◆ handle_timeout()

int OpenDDS::DCPS::EndHistoricSamplesMissedSweeper::handle_timeout ( const ACE_Time_Value current_time,
const void *  arg 
)
virtual

Reimplemented from ACE_Event_Handler.

Definition at line 3433 of file DataReaderImpl.cpp.

References ACE_DEBUG, OpenDDS::DCPS::LogGuid::c_str(), OpenDDS::DCPS::DCPS_debug_level, LM_INFO, OpenDDS::DCPS::WeakRcHandle< T >::lock(), OpenDDS::DCPS::ReactorInterceptor::mutex_, OpenDDS::DCPS::rchandle_from(), reader_, and TheServiceParticipant.

3436 {
3437  ThreadStatusManager::Event ev(TheServiceParticipant->get_thread_status_manager());
3438 
3439  WriterInfo* const info =
3440  const_cast<WriterInfo*>(reinterpret_cast<const WriterInfo*>(arg));
3441  const GUID_t pub_id = info->writer_id();
3442 
3443  {
3444  ACE_Guard<ACE_Thread_Mutex> guard(this->mutex_);
3445  info_set_.erase(rchandle_from(info));
3446  }
3447 
3448  RcHandle<DataReaderImpl> reader = reader_.lock();
3449  if (!reader)
3450  return 0;
3451 
3452  if (DCPS_debug_level >= 1) {
3453  ACE_DEBUG((LM_INFO, "(%P|%t) EndHistoricSamplesMissedSweeper::handle_timeout reader: %C waiting on writer: %C\n",
3454  LogGuid(reader->get_guid()).c_str(),
3455  LogGuid(pub_id).c_str()));
3456  }
3457 
3458  reader->resume_sample_processing(pub_id);
3459  return 0;
3460 }
#define ACE_DEBUG(X)
RcHandle< T > lock() const
Definition: RcObject.h:188
WeakRcHandle< DataReaderImpl > reader_
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30
RcHandle< T > rchandle_from(T *pointer)
Definition: RcHandle_T.h:310
#define TheServiceParticipant

◆ OPENDDS_SET()

OpenDDS::DCPS::EndHistoricSamplesMissedSweeper::OPENDDS_SET ( WriterInfo_rch  )
private

◆ reactor_is_shut_down()

virtual bool OpenDDS::DCPS::EndHistoricSamplesMissedSweeper::reactor_is_shut_down ( ) const
inlinevirtual

Implements OpenDDS::DCPS::ReactorInterceptor.

Definition at line 138 of file DataReaderImpl.h.

References TheServiceParticipant.

139  {
140  return TheServiceParticipant->is_shut_down();
141  }
#define TheServiceParticipant

◆ schedule_timer()

void OpenDDS::DCPS::EndHistoricSamplesMissedSweeper::schedule_timer ( WriterInfo_rch info)

Definition at line 3421 of file DataReaderImpl.cpp.

References OpenDDS::DCPS::ReactorInterceptor::execute_or_enqueue(), OpenDDS::DCPS::ref(), and OpenDDS::DCPS::WriterInfo::waiting_for_end_historic_samples().

3422 {
3423  info->waiting_for_end_historic_samples(true);
3424  execute_or_enqueue(make_rch<ScheduleCommand>(this, ref(info)));
3425 }
reference_wrapper< T > ref(T &r)
Definition: RcHandle_T.h:237
CommandPtr execute_or_enqueue(CommandPtr command)

Member Data Documentation

◆ reader_

WeakRcHandle<DataReaderImpl> OpenDDS::DCPS::EndHistoricSamplesMissedSweeper::reader_
private

Definition at line 146 of file DataReaderImpl.h.

Referenced by handle_timeout().


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