OpenDDS::DCPS::ConditionImpl Class Reference

#include <ConditionImpl.h>

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

List of all members.

Public Member Functions

DDS::ReturnCode_t attach_to_ws (DDS::WaitSet_ptr ws)
DDS::ReturnCode_t detach_from_ws (DDS::WaitSet_ptr ws)
void signal_all ()

Protected Member Functions

 ConditionImpl ()
virtual ~ConditionImpl ()
typedef OPENDDS_SET (OpenDDS::DCPS::WeakRcHandle< DDS::WaitSet >) WaitSetSet

Protected Attributes

WaitSetSet waitsets_
ACE_Recursive_Thread_Mutex lock_

Detailed Description

Definition at line 27 of file ConditionImpl.h.


Constructor & Destructor Documentation

OpenDDS::DCPS::ConditionImpl::ConditionImpl (  )  [inline, protected]

Definition at line 35 of file ConditionImpl.h.

00035 {}

virtual OpenDDS::DCPS::ConditionImpl::~ConditionImpl (  )  [inline, protected, virtual]

Definition at line 36 of file ConditionImpl.h.

00036 {}


Member Function Documentation

DDS::ReturnCode_t OpenDDS::DCPS::ConditionImpl::attach_to_ws ( DDS::WaitSet_ptr  ws  ) 
DDS::ReturnCode_t OpenDDS::DCPS::ConditionImpl::detach_from_ws ( DDS::WaitSet_ptr  ws  ) 
typedef OpenDDS::DCPS::ConditionImpl::OPENDDS_SET ( OpenDDS::DCPS::WeakRcHandle< DDS::WaitSet  )  [protected]
void OpenDDS::DCPS::ConditionImpl::signal_all (  ) 

Definition at line 16 of file ConditionImpl.cpp.

References ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, DDS::Condition::get_trigger_value(), LM_DEBUG, lock_, and waitsets_.

Referenced by OpenDDS::DCPS::DataReaderImpl::notify_read_conditions(), OpenDDS::DCPS::EntityImpl::notify_status_condition(), OpenDDS::DCPS::StatusConditionImpl::set_enabled_statuses(), and DDS::GuardCondition::set_trigger_value().

00017 {
00018   if (DCPS_debug_level > 9) {
00019     ACE_DEBUG((LM_DEBUG,
00020                ACE_TEXT("(%P|%t) ConditionImpl::signal_all()\n")));
00021   }
00022 
00023   if (!get_trigger_value()) return;
00024 
00025   WaitSetSet local_ws;
00026   {
00027     ACE_GUARD(ACE_Recursive_Thread_Mutex, g, lock_);
00028     local_ws = waitsets_;
00029   }
00030 
00031   if (DCPS_debug_level > 9) {
00032     ACE_DEBUG((LM_DEBUG,
00033                ACE_TEXT("(%P|%t) ConditionImpl::signal_all() - ")
00034                ACE_TEXT("number of sets: %d, locally: %d.\n"),
00035                this->waitsets_.size(),
00036                local_ws.size()));
00037   }
00038 
00039   for (WaitSetSet::iterator it = local_ws.begin(), end = local_ws.end();
00040        it != end; ++it) {
00041     RcHandle<DDS::WaitSet> ws ((*it).lock());
00042     if (ws)
00043       ws->signal(this);
00044   }
00045 }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Definition at line 39 of file ConditionImpl.h.

Referenced by attach_to_ws(), detach_from_ws(), and signal_all().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1