56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
/*
 | 
						|
    Implementation of GPTData class derivative with popt-based command
 | 
						|
    line processing
 | 
						|
    Copyright (C) 2010-2013 Roderick W. Smith
 | 
						|
 | 
						|
    This program is free software; you can redistribute it and/or modify
 | 
						|
    it under the terms of the GNU General Public License as published by
 | 
						|
    the Free Software Foundation; either version 2 of the License, or
 | 
						|
    (at your option) any later version.
 | 
						|
 | 
						|
    This program is distributed in the hope that it will be useful,
 | 
						|
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
    GNU General Public License for more details.
 | 
						|
 | 
						|
    You should have received a copy of the GNU General Public License along
 | 
						|
    with this program; if not, write to the Free Software Foundation, Inc.,
 | 
						|
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
						|
 | 
						|
*/
 | 
						|
 | 
						|
#ifndef __GPTCL_H
 | 
						|
#define __GPTCL_H
 | 
						|
 | 
						|
#include "gpt.h"
 | 
						|
#include <popt.h>
 | 
						|
#include <map>
 | 
						|
 | 
						|
using namespace std;
 | 
						|
 | 
						|
class GPTDataCL : public GPTData {
 | 
						|
   protected:
 | 
						|
      // Following are variables associated with popt parameters....
 | 
						|
      char *attributeOperation, *backupFile, *partName, *hybrids;
 | 
						|
      char *newPartInfo, *mbrParts, *twoParts, *outDevice, *typeCode;
 | 
						|
      char *partGUID, *diskGUID;
 | 
						|
      int alignment, deletePartNum, infoPartNum, largestPartNum, bsdPartNum;
 | 
						|
      uint32_t tableSize;
 | 
						|
      poptContext poptCon;
 | 
						|
      std::map<int, char> typeRaw;
 | 
						|
 | 
						|
      int BuildMBR(char* argument, int isHybrid);
 | 
						|
   public:
 | 
						|
      GPTDataCL(void);
 | 
						|
      GPTDataCL(string filename);
 | 
						|
      ~GPTDataCL(void);
 | 
						|
      void LoadBackupFile(string backupFile, int &saveData, int &neverSaveData);
 | 
						|
      int DoOptions(int argc, char* argv[]);
 | 
						|
}; // class GPTDataCL
 | 
						|
 | 
						|
int CountColons(char* argument);
 | 
						|
uint64_t GetInt(const string & argument, int itemNum);
 | 
						|
string GetString(string argument, int itemNum);
 | 
						|
 | 
						|
#endif
 |