smartmontools SVN Rev 3317
Utility to control and monitor storage systems with "S.M.A.R.T."
Public Types | Public Member Functions | Private Member Functions | Private Attributes
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]

List of all members.

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.
 ~any_device_auto_ptr () throw ()
 Destructor deletes device object.
void operator= (device_type *dev)
 Assign a new pointer.
void reset ()
 Delete device object and clear the pointer.
device_typerelease ()
 Return the pointer and release ownership.
void replace (device_type *dev)
 Replace the pointer.
device_typeget () const
 Return the pointer.
device_typeoperator* () const
 Pointer dereferencing.
device_typeoperator-> () const
 Pointer dereferencing.
 operator bool () const
 For (ptr != 0) check.
bool operator! () const
 For (ptr == 0) check.

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 
) [inline, explicit]

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 [inline, private]

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: