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 namespace OpenDDS { 00019 namespace DCPS { 00020 00021 class DataReaderImpl; 00022 00023 class ReadConditionImpl 00024 : public virtual OpenDDS::DCPS::LocalObject<DDS::ReadCondition> 00025 , public virtual ConditionImpl { 00026 public: 00027 ReadConditionImpl(DataReaderImpl* dr, DDS::SampleStateMask sample_states, 00028 DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) 00029 : parent_(dr) 00030 , sample_states_(sample_states) 00031 , view_states_(view_states) 00032 , instance_states_(instance_states) {} 00033 00034 virtual ~ReadConditionImpl() {} 00035 00036 CORBA::Boolean get_trigger_value(); 00037 00038 DDS::SampleStateMask get_sample_state_mask(); 00039 00040 DDS::ViewStateMask get_view_state_mask(); 00041 00042 DDS::InstanceStateMask get_instance_state_mask(); 00043 00044 DDS::DataReader_ptr get_datareader(); 00045 00046 protected: 00047 DataReaderImpl* parent_; 00048 DDS::SampleStateMask sample_states_; 00049 DDS::ViewStateMask view_states_; 00050 DDS::InstanceStateMask instance_states_; 00051 }; 00052 00053 } // namespace DCPS 00054 } // namespace OpenDDS 00055 00056 #endif