Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

kino::raii< ResourceType > Class Template Reference

Attempts to bring Resource Acquisition Is Initialization to legacy "C" constructs. More...

#include <kino_plugin_utility.h>

Collaboration diagram for kino::raii< ResourceType >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 raii (ResourceType *const Resource, void(*ReleaseMethod)(ResourceType *))
 ~raii ()
ResourceType * get () const
ResourceType * operator-> () const
ResourceType & operator * () const

Private Attributes

ResourceType *const m_resource
void(* m_release_method )(ResourceType *)

Detailed Description

template<typename ResourceType>
class kino::raii< ResourceType >

Attempts to bring Resource Acquisition Is Initialization to legacy "C" constructs.

Definition at line 188 of file kino_plugin_utility.h.


Constructor & Destructor Documentation

template<typename ResourceType>
kino::raii< ResourceType >::raii ResourceType *const   Resource,
void(*)(ResourceType *)  ReleaseMethod
[inline]
 

Definition at line 191 of file kino_plugin_utility.h.

References kino::raii< ResourceType >::m_release_method.

00191                                                                              :
00192         m_resource(Resource),
00193         m_release_method(ReleaseMethod)
00194     {
00195         // Sanity checks ...
00196         assert(m_release_method);
00197     }
    

template<typename ResourceType>
kino::raii< ResourceType >::~raii  )  [inline]
 

Definition at line 199 of file kino_plugin_utility.h.

References kino::raii< ResourceType >::m_resource.

00200     {
00201         if(m_resource)
00202             (*m_release_method)(m_resource);
00203     }


Member Function Documentation

template<typename ResourceType>
ResourceType* kino::raii< ResourceType >::get  )  const [inline]
 

Definition at line 205 of file kino_plugin_utility.h.

References kino::raii< ResourceType >::m_resource.

00206     {
00207         return m_resource;
00208     }

template<typename ResourceType>
ResourceType& kino::raii< ResourceType >::operator *  )  const [inline]
 

Definition at line 215 of file kino_plugin_utility.h.

References kino::raii< ResourceType >::m_resource.

00216     {
00217         return *m_resource;
00218     }

template<typename ResourceType>
ResourceType* kino::raii< ResourceType >::operator->  )  const [inline]
 

Definition at line 210 of file kino_plugin_utility.h.

References kino::raii< ResourceType >::m_resource.

00211     {
00212         return m_resource;
00213     }


Member Data Documentation

template<typename ResourceType>
void(* kino::raii< ResourceType >::m_release_method)(ResourceType *) [private]
 

Referenced by kino::raii< ResourceType >::raii().

template<typename ResourceType>
ResourceType* const kino::raii< ResourceType >::m_resource [private]
 

Definition at line 221 of file kino_plugin_utility.h.

Referenced by kino::raii< ResourceType >::get(), kino::raii< ResourceType >::operator *(), kino::raii< ResourceType >::operator->(), and kino::raii< ResourceType >::~raii().


The documentation for this class was generated from the following file:
Generated on Sun Mar 11 22:13:29 2007 for Kino by  doxygen 1.4.2