Line data Source code
1 : /* 2 : * 3 : * 4 : * Distributed under the OpenDDS License. 5 : * See: http://www.opendds.org/license.html 6 : */ 7 : 8 : #ifndef OPENDDS_DCPS_STATUSCONDITIONIMPL_H 9 : #define OPENDDS_DCPS_STATUSCONDITIONIMPL_H 10 : 11 : #include "dds/DdsDcpsInfrastructureC.h" 12 : #include "ConditionImpl.h" 13 : 14 : #if !defined (ACE_LACKS_PRAGMA_ONCE) 15 : #pragma once 16 : #endif /* ACE_LACKS_PRAGMA_ONCE */ 17 : 18 : OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL 19 : 20 : namespace OpenDDS { 21 : namespace DCPS { 22 : 23 : class EntityImpl; 24 : 25 : class StatusConditionImpl 26 : : public virtual OpenDDS::DCPS::LocalObject<DDS::StatusCondition> 27 : , public virtual ConditionImpl { 28 : public: 29 12 : explicit StatusConditionImpl(EntityImpl* e) 30 24 : : parent_(e) 31 12 : , mask_(::OpenDDS::DCPS::DEFAULT_STATUS_MASK) 32 12 : {} 33 : 34 24 : virtual ~StatusConditionImpl() {} 35 : 36 : CORBA::Boolean get_trigger_value(); 37 : 38 : virtual DDS::StatusMask get_enabled_statuses(); 39 : 40 : virtual DDS::ReturnCode_t set_enabled_statuses(DDS::StatusMask mask); 41 : 42 : virtual DDS::Entity_ptr get_entity(); 43 : 44 : private: 45 : /// Deliberately not a _var, don't hold a reference to the parent since 46 : /// it is guaranteed to outlive us and we don't want a cyclical reference 47 : EntityImpl* parent_; 48 : DDS::StatusMask mask_; 49 : }; 50 : 51 : } // namespace DCPS 52 : } // namespace OpenDDS 53 : 54 : OPENDDS_END_VERSIONED_NAMESPACE_DECL 55 : 56 : #endif