00001 /* -*- Mode: c++ -*- */ 00002 /* 00003 * this is part of Spm 00004 * 00005 * Copyright (c) 2003-2005 Guillaume Chevallereau 00006 * 00007 * This program is free software. You can redistribute it and/or modify it 00008 * under the terms of the GNU General Public License as published by the 00009 * Free Software Foundation. Either version 2 of the license or (at your 00010 * option) any later version. 00011 * 00012 * This program is distributed in the hope that it will be usefull but WITHOUT 00013 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 00015 * more details. 00016 * 00017 * You should have received a copy of the GNU General Public License along 00018 * with this program; if not, write to the Free Software Foundation, Inc., 00019 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 00020 */ 00021 #ifndef __TARFILE_H__ 00022 #define __TARFILE_H__ 00023 00024 #include "compressed.h" 00025 00026 namespace Spm 00027 { 00028 namespace Util 00029 { 00030 typedef enum{BZ2,GZ,NO} compressor_e; 00031 00036 class TarFile : public Compressed 00037 { 00038 private: 00039 void listFiles (); 00040 compressor_e compressor; 00041 public: 00045 TarFile (const boost::filesystem::path & file); 00046 00052 bool uncompress (const boost::filesystem::path & dest); 00053 00060 bool extract (const std::string & file, 00061 const boost::filesystem::path & to); 00062 }; 00063 } 00064 } 00065 #endif