00001 /* -*- Mode:c++ -*- */ 00002 /* 00003 * this is part of Spm 00004 * 00005 * Copyright (c) 2008 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 UNINSTALLATION_H 00022 #define UNINSTALLATION_H 00023 00024 #include <core/action.h> 00025 #include <core/branch.h> 00026 #include <core/installedVersion.h> 00027 #include <core/package.h> 00028 #include <core/set.h> 00029 00030 namespace Spm 00031 { 00032 namespace Core 00033 { 00034 class Uninstallation : public Action 00035 { 00036 friend class PackageManager; 00037 Versionned * version_; 00038 Element * element_; 00039 Uninstallation (Versionned * version); 00040 Uninstallation (Element * element); 00041 void uninstall (Branch * branch); 00042 void uninstall (InstalledVersion * version); 00043 void uninstall (Package * p); 00044 void uninstall (Set * s); 00045 void doRun (); 00046 }; 00047 } 00048 } 00049 00050 #endif