libstorage-ng
|
An abstract base class of storage devices, and a vertex in the Devicegraph. More...
#include <Device.h>
Public Member Functions | |
sid_t | get_sid () const |
bool | operator== (const Device &rhs) const |
bool | operator!= (const Device &rhs) const |
Device * | copy_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) |
Devicegraph * | get_devicegraph () |
const Devicegraph * | get_devicegraph () const |
Impl & | get_impl () |
const Impl & | get_impl () const |
virtual Device * | clone () 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) |
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.
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.
Exception |
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.
Exception |
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.
Exception |