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 
     28 using namespace std;
     29 
     30 class 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;
     38       poptContext poptCon;
     39 
     40       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 
     49 int CountColons(char* argument);
     50 uint64_t GetInt(const string & argument, int itemNum);
     51 string GetString(string argument, int itemNum);
     52 
     53 #endif
     54