blob: d8fa9ffc584c58d7371a0240342e07ae5f97271a [file] [log] [blame]
srs56943860cbe2011-09-10 20:29:53 -04001/*
2 Implementation of GPTData class derivative with popt-based command
3 line processing
Roderick W. Smithe3ee7332013-09-24 12:56:11 -04004 Copyright (C) 2010-2013 Roderick W. Smith
srs56943860cbe2011-09-10 20:29:53 -04005
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License along
17 with this program; if not, write to the Free Software Foundation, Inc.,
18 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20*/
21
22#ifndef __GPTCL_H
23#define __GPTCL_H
24
25#include "gpt.h"
26#include <popt.h>
Jeff Sharkeyd6f72ef2017-10-19 13:27:21 -060027#include <map>
srs56943860cbe2011-09-10 20:29:53 -040028
29using namespace std;
30
31class GPTDataCL : public GPTData {
32 protected:
33 // Following are variables associated with popt parameters....
34 char *attributeOperation, *backupFile, *partName, *hybrids;
35 char *newPartInfo, *mbrParts, *twoParts, *outDevice, *typeCode;
36 char *partGUID, *diskGUID;
37 int alignment, deletePartNum, infoPartNum, largestPartNum, bsdPartNum;
38 uint32_t tableSize;
srs56943860cbe2011-09-10 20:29:53 -040039 poptContext poptCon;
Jeff Sharkey9c50b5e2018-03-27 13:17:19 -060040 std::map<int, char> typeRaw;
srs5694d1b11e82011-09-18 21:12:28 -040041
srs56943860cbe2011-09-10 20:29:53 -040042 int BuildMBR(char* argument, int isHybrid);
43 public:
44 GPTDataCL(void);
45 GPTDataCL(string filename);
46 ~GPTDataCL(void);
47 void LoadBackupFile(string backupFile, int &saveData, int &neverSaveData);
48 int DoOptions(int argc, char* argv[]);
49}; // class GPTDataCL
50
51int CountColons(char* argument);
52uint64_t GetInt(const string & argument, int itemNum);
53string GetString(string argument, int itemNum);
54
55#endif