2004-11-17 06:00:25 -07:00
|
|
|
/* Copyright (C) 2004 Bart
|
|
|
|
*
|
|
|
|
* 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 Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef GPARTED_CORE
|
|
|
|
#define GPARTED_CORE
|
|
|
|
|
|
|
|
#include "../include/Operation.h"
|
|
|
|
#include "../include/ext2.h"
|
|
|
|
#include "../include/ext3.h"
|
|
|
|
#include "../include/fat16.h"
|
|
|
|
#include "../include/fat32.h"
|
|
|
|
#include "../include/linux_swap.h"
|
|
|
|
#include "../include/reiserfs.h"
|
2004-11-23 09:20:59 -07:00
|
|
|
#include "../include/ntfs.h"
|
2004-12-13 14:24:12 -07:00
|
|
|
#include "../include/xfs.h"
|
2004-12-14 15:49:44 -07:00
|
|
|
#include "../include/jfs.h"
|
|
|
|
#include "../include/hfs.h"
|
2005-09-13 08:56:00 -06:00
|
|
|
#include "../include/hfsplus.h"
|
2004-12-28 17:09:58 -07:00
|
|
|
#include "../include/reiser4.h"
|
2004-11-17 06:00:25 -07:00
|
|
|
|
|
|
|
#include <glibmm/ustring.h>
|
|
|
|
|
|
|
|
#include <vector>
|
|
|
|
#include <fstream>
|
|
|
|
|
|
|
|
namespace GParted
|
|
|
|
{
|
|
|
|
|
|
|
|
class GParted_Core
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
GParted_Core( ) ;
|
|
|
|
void find_supported_filesystems( ) ;
|
2004-12-17 12:45:04 -07:00
|
|
|
void get_devices( std::vector<Device> & devices ) ;
|
2004-11-19 04:55:38 -07:00
|
|
|
|
2004-11-21 14:49:38 -07:00
|
|
|
int get_estimated_time( const Operation & operation ) ;
|
2004-11-17 06:00:25 -07:00
|
|
|
|
|
|
|
void Apply_Operation_To_Disk( Operation & operation );
|
|
|
|
|
2004-12-27 05:08:01 -07:00
|
|
|
bool Create( const Device & device, Partition & new_partition ) ;
|
2005-12-07 15:44:40 -07:00
|
|
|
bool Convert_FS( const Partition & partition ) ;
|
|
|
|
bool Delete( const Partition & partition ) ;
|
2004-12-27 05:08:01 -07:00
|
|
|
bool Resize( const Device & device, const Partition & partition_old, const Partition & partition_new ) ;
|
2005-12-07 15:44:40 -07:00
|
|
|
bool Copy( const Glib::ustring & src_part_path, Partition & partition_dest ) ;
|
2004-11-17 06:00:25 -07:00
|
|
|
|
2004-11-27 16:31:19 -07:00
|
|
|
bool Set_Disklabel( const Glib::ustring & device_path, const Glib::ustring & disklabel ) ;
|
|
|
|
|
2004-12-25 14:40:18 -07:00
|
|
|
const std::vector<FS> & get_filesystems( ) const ;
|
2005-12-07 04:21:27 -07:00
|
|
|
const FS & get_fs( GParted::FILESYSTEM filesystem ) const ;
|
2004-11-17 06:00:25 -07:00
|
|
|
Glib::RefPtr<Gtk::TextBuffer> get_textbuffer( ) ;
|
2005-09-13 11:09:20 -06:00
|
|
|
std::vector<Glib::ustring> get_disklabeltypes( ) ;
|
2004-11-17 06:00:25 -07:00
|
|
|
|
|
|
|
private:
|
2005-12-07 04:21:27 -07:00
|
|
|
GParted::FILESYSTEM Get_Filesystem( ) ; //temporary function.. asa new checks ripple through in libparted i'll remove it.
|
2004-12-17 12:45:04 -07:00
|
|
|
void set_device_partitions( Device & device ) ;
|
2005-12-08 10:03:29 -07:00
|
|
|
void set_mountpoints( std::vector<Partition> & partitions, bool first_time = true ) ;
|
2005-12-10 17:05:28 -07:00
|
|
|
void set_used_sectors( std::vector<Partition> & partitions ) ;
|
2005-12-13 18:58:15 -07:00
|
|
|
void insert_unallocated( const Glib::ustring & device_path, std::vector<Partition> & partitions, Sector start, Sector end, bool inside_extended ) ;
|
2005-12-11 11:46:43 -07:00
|
|
|
Glib::ustring get_short_path( const Glib::ustring & real_path ) ;
|
2005-11-26 17:57:11 -07:00
|
|
|
void LP_Set_Used_Sectors( Partition & partition );
|
|
|
|
Glib::ustring Get_Flags( ) ;
|
2005-12-07 15:44:40 -07:00
|
|
|
int Create_Empty_Partition( Partition & new_partition, bool copy = false ) ;
|
|
|
|
bool Resize_Container_Partition( const Partition & partition_old, const Partition & partition_new, bool fixed_start ) ;
|
|
|
|
bool Resize_Normal_Using_Libparted( const Partition & partition_old, const Partition & partition_new ) ;
|
2004-11-17 06:00:25 -07:00
|
|
|
|
|
|
|
void Show_Error( Glib::ustring message ) ;
|
2005-12-07 04:21:27 -07:00
|
|
|
void set_proper_filesystem( const FILESYSTEM & filesystem ) ;
|
2005-12-07 15:44:40 -07:00
|
|
|
bool set_partition_type( const Partition & partition ) ;
|
2005-11-29 07:50:20 -07:00
|
|
|
bool wait_for_node( const Glib::ustring & node ) ;
|
2005-12-07 15:44:40 -07:00
|
|
|
bool erase_filesystem_signatures( const Partition & partition ) ;
|
2004-12-27 05:08:01 -07:00
|
|
|
|
2005-11-26 17:57:11 -07:00
|
|
|
bool open_device( const Glib::ustring & device_path ) ;
|
|
|
|
bool open_device_and_disk( const Glib::ustring & device_path, bool strict = true ) ;
|
|
|
|
void close_device_and_disk( ) ;
|
|
|
|
bool commit( ) ;
|
|
|
|
|
2004-11-17 06:00:25 -07:00
|
|
|
Glib::RefPtr<Gtk::TextBuffer> textbuffer;
|
|
|
|
|
|
|
|
std::vector<FS> FILESYSTEMS ;
|
|
|
|
FileSystem * p_filesystem ;
|
|
|
|
std::vector <PedPartitionFlag> flags;
|
|
|
|
Glib::ustring temp ;
|
2004-12-13 04:17:40 -07:00
|
|
|
Partition partition_temp ;
|
2004-12-14 15:49:44 -07:00
|
|
|
FS fs ;
|
2005-11-26 17:57:11 -07:00
|
|
|
|
2005-12-08 10:03:29 -07:00
|
|
|
//used in set_mountpoints()
|
|
|
|
std::map<Glib::ustring, Glib::ustring> mount_info ;
|
|
|
|
std::map<Glib::ustring, Glib::ustring>::iterator iter ;
|
|
|
|
|
2005-11-26 17:57:11 -07:00
|
|
|
PedDevice *lp_device ;
|
|
|
|
PedDisk *lp_disk ;
|
|
|
|
PedPartition *lp_partition ;
|
2004-11-17 06:00:25 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
} //GParted
|
|
|
|
|
|
|
|
|
|
|
|
#endif //GPARTED_CORE
|