00001 /* vim: set sw=4 sts=4 et foldmethod=syntax : */ 00002 00003 /* 00004 * Copyright (c) 2007 Danny van Dyk 00005 * 00006 * This file is part of the Paludis package manager. Paludis is free software; 00007 * you can redistribute it and/or modify it under the terms of the GNU General 00008 * Public License version 2, as published by the Free Software Foundation. 00009 * 00010 * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY 00011 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00012 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 00013 * details. 00014 * 00015 * You should have received a copy of the GNU General Public License along with 00016 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple 00017 * Place, Suite 330, Boston, MA 02111-1307 USA 00018 */ 00019 00020 #ifndef PALUDIS_GUARD_PALUDIS_FIND_UNUSED_PACKAGES_TASK_HH 00021 #define PALUDIS_GUARD_PALUDIS_FIND_UNUSED_PACKAGES_TASK_HH 1 00022 00023 #include <paludis/util/instantiation_policy.hh> 00024 #include <paludis/package_id-fwd.hh> 00025 #include <paludis/name-fwd.hh> 00026 #include <paludis/environment-fwd.hh> 00027 #include <paludis/repository-fwd.hh> 00028 00029 /** \file 00030 * Declarations for FindUnusedPackagesTask. 00031 * 00032 * \ingroup g_tasks 00033 * 00034 * \section Examples 00035 * 00036 * - None at this time. 00037 */ 00038 00039 namespace paludis 00040 { 00041 /** 00042 * Task to find unused package versions for a given package name. 00043 * 00044 * \ingroup g_tasks 00045 * \nosubgrouping 00046 */ 00047 class PALUDIS_VISIBLE FindUnusedPackagesTask : 00048 InstantiationPolicy<FindUnusedPackagesTask, instantiation_method::NonCopyableTag> 00049 { 00050 private: 00051 const Environment * const _env; 00052 const Repository * const _repo; 00053 00054 public: 00055 ///\name Basic operations 00056 ///\{ 00057 00058 FindUnusedPackagesTask(const Environment * const env, const Repository * const repo) : 00059 _env(env), 00060 _repo(repo) 00061 { 00062 } 00063 00064 virtual ~FindUnusedPackagesTask(); 00065 00066 ///\} 00067 00068 /** 00069 * Run the task. 00070 */ 00071 std::tr1::shared_ptr<const PackageIDSequence> execute(const QualifiedPackageName &); 00072 }; 00073 } 00074 00075 #endif