libstorage-ng
MdUser.h
1 /*
2  * Copyright (c) [2016-2020] 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_MD_USER_H
24 #define STORAGE_MD_USER_H
25 
26 
27 #include "storage/Holders/User.h"
28 
29 
30 namespace storage
31 {
32 
38  class MdUser : public User
39  {
40  public:
41 
50  static MdUser* create(Devicegraph* devicegraph, const Device* source, const Device* target);
51 
52  static MdUser* load(Devicegraph* devicegraph, const xmlNode* node);
53 
54  virtual MdUser* clone() const override;
55 
59  bool is_spare() const;
60 
68  void set_spare(bool spare);
69 
73  bool is_faulty() const;
74 
82  void set_faulty(bool faulty);
83 
88  bool is_journal() const;
89 
100  void set_journal(bool journal);
101 
114  unsigned int get_sort_key() const;
115 
121  void set_sort_key(unsigned int sort_key);
122 
123  public:
124 
125  class Impl;
126 
127  Impl& get_impl();
128  const Impl& get_impl() const;
129 
130  protected:
131 
132  MdUser(Impl* impl);
133 
134  };
135 
136 
142  bool is_md_user(const Holder* holder);
143 
150  MdUser* to_md_user(Holder* holder);
151 
155  const MdUser* to_md_user(const Holder* holder);
156 
157 }
158 
159 #endif
void set_faulty(bool faulty)
Set the target device to be a faulty device.
MdUser * to_md_user(Holder *holder)
Converts pointer to Holder to pointer to MdUser.
void set_sort_key(unsigned int sort_key)
Set the sort key.
bool is_faulty() const
Return whether the target device is a faulty device.
static MdUser * create(Devicegraph *devicegraph, const Device *source, const Device *target)
Create a holder of type MdUser.
void set_journal(bool journal)
Set the target device to be a journal device.
bool is_md_user(const Holder *holder)
Checks whether holder points to a MdUser.
void set_spare(bool spare)
Set the target device to be a spare device.
unsigned int get_sort_key() const
Return the sort key.
The main container of the libstorage-ng.
Definition: Devicegraph.h:169
bool is_spare() const
Return whether the target device is a spare device.
Holder from a BlkDevice to an Md.
Definition: MdUser.h:38
An abstract base class for storage devices.
Definition: Device.h:81
An abstract base class for storage holders.
Definition: Holder.h:56
Generic holder from one device to another device, e.g.
Definition: User.h:40
The storage namespace.
Definition: Actiongraph.h:39
bool is_journal() const
Return whether the target device is a journal device.