blob: 1abf7464657aa5b8678e61868bd129028003636e [file] [log] [blame]
srs56943860cbe2011-09-10 20:29:53 -04001/*
2 Implementation of GPTData class derivative with popt-based command
3 line processing
4 Copyright (C) 2010-2011 Roderick W. Smith
5
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>
27
28using namespace std;
29
30class GPTDataCL : public GPTData {
31 protected:
32 // Following are variables associated with popt parameters....
33 char *attributeOperation, *backupFile, *partName, *hybrids;
34 char *newPartInfo, *mbrParts, *twoParts, *outDevice, *typeCode;
35 char *partGUID, *diskGUID;
36 int alignment, deletePartNum, infoPartNum, largestPartNum, bsdPartNum;
37 uint32_t tableSize;
srs56943860cbe2011-09-10 20:29:53 -040038 poptContext poptCon;
srs5694d1b11e82011-09-18 21:12:28 -040039
srs56943860cbe2011-09-10 20:29:53 -040040 int BuildMBR(char* argument, int isHybrid);
41 public:
42 GPTDataCL(void);
43 GPTDataCL(string filename);
44 ~GPTDataCL(void);
45 void LoadBackupFile(string backupFile, int &saveData, int &neverSaveData);
46 int DoOptions(int argc, char* argv[]);
47}; // class GPTDataCL
48
49int CountColons(char* argument);
50uint64_t GetInt(const string & argument, int itemNum);
51string GetString(string argument, int itemNum);
52
53#endif