From 3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c Mon Sep 17 00:00:00 2001 From: "William R. Otte" Date: Mon, 24 Jul 2006 15:50:21 +0000 Subject: Repo restructuring --- TAO/tao/Utils/Synch_Refcountable.h | 63 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 TAO/tao/Utils/Synch_Refcountable.h (limited to 'TAO/tao/Utils/Synch_Refcountable.h') diff --git a/TAO/tao/Utils/Synch_Refcountable.h b/TAO/tao/Utils/Synch_Refcountable.h new file mode 100644 index 00000000000..3e77a70c4c3 --- /dev/null +++ b/TAO/tao/Utils/Synch_Refcountable.h @@ -0,0 +1,63 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Synch_Refcountable.h + * + * $Id$ + * + * Definition for a synchronised refcountable interface. + * + * @author Fred Kuhns + */ +//============================================================================= + +#ifndef TAO_SYNCH_REFCOUNTABLE_H +#define TAO_SYNCH_REFCOUNTABLE_H + +#include /**/ "ace/pre.h" +#include "ace/Refcountable.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/Utils/utils_export.h" +#include "tao/Versioned_Namespace.h" + +ACE_BEGIN_VERSIONED_NAMESPACE_DECL +class ACE_Lock; +ACE_END_VERSIONED_NAMESPACE_DECL + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +/** + * @class TAO_Synch_Refcountable + * + * @brief Definition for a synchronised refcountable interface. + */ +class TAO_UTILS_Export TAO_Synch_Refcountable : private ACE_Refcountable +{ +public: + virtual ~TAO_Synch_Refcountable (void); + + int increment (void); + int decrement (void); + + int refcount (void) const; + +protected: + TAO_Synch_Refcountable (ACE_Lock *lock, int refcount); + + ACE_Lock *refcount_lock_; +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#if defined (__ACE_INLINE__) +# include "tao/Utils/Synch_Refcountable.inl" +#endif /* __ACE_INLINE__ */ + +#include /**/ "ace/post.h" + +#endif /*TAO_SYNCH_REFCOUNTABLE*/ -- cgit v1.2.1