X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2Fintrusive_refcount.hh;h=d3b980f35ffdbe8ac60f8b9a0e31270900fdac45;hb=412024ed31a4ab4eaea7a4165a434f8efebee325;hp=16b45f2fc2197a2fb6acd1b3a49fe3fa924dc8a6;hpb=f73fa16ed5abdce272ac77f8b8b9ef2b9922c266;p=senf.git diff --git a/Utils/intrusive_refcount.hh b/Utils/intrusive_refcount.hh index 16b45f2..d3b980f 100644 --- a/Utils/intrusive_refcount.hh +++ b/Utils/intrusive_refcount.hh @@ -1,8 +1,8 @@ // $Id$ // // Copyright (C) 2006 -// Fraunhofer Institute for Open Communication Systems (FOKUS) -// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -23,8 +23,8 @@ /** \file \brief intrusive_refcount public header */ -#ifndef HH_intrusive_refcount_ -#define HH_intrusive_refcount_ 1 +#ifndef HH_SENF_Utils_intrusive_refcount_ +#define HH_SENF_Utils_intrusive_refcount_ 1 // Custom includes #include @@ -61,6 +61,13 @@ namespace senf { private: refcount_t refcount_; + template void intrusive_ptr_add_ref(); + template void intrusive_ptr_release(); + + template + friend void senf::intrusive_ptr_add_ref(intrusive_refcount_t const * p); + template + friend void senf::intrusive_ptr_release(intrusive_refcount_t const * p); }; /** \brief Customizable reference count mixin for intrusive_ptr @@ -115,15 +122,6 @@ namespace senf { { protected: intrusive_refcount_t(); - - private: - void intrusive_ptr_add_ref(); - void intrusive_ptr_release(); - - template - friend void senf::intrusive_ptr_add_ref(intrusive_refcount_t * p); - template - friend void senf::intrusive_ptr_release(intrusive_refcount_t * p); }; /** \brief Reference count mixin for intrusive_ptr @@ -160,9 +158,9 @@ namespace senf { }; template - void intrusive_ptr_add_ref(intrusive_refcount_t * p); + void intrusive_ptr_add_ref(intrusive_refcount_t const * p); template - void intrusive_ptr_release(intrusive_refcount_t * p); + void intrusive_ptr_release(intrusive_refcount_t const * p); }