smartmontools  SVN Rev 4123
Utility to control and monitor storage systems with "S.M.A.R.T."
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
tunnelled_device< BaseDev, TunnelDev > Class Template Reference

Implement a device by tunneling through another device. More...

#include <dev_tunnelled.h>

Collaboration diagram for tunnelled_device< BaseDev, TunnelDev >:
Collaboration graph
[legend]

Public Types

typedef TunnelDev tunnel_device_type
 

Public Member Functions

virtual void release (const smart_device *dev)
 Release ownership of other device. More...
 
tunnel_device_typeget_tunnel_dev ()
 
const tunnel_device_typeget_tunnel_dev () const
 
- Public Member Functions inherited from tunnelled_device_base
virtual ~tunnelled_device_base () throw ()
 
virtual bool is_open () const
 Return true if device is open. More...
 
virtual bool open ()
 Open device, return false on error. More...
 
virtual bool close ()
 Close device, return false on error. More...
 
virtual bool owns (const smart_device *dev) const
 Return true if other device is owned by this device. More...
 
- Public Member Functions inherited from smart_device
virtual ~smart_device () throw ()
 
bool is_ata () const
 Return true if ATA device. More...
 
bool is_scsi () const
 Return true if SCSI device. More...
 
ata_deviceto_ata ()
 Downcast to ATA device. More...
 
const ata_deviceto_ata () const
 Downcast to ATA device (const). More...
 
scsi_deviceto_scsi ()
 Downcast to SCSI device. More...
 
const scsi_deviceto_scsi () const
 Downcast to SCSI device (const). More...
 
const device_infoget_info () const
 Get device info struct. More...
 
const char * get_dev_name () const
 Get device (path)name. More...
 
const char * get_info_name () const
 Get informal name. More...
 
const char * get_dev_type () const
 Get device type. More...
 
const char * get_req_type () const
 Get type requested by user, empty if none. More...
 
const error_infoget_err () const
 Get last error info struct. More...
 
int get_errno () const
 Get last error number. More...
 
const char * get_errmsg () const
 Get last error message. More...
 
virtual bool is_syscall_unsup () const
 Return true if last error indicates an unsupported system call. More...
 
bool set_err (int no, const char *msg,...) __attribute_format_printf(3
 Set last error number and message. More...
 
bool bool set_err (const error_info &err)
 Set last error info struct. More...
 
void clear_err ()
 Clear last error info. More...
 
bool set_err (int no)
 Set last error number and default message. More...
 
virtual smart_deviceautodetect_open ()
 Open device with autodetection support. More...
 

Protected Member Functions

 tunnelled_device (tunnel_device_type *tunnel_dev)
 
- Protected Member Functions inherited from tunnelled_device_base
 tunnelled_device_base (smart_device *tunnel_dev)
 
- Protected Member Functions inherited from smart_device
 smart_device (smart_interface *intf, const char *dev_name, const char *dev_type, const char *req_type)
 Constructor to init interface and device info. More...
 
 smart_device (do_not_use_in_implementation_classes)
 Dummy constructor for abstract classes. More...
 
device_infoset_info ()
 R/W access to device info struct. More...
 
smart_interfacesmi ()
 Get interface which produced this object. More...
 
const smart_interfacesmi () const
 Get interface which produced this object (const). More...
 

Private Attributes

tunnel_device_typem_tunnel_dev
 

Additional Inherited Members

- Protected Types inherited from smart_device
enum  do_not_use_in_implementation_classes { never_called }
 Dummy enum for dummy constructor. More...
 

Detailed Description

template<class BaseDev, class TunnelDev>
class tunnelled_device< BaseDev, TunnelDev >

Implement a device by tunneling through another device.

Definition at line 60 of file dev_tunnelled.h.

Member Typedef Documentation

template<class BaseDev, class TunnelDev>
typedef TunnelDev tunnelled_device< BaseDev, TunnelDev >::tunnel_device_type

Definition at line 65 of file dev_tunnelled.h.

Constructor & Destructor Documentation

template<class BaseDev, class TunnelDev>
tunnelled_device< BaseDev, TunnelDev >::tunnelled_device ( tunnel_device_type tunnel_dev)
inlineexplicitprotected

Definition at line 68 of file dev_tunnelled.h.

Member Function Documentation

template<class BaseDev, class TunnelDev>
tunnel_device_type* tunnelled_device< BaseDev, TunnelDev >::get_tunnel_dev ( )
inline

Definition at line 82 of file dev_tunnelled.h.

template<class BaseDev, class TunnelDev>
const tunnel_device_type* tunnelled_device< BaseDev, TunnelDev >::get_tunnel_dev ( ) const
inline

Definition at line 85 of file dev_tunnelled.h.

template<class BaseDev, class TunnelDev>
virtual void tunnelled_device< BaseDev, TunnelDev >::release ( const smart_device dev)
inlinevirtual

Release ownership of other device.

Default implementation does nothing.

Reimplemented from tunnelled_device_base.

Definition at line 75 of file dev_tunnelled.h.

Member Data Documentation

template<class BaseDev, class TunnelDev>
tunnel_device_type* tunnelled_device< BaseDev, TunnelDev >::m_tunnel_dev
private

Definition at line 89 of file dev_tunnelled.h.


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