smartmontools  SVN Rev 4111
Utility to control and monitor storage systems with "S.M.A.R.T."
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
any_device_auto_ptr< Dev > Class Template Reference

Smart pointer class for device pointers. More...

#include <dev_interface.h>

Collaboration diagram for any_device_auto_ptr< Dev >:
Collaboration graph
[legend]

Public Types

typedef Dev device_type
 

Public Member Functions

 any_device_auto_ptr (device_type *dev=0, smart_device *base_dev=0)
 Construct from optional pointer to device and optional pointer to base device. More...
 
 ~any_device_auto_ptr () throw ()
 Destructor deletes device object. More...
 
void operator= (device_type *dev)
 Assign a new pointer. More...
 
void reset ()
 Delete device object and clear the pointer. More...
 
device_typerelease ()
 Return the pointer and release ownership. More...
 
void replace (device_type *dev)
 Replace the pointer. More...
 
device_typeget () const
 Return the pointer. More...
 
device_typeoperator* () const
 Pointer dereferencing. More...
 
device_typeoperator-> () const
 Pointer dereferencing. More...
 
 operator bool () const
 For (ptr != 0) check. More...
 
bool operator! () const
 For (ptr == 0) check. More...
 

Private Member Functions

void fail () const
 
 any_device_auto_ptr (const any_device_auto_ptr< Dev > &)
 
void operator= (const any_device_auto_ptr< Dev > &)
 

Private Attributes

device_typem_dev
 
smart_devicem_base_dev
 

Detailed Description

template<class Dev>
class any_device_auto_ptr< Dev >

Smart pointer class for device pointers.

Definition at line 580 of file dev_interface.h.

Member Typedef Documentation

template<class Dev >
typedef Dev any_device_auto_ptr< Dev >::device_type

Definition at line 583 of file dev_interface.h.

Constructor & Destructor Documentation

template<class Dev >
any_device_auto_ptr< Dev >::any_device_auto_ptr ( device_type dev = 0,
smart_device base_dev = 0 
)
inlineexplicit

Construct from optional pointer to device and optional pointer to base device.

Definition at line 587 of file dev_interface.h.

template<class Dev >
any_device_auto_ptr< Dev >::~any_device_auto_ptr ( )
throw (
)
inline

Destructor deletes device object.

Definition at line 592 of file dev_interface.h.

template<class Dev >
any_device_auto_ptr< Dev >::any_device_auto_ptr ( const any_device_auto_ptr< Dev > &  )
private

Member Function Documentation

template<class Dev >
void any_device_auto_ptr< Dev >::fail ( ) const
inlineprivate

Definition at line 652 of file dev_interface.h.

template<class Dev >
device_type* any_device_auto_ptr< Dev >::get ( ) const
inline

Return the pointer.

Definition at line 629 of file dev_interface.h.

template<class Dev >
any_device_auto_ptr< Dev >::operator bool ( ) const
inline

For (ptr != 0) check.

Definition at line 641 of file dev_interface.h.

template<class Dev >
bool any_device_auto_ptr< Dev >::operator! ( ) const
inline

For (ptr == 0) check.

Definition at line 645 of file dev_interface.h.

template<class Dev >
device_type& any_device_auto_ptr< Dev >::operator* ( ) const
inline

Pointer dereferencing.

Definition at line 633 of file dev_interface.h.

template<class Dev >
device_type* any_device_auto_ptr< Dev >::operator-> ( ) const
inline

Pointer dereferencing.

Definition at line 637 of file dev_interface.h.

template<class Dev >
void any_device_auto_ptr< Dev >::operator= ( device_type dev)
inline

Assign a new pointer.

Throws if a pointer is already assigned.

Definition at line 597 of file dev_interface.h.

template<class Dev >
void any_device_auto_ptr< Dev >::operator= ( const any_device_auto_ptr< Dev > &  )
private
template<class Dev >
device_type* any_device_auto_ptr< Dev >::release ( )
inline

Return the pointer and release ownership.

Definition at line 616 of file dev_interface.h.

template<class Dev >
void any_device_auto_ptr< Dev >::replace ( device_type dev)
inline

Replace the pointer.

Used to call dev->autodetect_open().

Definition at line 625 of file dev_interface.h.

template<class Dev >
void any_device_auto_ptr< Dev >::reset ( )
inline

Delete device object and clear the pointer.

Definition at line 605 of file dev_interface.h.

Member Data Documentation

template<class Dev >
smart_device* any_device_auto_ptr< Dev >::m_base_dev
private

Definition at line 650 of file dev_interface.h.

template<class Dev >
device_type* any_device_auto_ptr< Dev >::m_dev
private

Definition at line 649 of file dev_interface.h.


The documentation for this class was generated from the following file: