Home | History | Annotate | Download | only in gptfdisk
      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