00001 /* 00002 * 00003 * 00004 * Distributed under the OpenDDS License. 00005 * See: http://www.opendds.org/license.html 00006 */ 00007 00008 #ifndef OPENDDS_DCPS_GUARDCONDITION_H 00009 #define OPENDDS_DCPS_GUARDCONDITION_H 00010 00011 #include "dds/DdsDcpsInfrastructureC.h" 00012 00013 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00014 #pragma once 00015 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00016 00017 #include "dds/DCPS/LocalObject.h" 00018 #include "dds/DCPS/ConditionImpl.h" 00019 00020 namespace DDS { 00021 00022 class GuardCondition; 00023 typedef GuardCondition* GuardCondition_ptr; 00024 00025 class OpenDDS_Dcps_Export GuardCondition 00026 : public virtual OpenDDS::DCPS::LocalObject<DDS::GuardConditionInterf> 00027 , public virtual OpenDDS::DCPS::ConditionImpl { 00028 public: 00029 GuardCondition() 00030 : trigger_value_(false) 00031 {} 00032 00033 virtual ~GuardCondition() {} 00034 00035 CORBA::Boolean get_trigger_value(); 00036 00037 ReturnCode_t set_trigger_value(CORBA::Boolean value); 00038 00039 static GuardCondition_ptr _duplicate(GuardCondition_ptr obj); 00040 00041 private: 00042 CORBA::Boolean trigger_value_; 00043 }; 00044 00045 } // namespace DDS 00046 00047 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00048 00049 namespace TAO { 00050 00051 template<> 00052 struct OpenDDS_Dcps_Export Objref_Traits<DDS::GuardCondition> { 00053 static DDS::GuardCondition_ptr duplicate(DDS::GuardCondition_ptr p); 00054 static void release(DDS::GuardCondition_ptr p); 00055 static DDS::GuardCondition_ptr nil(); 00056 static CORBA::Boolean marshal(const DDS::GuardCondition_ptr p, 00057 TAO_OutputCDR & cdr); 00058 }; 00059 00060 } // namespace TAO 00061 00062 TAO_END_VERSIONED_NAMESPACE_DECL 00063 00064 namespace DDS { 00065 00066 typedef TAO_Objref_Var_T<GuardCondition> GuardCondition_var; 00067 00068 } // namespace DDS 00069 00070 #endif