00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef BLKID_H
00024 #define BLKID_H
00025
00026 #include <string>
00027 #include <map>
00028 #include <vector>
00029
00030 #include "storage/StorageInterface.h"
00031
00032
00033 namespace storage
00034 {
00035 using std::map;
00036 using std::vector;
00037
00038
00039 class Blkid
00040 {
00041 public:
00042
00043 Blkid();
00044 Blkid(const string& device);
00045
00046 struct Entry
00047 {
00048 Entry() : is_fs(false), fs_type(FSUNKNOWN), fs_uuid(), fs_label(),
00049 is_lvm(false), is_luks(false), luks_uuid() {}
00050
00051 bool is_fs;
00052 FsType fs_type;
00053 string fs_uuid;
00054 string fs_label;
00055
00056 bool is_lvm;
00057
00058 bool is_luks;
00059 string luks_uuid;
00060 };
00061
00062 friend std::ostream& operator<<(std::ostream& s, const Entry& entry);
00063
00064 bool getEntry(const string& device, Entry& entry) const;
00065
00066 protected:
00067
00068 void parse(const vector<string>& lines);
00069
00070 typedef map<string, Entry>::const_iterator const_iterator;
00071
00072 map<string, Entry> data;
00073
00074 };
00075
00076 }
00077
00078
00079 #endif