• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2      Implementation of GPTData class derivative with popt-based command
3      line processing
4      Copyright (C) 2010-2013 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  #include <map>
28  
29  using namespace std;
30  
31  class 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;
39        poptContext poptCon;
40        std::map<int, char> typeRaw;
41  
42        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  
51  int CountColons(char* argument);
52  uint64_t GetInt(const string & argument, int itemNum);
53  string GetString(string argument, int itemNum);
54  
55  #endif
56