diff options
author | 2007-10-23 22:54:02 +0000 | |
---|---|---|
committer | 2007-10-23 22:54:02 +0000 | |
commit | a754f6ffa1487199f1bd2a2c3c7b56add5854973 (patch) | |
tree | d9588e61627bf09c580f4eb3e70dc7947a000d05 /0.26.0_alpha1/paludis/repositories/gems/installed_gems_repository.hh | |
parent | c897c1753eb9baa7146660d892c1a94e0483ec9a (diff) | |
download | paludis-a754f6ffa1487199f1bd2a2c3c7b56add5854973.tar.gz paludis-a754f6ffa1487199f1bd2a2c3c7b56add5854973.tar.xz |
Tag release 0.26.0_alpha10.26.0_alpha1
Diffstat (limited to '0.26.0_alpha1/paludis/repositories/gems/installed_gems_repository.hh')
-rw-r--r-- | 0.26.0_alpha1/paludis/repositories/gems/installed_gems_repository.hh | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/0.26.0_alpha1/paludis/repositories/gems/installed_gems_repository.hh b/0.26.0_alpha1/paludis/repositories/gems/installed_gems_repository.hh new file mode 100644 index 000000000..8d1cf2aba --- /dev/null +++ b/0.26.0_alpha1/paludis/repositories/gems/installed_gems_repository.hh @@ -0,0 +1,104 @@ +/* vim: set sw=4 sts=4 et foldmethod=syntax : */ + +/* + * Copyright (c) 2007 Ciaran McCreesh <ciaran.mccreesh@blueyonder.co.uk> + * + * This file is part of the Paludis package manager. Paludis is free software; + * you can redistribute it and/or modify it under the terms of the GNU General + * Public License version 2, as published by the Free Software Foundation. + * + * Paludis 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., 59 Temple + * Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef PALUDIS_GUARD_PALUDIS_REPOSITORIES_GEMS_INSTALLED_GEMS_REPOSITORY_HH +#define PALUDIS_GUARD_PALUDIS_REPOSITORIES_GEMS_INSTALLED_GEMS_REPOSITORY_HH 1 + +#include <paludis/repository.hh> +#include <paludis/repositories/gems/params-fwd.hh> +#include <paludis/util/private_implementation_pattern.hh> +#include <paludis/util/tr1_memory.hh> + +namespace paludis +{ + /** + * Repository for installed Gem packages. + * + * \ingroup grpgemsrepository + * \nosubgrouping + */ + class PALUDIS_VISIBLE InstalledGemsRepository : + public Repository, + public RepositoryDestinationInterface, + public RepositoryInstalledInterface, + public tr1::enable_shared_from_this<InstalledGemsRepository>, + private PrivateImplementationPattern<InstalledGemsRepository> + { + private: + void need_category_names() const; + void need_ids() const; + + protected: + /* RepositoryInstalledInterface */ + + virtual FSEntry root() const PALUDIS_ATTRIBUTE((warn_unused_result)); + + /* Repository */ + + virtual tr1::shared_ptr<const PackageIDSequence> do_package_ids( + const QualifiedPackageName &) const + PALUDIS_ATTRIBUTE((warn_unused_result)); + + virtual tr1::shared_ptr<const QualifiedPackageNameSet> do_package_names( + const CategoryNamePart &) const + PALUDIS_ATTRIBUTE((warn_unused_result)); + + virtual tr1::shared_ptr<const CategoryNamePartSet> do_category_names() const + PALUDIS_ATTRIBUTE((warn_unused_result)); + + virtual bool do_has_package_named(const QualifiedPackageName &) const + PALUDIS_ATTRIBUTE((warn_unused_result)); + + virtual bool do_has_category_named(const CategoryNamePart &) const + PALUDIS_ATTRIBUTE((warn_unused_result)); + + virtual bool do_some_ids_might_support_action(const SupportsActionTestBase &) const; + + public: + /** + * Constructor. + */ + InstalledGemsRepository(const gems::InstalledRepositoryParams &); + + /** + * Destructor. + */ + ~InstalledGemsRepository(); + + virtual void invalidate(); + + virtual void invalidate_masks(); + + /* RepositoryDestinationInterface */ + + virtual bool is_suitable_destination_for(const PackageID &) const + PALUDIS_ATTRIBUTE((warn_unused_result)); + + virtual bool is_default_destination() const + PALUDIS_ATTRIBUTE((warn_unused_result)); + + virtual bool want_pre_post_phases() const + PALUDIS_ATTRIBUTE((warn_unused_result)); + + virtual void merge(const MergeOptions &) PALUDIS_ATTRIBUTE((noreturn)); + }; +} + + +#endif |