OpenDDS  Snapshot(2023/03/10-19:29)
Public Member Functions | Public Attributes | List of all members
TAO_DDS_DCPSInfo_i::BIT_Cleanup_Handler Struct Reference
Inheritance diagram for TAO_DDS_DCPSInfo_i::BIT_Cleanup_Handler:
Inheritance graph
[legend]
Collaboration diagram for TAO_DDS_DCPSInfo_i::BIT_Cleanup_Handler:
Collaboration graph
[legend]

Public Member Functions

 BIT_Cleanup_Handler (TAO_DDS_DCPSInfo_i *parent, DDS::DomainId_t domain)
 
int handle_exception (ACE_HANDLE fd)
 
- 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_timeout (const ACE_Time_Value &current_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 void reactor (ACE_Reactor *reactor)
 
virtual ACE_Reactorreactor (void) const
 
virtual ACE_Reactor_Timer_Interfacereactor_timer_interface (void) const
 
virtual Reference_Count add_reference (void)
 
virtual Reference_Count remove_reference (void)
 
Reference_Counting_Policyreference_counting_policy (void)
 

Public Attributes

PortableServer::Servant_var< TAO_DDS_DCPSInfo_iparent_
 
DDS::DomainId_t domain_
 
OpenDDS::DCPS::ConditionVariable< ACE_Recursive_Thread_Mutexcv_
 
bool done_
 
- 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
 

Additional Inherited Members

- 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)
 
- Protected Types inherited from ACE_Event_Handler
typedef ACE_Atomic_Op< ACE_SYNCH_MUTEX, Reference_CountAtomic_Reference_Count
 
- Protected Member Functions inherited from ACE_Event_Handler
 ACE_Event_Handler (ACE_Reactor *=0, int priority=ACE_Event_Handler::LO_PRIORITY)
 
- Protected Attributes inherited from ACE_Event_Handler
Atomic_Reference_Count reference_count_
 

Detailed Description

Definition at line 433 of file DCPSInfo_i.h.

Constructor & Destructor Documentation

◆ BIT_Cleanup_Handler()

TAO_DDS_DCPSInfo_i::BIT_Cleanup_Handler::BIT_Cleanup_Handler ( TAO_DDS_DCPSInfo_i parent,
DDS::DomainId_t  domain 
)
inline

Definition at line 435 of file DCPSInfo_i.h.

References OpenDDS::DCPS::ENABLED.

436  : parent_(parent), domain_(domain), cv_(parent_->lock_), done_(false)
437  {
439  parent->_add_ref();
440  }
DCPS_IR_Domain * domain(DDS::DomainId_t domain)
Convert a domain Id into a reference to a DCPS_IR_Domain object.
Reference_Counting_Policy & reference_counting_policy(void)
ACE_Recursive_Thread_Mutex lock_
Definition: DCPSInfo_i.h:427
OpenDDS::DCPS::ConditionVariable< ACE_Recursive_Thread_Mutex > cv_
Definition: DCPSInfo_i.h:446
PortableServer::Servant_var< TAO_DDS_DCPSInfo_i > parent_
Definition: DCPSInfo_i.h:444

Member Function Documentation

◆ handle_exception()

int TAO_DDS_DCPSInfo_i::BIT_Cleanup_Handler::handle_exception ( ACE_HANDLE  fd)
virtual

Reimplemented from ACE_Event_Handler.

Definition at line 1535 of file DCPSInfo_i.cpp.

References ACE_GUARD_RETURN, and ACE_Recursive_Thread_Mutex::lock_.

1536 {
1538 
1539  const DCPS_IR_Domain_Map::iterator where = parent_->domains_.find(domain_);
1540 
1541  if (where != parent_->domains_.end() && where->second->participants().size() == 1) {
1542  where->second->cleanup_built_in_topics();
1543  }
1544 
1545  done_ = true;
1546  cv_.notify_all();
1547 
1548  return 0;
1549 }
ACE_Recursive_Thread_Mutex lock_
Definition: DCPSInfo_i.h:427
#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN)
OpenDDS::DCPS::ConditionVariable< ACE_Recursive_Thread_Mutex > cv_
Definition: DCPSInfo_i.h:446
PortableServer::Servant_var< TAO_DDS_DCPSInfo_i > parent_
Definition: DCPSInfo_i.h:444
bool notify_all()
Unblock all of the threads waiting on this condition.
DCPS_IR_Domain_Map domains_
Definition: DCPSInfo_i.h:414

Member Data Documentation

◆ cv_

OpenDDS::DCPS::ConditionVariable<ACE_Recursive_Thread_Mutex> TAO_DDS_DCPSInfo_i::BIT_Cleanup_Handler::cv_

Definition at line 446 of file DCPSInfo_i.h.

Referenced by TAO_DDS_DCPSInfo_i::remove_domain_participant().

◆ domain_

DDS::DomainId_t TAO_DDS_DCPSInfo_i::BIT_Cleanup_Handler::domain_

Definition at line 445 of file DCPSInfo_i.h.

◆ done_

bool TAO_DDS_DCPSInfo_i::BIT_Cleanup_Handler::done_

Definition at line 447 of file DCPSInfo_i.h.

Referenced by TAO_DDS_DCPSInfo_i::remove_domain_participant().

◆ parent_

PortableServer::Servant_var<TAO_DDS_DCPSInfo_i> TAO_DDS_DCPSInfo_i::BIT_Cleanup_Handler::parent_

Definition at line 444 of file DCPSInfo_i.h.


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