00001 /* 00002 * 00003 * 00004 * Distributed under the OpenDDS License. 00005 * See: http://www.opendds.org/license.html 00006 */ 00007 00008 #ifndef OPENDDS_DCPS_READCONDITIONIMPL_H 00009 #define OPENDDS_DCPS_READCONDITIONIMPL_H 00010 00011 #include "dds/DdsDcpsSubscriptionC.h" 00012 #include "dds/DCPS/ConditionImpl.h" 00013 00014 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00015 #pragma once 00016 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00017 00018 OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL 00019 00020 namespace OpenDDS { 00021 namespace DCPS { 00022 00023 class DataReaderImpl; 00024 00025 class ReadConditionImpl 00026 : public virtual OpenDDS::DCPS::LocalObject<DDS::ReadCondition> 00027 , public virtual ConditionImpl { 00028 public: 00029 ReadConditionImpl(DataReaderImpl* dr, DDS::SampleStateMask sample_states, 00030 DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) 00031 : parent_(dr) 00032 , sample_states_(sample_states) 00033 , view_states_(view_states) 00034 , instance_states_(instance_states) {} 00035 00036 virtual ~ReadConditionImpl() {} 00037 00038 CORBA::Boolean get_trigger_value(); 00039 00040 DDS::SampleStateMask get_sample_state_mask(); 00041 00042 DDS::ViewStateMask get_view_state_mask(); 00043 00044 DDS::InstanceStateMask get_instance_state_mask(); 00045 00046 DDS::DataReader_ptr get_datareader(); 00047 00048 protected: 00049 DataReaderImpl* parent_; 00050 DDS::SampleStateMask sample_states_; 00051 DDS::ViewStateMask view_states_; 00052 DDS::InstanceStateMask instance_states_; 00053 }; 00054 00055 } // namespace DCPS 00056 } // namespace OpenDDS 00057 00058 OPENDDS_END_VERSIONED_NAMESPACE_DECL 00059 00060 #endif