libstorage-ng
MountPoint.h
1 /*
2  * Copyright (c) [2017-2018] SUSE LLC
3  *
4  * All Rights Reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of version 2 of the GNU General Public License as published
8  * by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13  * more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, contact Novell, Inc.
17  *
18  * To contact Novell about this file by physical or electronic mail, you may
19  * find current contact information at www.novell.com.
20  */
21 
22 
23 #ifndef STORAGE_MOUNT_POINT_H
24 #define STORAGE_MOUNT_POINT_H
25 
26 
27 #include "storage/Devices/Device.h"
28 #include "storage/Filesystems/Mountable.h"
29 
30 
31 namespace storage
32 {
33 
34  class Devicegraph;
35 
36 
38  {
39  public:
40 
41  InvalidMountPointPath(const std::string& path);
42  };
43 
44 
48  class MountPoint : public Device
49  {
50  public:
51 
55  static MountPoint* create(Devicegraph* devicegraph, const std::string& path);
56 
57  static MountPoint* load(Devicegraph* devicegraph, const xmlNode* node);
58 
62  static std::vector<MountPoint*> get_all(Devicegraph* devicegraph);
63 
67  static std::vector<const MountPoint*> get_all(const Devicegraph* devicegraph);
68 
69  const std::string& get_path() const;
70 
74  void set_path(const std::string& path);
75 
79  static std::string normalize_path(const std::string& path);
80 
84  MountByType get_mount_by() const;
85 
89  void set_mount_by(MountByType mount_by);
90 
95  void set_default_mount_by();
96 
104  std::vector<MountByType> possible_mount_bys() const;
105 
109  const std::vector<std::string>& get_mount_options() const;
110 
115  void set_mount_options(const std::vector<std::string>& mount_options);
116 
121  std::vector<std::string> default_mount_options() const;
122 
129 
134  FsType get_mount_type() const;
135 
142  void set_mount_type(FsType mount_type);
143 
149  int get_freq() const;
150 
156  void set_freq(int freq);
157 
163  int get_passno() const;
164 
169  void set_passno(int passno);
170 
174  bool is_active() const;
175 
179  void set_active(bool active);
180 
185  bool is_in_etc_fstab() const;
186 
190  void set_in_etc_fstab(bool in_etc_fstab);
191 
196  bool has_mountable() const;
197 
204 
208  const Mountable* get_mountable() const;
209 
216 
220  const Filesystem* get_filesystem() const;
221 
225  static std::vector<const MountPoint*> find_by_path(const Devicegraph* devicegraph,
226  const std::string& path);
227 
237  void immediate_activate();
238 
248  void immediate_deactivate();
249 
250  public:
251 
252  class Impl;
253 
254  Impl& get_impl();
255  const Impl& get_impl() const;
256 
257  virtual MountPoint* clone() const override;
258 
259  protected:
260 
261  MountPoint(Impl* impl);
262 
263  };
264 
265 
271  bool is_mount_point(const Device* device);
272 
279  MountPoint* to_mount_point(Device* device);
280 
284  const MountPoint* to_mount_point(const Device* device);
285 
286 }
287 
288 #endif
void immediate_deactivate()
Immediately deactivate (unmount) the mount point object.
int get_passno() const
Get the passno field from fstab(5).
static std::vector< const MountPoint * > find_by_path(const Devicegraph *devicegraph, const std::string &path)
Find all MountPoints with path.
void set_passno(int passno)
MountByType get_mount_by() const
Get the mount-by method.
void immediate_activate()
Immediately activate (mount) the mount point.
int get_freq() const
Get the freq field from fstab(5).
void set_default_mount_options()
Set the mount options to the default mount options.
static std::string normalize_path(const std::string &path)
Return normalized form of path.
Definition: MountPoint.h:37
std::vector< std::string > default_mount_options() const
Default mount options.
bool is_active() const
Return whether the mount point is active (mounted).
The main container of the libstorage-ng.
Definition: Devicegraph.h:169
Definition: Mountable.h:100
Class to represent a mount point.
Definition: MountPoint.h:48
std::vector< MountByType > possible_mount_bys() const
Returns the possible mount-by methods for the mount point.
static MountPoint * create(Devicegraph *devicegraph, const std::string &path)
An abstract base class for storage devices.
Definition: Device.h:81
Filesystem * get_filesystem()
Return the filesystem of mountable of the mount point.
void set_mount_by(MountByType mount_by)
Set the mount-by method.
bool is_mount_point(const Device *device)
Checks whether device points to a MountPoint.
MountPoint * to_mount_point(Device *device)
Converts pointer to Device to pointer to Mountpoint.
bool is_in_etc_fstab() const
Query whether the mount point is present (probed devicegraph) or will be present (staging devicegraph...
void set_default_mount_by()
Set the mount-by method to the global default, see Storage::get_default_mount_by().
Definition: Filesystem.h:40
bool has_mountable() const
Checks whether the mount point has a mountable.
void set_path(const std::string &path)
Base class for storage exceptions.
Definition: Exception.h:113
void set_active(bool active)
Sets whether the mount point is active (mounted).
static std::vector< MountPoint * > get_all(Devicegraph *devicegraph)
Get all MountPoints.
void set_mount_type(FsType mount_type)
Set the filesystem type to be used to mount the device.
The storage namespace.
Definition: Actiongraph.h:38
void set_mount_options(const std::vector< std::string > &mount_options)
Set the mount options.
const std::vector< std::string > & get_mount_options() const
Get the mount options.
void set_freq(int freq)
Set the freq field.
void set_in_etc_fstab(bool in_etc_fstab)
Set whether the mount point will be present in /etc/fstab.
FsType get_mount_type() const
Get the filesystem type used to mount the device, as specified in fstab(5) and/or in the mount(8) com...
MountByType
The key by which the mount program identifies a mountable.
Definition: Mountable.h:60
Mountable * get_mountable()
Return the mountable of the mount point.