24 #ifndef STORAGE_BTRFS_H 25 #define STORAGE_BTRFS_H 28 #include "storage/Devicegraph.h" 29 #include "storage/Filesystems/BlkFilesystem.h" 30 #include "storage/Filesystems/BtrfsQgroup.h" 47 UNKNOWN, DEFAULT, SINGLE, DUP, RAID0, RAID1, RAID5, RAID6, RAID10, RAID1C3, RAID1C4
273 bool get_configure_snapper()
const ST_DEPRECATED;
274 void set_configure_snapper(
bool configure) ST_DEPRECATED;
281 const Impl& get_impl()
const;
283 virtual Btrfs* clone()
const override;
Class to represent a btrfs filesystem https://en.wikipedia.org/wiki/Btrfs in the devicegraph.
Definition: Btrfs.h:79
std::pair< unsigned int, unsigned long long > id_t
Type for a btrfs qgroup id.
Definition: BtrfsQgroup.h:54
BtrfsSubvolume * get_default_btrfs_subvolume()
Get the default subvolume.
void set_default_btrfs_subvolume(BtrfsSubvolume *btrfs_subvolume) const
Set the default subvolume.
bool has_quota() const
Return whether quota is enabled for the btrfs.
Btrfs * to_btrfs(Device *device)
Converts pointer to Device to pointer to Btrfs.
void set_metadata_raid_level(BtrfsRaidLevel metadata_raid_level)
Set the metadata RAID level.
std::vector< BtrfsQgroup * > get_btrfs_qgroups()
Get all btrfs qgroups of the btrfs.
std::vector< BtrfsRaidLevel > get_allowed_metadata_raid_levels() const
Get the allowed metadata RAID levels for the btrfs.
Class to represent a btrfs subvolume in the devicegraph.
Definition: BtrfsSubvolume.h:43
std::vector< BtrfsRaidLevel > get_allowed_data_raid_levels() const
Get the allowed data RAID levels for the btrfs.
static Btrfs * create(Devicegraph *devicegraph)
Create a device of type Btrfs.
The main container of the libstorage-ng.
Definition: Devicegraph.h:169
bool is_btrfs(const Device *device)
Checks whether device points to a Btrfs.
Definition: BlkFilesystem.h:42
An abstract Block Device.
Definition: BlkDevice.h:48
void remove_device(BlkDevice *blk_device)
Remove a block device from the btrfs.
void set_data_raid_level(BtrfsRaidLevel data_raid_level)
Set the data RAID level.
BtrfsQgroup * create_btrfs_qgroup(const BtrfsQgroup::id_t &id)
Create a new btrfs qgroup on the btrfs.
BtrfsSubvolume * get_top_level_btrfs_subvolume()
Get the top-level subvolume.
An abstract base class for storage devices.
Definition: Device.h:81
Definition: Devicegraph.h:49
std::string get_btrfs_raid_level_name(BtrfsRaidLevel btrfs_raid_level)
Convert the btrfs RAID level btrfs_raid_level to a string.
Class to represent a qgroup of a btrfs filesystem.
Definition: BtrfsQgroup.h:44
FilesystemUser * add_device(BlkDevice *blk_device)
Add a block device to the btrfs.
BtrfsQgroup * find_btrfs_qgroup_by_id(const BtrfsQgroup::id_t &id)
Find a btrfs qgroup of the btrfs by its id.
static std::vector< Btrfs * > get_all(Devicegraph *devicegraph)
Get all Btrfses.
std::vector< BtrfsSubvolume * > get_btrfs_subvolumes()
Get all subvolumes of the btrfs.
BtrfsRaidLevel get_metadata_raid_level() const
Get the metadata RAID level.
BtrfsRaidLevel get_data_raid_level() const
Get the data RAID level.
The storage namespace.
Definition: Actiongraph.h:39
BtrfsSubvolume * find_btrfs_subvolume_by_path(const std::string &path)
Find a btrfs subvolume of the btrfs by its path.
void set_quota(bool quota)
Enable or disable quota for the btrfs.
BtrfsRaidLevel
Btrfs RAID levels (aka profiles) used for metadata and data.
Definition: Btrfs.h:45
Holder from BlkDevice to a BlkFilesystem.
Definition: FilesystemUser.h:38