Line data Source code
1 : /* 2 : * 3 : * 4 : * Distributed under the OpenDDS License. 5 : * See: http://www.opendds.org/license.html 6 : */ 7 : 8 : #include "DCPS/DdsDcps_pch.h" //Only the _pch include should start with DCPS/ 9 : #include "StatusConditionImpl.h" 10 : #include "EntityImpl.h" 11 : 12 : OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL 13 : 14 : namespace OpenDDS { 15 : namespace DCPS { 16 : 17 0 : CORBA::Boolean StatusConditionImpl::get_trigger_value() 18 : { 19 0 : ACE_GUARD_RETURN(ACE_Recursive_Thread_Mutex, g, lock_, false); 20 : 21 0 : if (DCPS_debug_level > 9) { 22 0 : ACE_DEBUG((LM_DEBUG, 23 : ACE_TEXT("(%P|%t) StatusConditionImpl::get_trigger_value() - ") 24 : ACE_TEXT("mask==0x%x, changes==0x%x.\n"), 25 : this->mask_, 26 : this->parent_->get_status_changes())); 27 : } 28 : 29 0 : return (parent_->get_status_changes() & mask_) > 0; 30 0 : } 31 : 32 0 : DDS::StatusMask StatusConditionImpl::get_enabled_statuses() 33 : { 34 0 : ACE_GUARD_RETURN(ACE_Recursive_Thread_Mutex, g, lock_, 0); 35 0 : return mask_; 36 0 : } 37 : 38 : DDS::ReturnCode_t 39 0 : StatusConditionImpl::set_enabled_statuses(DDS::StatusMask mask) 40 : { 41 : { 42 0 : ACE_GUARD_RETURN(ACE_Recursive_Thread_Mutex, g, lock_, 43 : DDS::RETCODE_OUT_OF_RESOURCES); 44 0 : mask_ = mask; 45 0 : } 46 0 : signal_all(); 47 0 : return DDS::RETCODE_OK; 48 : } 49 : 50 0 : DDS::Entity_ptr StatusConditionImpl::get_entity() 51 : { 52 0 : return DDS::Entity::_duplicate(parent_); 53 : } 54 : 55 : } // namespace DCPS 56 : } // namespace OpenDDS 57 : 58 : OPENDDS_END_VERSIONED_NAMESPACE_DECL