libstorage-ng
Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
storage::Device Class Referenceabstract

An abstract base class of storage devices, and a vertex in the Devicegraph. More...

#include <Device.h>

Inheritance diagram for storage::Device:
[legend]
Collaboration diagram for storage::Device:
[legend]

Public Member Functions

sid_t get_sid () const
 
bool operator== (const Device &rhs) const
 
bool operator!= (const Device &rhs) const
 
Devicecopy_to_devicegraph (Devicegraph *devicegraph) const
 Copies the device to the devicegraph. More...
 
bool exists_in_devicegraph (const Devicegraph *devicegraph) const
 Checks if the device exists in the devicegraph.
 
bool exists_in_probed () const
 Checks if the device exists in the probed devicegraph.
 
bool exists_in_staging () const
 Checks if the device exists in the staging devicegraph.
 
bool exists_in_system () const
 Checks if the device exists in the system devicegraph.
 
std::string get_displayname () const
 
ResizeInfo detect_resize_info () const
 Detect the resize info of the device. More...
 
bool has_children () const
 
size_t num_children () const
 
bool has_parents () const
 
size_t num_parents () const
 
std::vector< Device * > get_children ()
 
std::vector< const Device * > get_children () const
 
std::vector< Device * > get_parents ()
 
std::vector< const Device * > get_parents () const
 
std::vector< Device * > get_siblings (bool itself)
 
std::vector< const Device * > get_siblings (bool itself) const
 
std::vector< Device * > get_descendants (bool itself)
 
std::vector< const Device * > get_descendants (bool itself) const
 
std::vector< Device * > get_ancestors (bool itself)
 
std::vector< const Device * > get_ancestors (bool itself) const
 
std::vector< Device * > get_leaves (bool itself)
 
std::vector< const Device * > get_leaves (bool itself) const
 
std::vector< Device * > get_roots (bool itself)
 
std::vector< const Device * > get_roots (bool itself) const
 
std::vector< Holder * > get_in_holders ()
 
std::vector< const Holder * > get_in_holders () const
 
std::vector< Holder * > get_out_holders ()
 
std::vector< const Holder * > get_out_holders () const
 
void remove_descendants ()
 
const std::map< std::string, std::string > & get_userdata () const
 
void set_userdata (const std::map< std::string, std::string > &userdata)
 
Devicegraphget_devicegraph ()
 
const Devicegraphget_devicegraph () const
 
Impl & get_impl ()
 
const Impl & get_impl () const
 
virtual Deviceclone () const =0
 
void save (xmlNode *node) const
 

Static Public Member Functions

static std::vector< Device * > get_all (Devicegraph *devicegraph)
 
static std::vector< const Device * > get_all (const Devicegraph *devicegraph)
 
static bool compare_by_sid (const Device *lhs, const Device *rhs)
 Compare (less than) two Devices by sid.
 
static bool compare_by_name (const Device *lhs, const Device *rhs)
 Compare (less than) two Devices by name. More...
 

Protected Member Functions

 Device (Impl *impl)
 
void create (Devicegraph *devicegraph)
 
void load (Devicegraph *devicegraph)
 

Friends

std::ostream & operator<< (std::ostream &out, const Device &device)
 

Detailed Description

An abstract base class of storage devices, and a vertex in the Devicegraph.

The Device class does not have a device name since some device types do not have a intrinsic device name, e.g. btrfs. Instead most devices are derived from BlkDevice which has a device name, udev path and udev ids.

Member Function Documentation

◆ compare_by_name()

static bool storage::Device::compare_by_name ( const Device lhs,
const Device rhs 
)
static

Compare (less than) two Devices by name.

So far only avaliable for BlkDevices and LvmVgs.

The comparison sorts to alphabetical order with some exceptions. E.g. The disk /dev/sdz is in front of /dev/sdaa and the partition /dev/sda2 is in front of /dev/sda10.

The comparison fulfills strict weak ordering. The exact ordering may change in future versions.

Exceptions
Exception

◆ copy_to_devicegraph()

Device* storage::Device::copy_to_devicegraph ( Devicegraph devicegraph) const

Copies the device to the devicegraph.

Does not copy holders. The purpose of the function is to restore parts of the probed devicegraph in the staging devicegraph that were previously deleted.

Device must not exist in devicegraph.

See also
Holder::copy_to_devicegraph()
Exceptions
Exception

◆ detect_resize_info()

ResizeInfo storage::Device::detect_resize_info ( ) const

Detect the resize info of the device.

If the device holds an NTFS it must not be mounted.

Exceptions
Exception

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