00001 /* 00002 * 00003 * 00004 * Distributed under the OpenDDS License. 00005 * See: http://www.opendds.org/license.html 00006 */ 00007 00008 #ifndef OPENDDS_DCPS_THREADSYNCHRESOURCE_H 00009 #define OPENDDS_DCPS_THREADSYNCHRESOURCE_H 00010 00011 #include "dds/DCPS/dcps_export.h" 00012 #include "ace/Time_Value.h" 00013 00014 OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL 00015 00016 namespace OpenDDS { 00017 namespace DCPS { 00018 00019 class OpenDDS_Dcps_Export ThreadSynchResource { 00020 public: 00021 00022 virtual ~ThreadSynchResource(); 00023 00024 virtual int wait_to_unclog(); 00025 void set_handle(ACE_HANDLE handle); 00026 00027 protected: 00028 00029 virtual void notify_lost_on_backpressure_timeout() = 0; 00030 00031 ThreadSynchResource(); 00032 ACE_HANDLE handle_; 00033 ACE_Time_Value* timeout_; 00034 }; 00035 00036 } // namespace DCPS 00037 } // namespace OpenDDS 00038 00039 OPENDDS_END_VERSIONED_NAMESPACE_DECL 00040 00041 #if defined (__ACE_INLINE__) 00042 #include "ThreadSynchResource.inl" 00043 #endif /* __ACE_INLINE__ */ 00044 00045 #endif /* OPENDDS_DCPS_THREADSYNCHRESOURCE_H */