diff options
author | 2011-01-09 10:23:12 +0000 | |
---|---|---|
committer | 2011-01-09 10:23:12 +0000 | |
commit | 7a2c9e974666881f44406c88189ae546a67ff0b7 (patch) | |
tree | f6846da02bf779a262f58e5042f3fa1bbf7415d3 /paludis/repositories | |
parent | 7f7c79fcc67df4fae498ca943e36592d3f7a3ad2 (diff) | |
download | paludis-7a2c9e974666881f44406c88189ae546a67ff0b7.tar.gz paludis-7a2c9e974666881f44406c88189ae546a67ff0b7.tar.xz |
Rework Pimp to avoid ImpPtr ickiness
Fixes: ticket:1070
Diffstat (limited to 'paludis/repositories')
174 files changed, 583 insertions, 569 deletions
diff --git a/paludis/repositories/accounts/accounts_dep_key.cc b/paludis/repositories/accounts/accounts_dep_key.cc index fdd909870..06b2f5494 100644 --- a/paludis/repositories/accounts/accounts_dep_key.cc +++ b/paludis/repositories/accounts/accounts_dep_key.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2009, 2010 Ciaran McCreesh + * Copyright (c) 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -82,7 +82,7 @@ namespace paludis AccountsDepKey::AccountsDepKey(const Environment * const e, const std::shared_ptr<const Set<std::string> > & s) : - Pimp<AccountsDepKey>(e, s) + _imp(e, s) { } diff --git a/paludis/repositories/accounts/accounts_dep_key.hh b/paludis/repositories/accounts/accounts_dep_key.hh index 177e20ac5..d4c3decd0 100644 --- a/paludis/repositories/accounts/accounts_dep_key.hh +++ b/paludis/repositories/accounts/accounts_dep_key.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2009, 2010 Ciaran McCreesh + * Copyright (c) 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -28,9 +28,11 @@ namespace paludis namespace accounts_repository { class AccountsDepKey : - public MetadataSpecTreeKey<DependencySpecTree>, - private Pimp<AccountsDepKey> + public MetadataSpecTreeKey<DependencySpecTree> { + private: + Pimp<AccountsDepKey> _imp; + public: AccountsDepKey(const Environment * const e, const std::shared_ptr<const Set<std::string> > &); diff --git a/paludis/repositories/accounts/accounts_id.cc b/paludis/repositories/accounts/accounts_id.cc index 8995fac0a..fd0d66a0a 100644 --- a/paludis/repositories/accounts/accounts_id.cc +++ b/paludis/repositories/accounts/accounts_id.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2009, 2010 Ciaran McCreesh + * Copyright (c) 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -122,8 +122,7 @@ AccountsID::AccountsID(const Environment * const e, const QualifiedPackageName & q, const RepositoryName & r, const std::shared_ptr<const MetadataCollectionKey<Set<std::string> > > & f, const FSPath & l, const bool u, const bool m) : - Pimp<AccountsID>(e, q, r, f, l, u, m), - _imp(Pimp<AccountsID>::_imp) + _imp(e, q, r, f, l, u, m) { if (_imp->mask) add_mask(_imp->mask); diff --git a/paludis/repositories/accounts/accounts_id.hh b/paludis/repositories/accounts/accounts_id.hh index 88b90b211..f600313b3 100644 --- a/paludis/repositories/accounts/accounts_id.hh +++ b/paludis/repositories/accounts/accounts_id.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2009, 2010 Ciaran McCreesh + * Copyright (c) 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -31,11 +31,10 @@ namespace paludis class AccountsID : public PackageID, - private Pimp<AccountsID>, public std::enable_shared_from_this<AccountsID> { private: - Pimp<AccountsID>::ImpPtr & _imp; + Pimp<AccountsID> _imp; void _add_metadata_keys() const; void _need_file_keys() const; diff --git a/paludis/repositories/accounts/accounts_repository.cc b/paludis/repositories/accounts/accounts_repository.cc index 02af0953f..483c84cfb 100644 --- a/paludis/repositories/accounts/accounts_repository.cc +++ b/paludis/repositories/accounts/accounts_repository.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2009, 2010 Ciaran McCreesh + * Copyright (c) 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -107,7 +107,6 @@ namespace paludis } AccountsRepository::AccountsRepository(const AccountsRepositoryParams & p) : - Pimp<AccountsRepository>(p.name(), p), Repository( p.environment(), p.name(), @@ -119,13 +118,12 @@ AccountsRepository::AccountsRepository(const AccountsRepositoryParams & p) : n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - _imp(Pimp<AccountsRepository>::_imp) + _imp(p.name(), p) { _add_metadata_keys(); } AccountsRepository::AccountsRepository(const InstalledAccountsRepositoryParams & p) : - Pimp<AccountsRepository>(p.name(), p), Repository( p.environment(), p.name(), @@ -137,7 +135,7 @@ AccountsRepository::AccountsRepository(const InstalledAccountsRepositoryParams & n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - _imp(Pimp<AccountsRepository>::_imp) + _imp(p.name(), p) { _add_metadata_keys(); } diff --git a/paludis/repositories/accounts/accounts_repository.hh b/paludis/repositories/accounts/accounts_repository.hh index 5dfac6454..78d030791 100644 --- a/paludis/repositories/accounts/accounts_repository.hh +++ b/paludis/repositories/accounts/accounts_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2009, 2010 Ciaran McCreesh + * Copyright (c) 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -53,13 +53,12 @@ namespace paludis }; class PALUDIS_VISIBLE AccountsRepository : - private Pimp<AccountsRepository>, public Repository, public RepositoryDestinationInterface, public std::enable_shared_from_this<AccountsRepository> { private: - Pimp<AccountsRepository>::ImpPtr & _imp; + Pimp<AccountsRepository> _imp; void _add_metadata_keys(); diff --git a/paludis/repositories/accounts/accounts_repository_store.cc b/paludis/repositories/accounts/accounts_repository_store.cc index 279c72bb2..e32d3d32e 100644 --- a/paludis/repositories/accounts/accounts_repository_store.cc +++ b/paludis/repositories/accounts/accounts_repository_store.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2009, 2010 Ciaran McCreesh + * Copyright (c) 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -87,7 +87,7 @@ AccountsRepositoryStore::AccountsRepositoryStore( const Environment * const env, const RepositoryName & r, const bool installed) : - Pimp<AccountsRepositoryStore>(env, r, installed) + _imp(env, r, installed) { _load(r); } diff --git a/paludis/repositories/accounts/accounts_repository_store.hh b/paludis/repositories/accounts/accounts_repository_store.hh index 271cf3c8a..915b71546 100644 --- a/paludis/repositories/accounts/accounts_repository_store.hh +++ b/paludis/repositories/accounts/accounts_repository_store.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2009, 2010 Ciaran McCreesh + * Copyright (c) 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -35,10 +35,11 @@ namespace paludis { struct AccountsRepository; - class PALUDIS_VISIBLE AccountsRepositoryStore : - private Pimp<AccountsRepositoryStore> + class PALUDIS_VISIBLE AccountsRepositoryStore { private: + Pimp<AccountsRepositoryStore> _imp; + void _load(const RepositoryName &); void _load_one( diff --git a/paludis/repositories/accounts/installed_accounts_id.cc b/paludis/repositories/accounts/installed_accounts_id.cc index 295e2bf1b..d58fc8484 100644 --- a/paludis/repositories/accounts/installed_accounts_id.cc +++ b/paludis/repositories/accounts/installed_accounts_id.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2009, 2010 Ciaran McCreesh + * Copyright (c) 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -98,8 +98,7 @@ namespace paludis InstalledAccountsID::InstalledAccountsID(const Environment * const e, const QualifiedPackageName & q, const RepositoryName & r, const bool u) : - Pimp<InstalledAccountsID>(e, q, r, u), - _imp(Pimp<InstalledAccountsID>::_imp) + _imp(e, q, r, u) { add_metadata_key(_imp->behaviours_key); } diff --git a/paludis/repositories/accounts/installed_accounts_id.hh b/paludis/repositories/accounts/installed_accounts_id.hh index 6d09a2edb..376d9d689 100644 --- a/paludis/repositories/accounts/installed_accounts_id.hh +++ b/paludis/repositories/accounts/installed_accounts_id.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2009, 2010 Ciaran McCreesh + * Copyright (c) 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -31,11 +31,10 @@ namespace paludis class InstalledAccountsID : public PackageID, - private Pimp<InstalledAccountsID>, public std::enable_shared_from_this<InstalledAccountsID> { private: - Pimp<InstalledAccountsID>::ImpPtr & _imp; + Pimp<InstalledAccountsID> _imp; void _add_metadata_keys() const; diff --git a/paludis/repositories/cran/cran_installed_repository.cc b/paludis/repositories/cran/cran_installed_repository.cc index 6e86871aa..77f6459fe 100644 --- a/paludis/repositories/cran/cran_installed_repository.cc +++ b/paludis/repositories/cran/cran_installed_repository.cc @@ -2,7 +2,7 @@ /* * Copyright (c) 2006, 2007 Danny van Dyk - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -169,8 +169,7 @@ CRANInstalledRepository::CRANInstalledRepository(const CRANInstalledRepositoryPa n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - Pimp<CRANInstalledRepository>(p), - _imp(Pimp<CRANInstalledRepository>::_imp) + _imp(p) { _add_metadata_keys(); } diff --git a/paludis/repositories/cran/cran_installed_repository.hh b/paludis/repositories/cran/cran_installed_repository.hh index 1886bb4a1..2e3f71baa 100644 --- a/paludis/repositories/cran/cran_installed_repository.hh +++ b/paludis/repositories/cran/cran_installed_repository.hh @@ -2,7 +2,7 @@ /* * Copyright (c) 2006 Danny van Dyk - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -63,11 +63,11 @@ namespace paludis */ class PALUDIS_VISIBLE CRANInstalledRepository : public Repository, - public RepositoryDestinationInterface, - public Pimp<CRANInstalledRepository> + public RepositoryDestinationInterface { private: - Pimp<CRANInstalledRepository>::ImpPtr & _imp; + Pimp<CRANInstalledRepository> _imp; + void _add_metadata_keys() const; void need_ids() const; diff --git a/paludis/repositories/cran/cran_package_id.cc b/paludis/repositories/cran/cran_package_id.cc index e9e42f232..63ab526b7 100644 --- a/paludis/repositories/cran/cran_package_id.cc +++ b/paludis/repositories/cran/cran_package_id.cc @@ -2,7 +2,7 @@ /* * Copyright (c) 2006, 2007 Danny van Dyk - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -113,8 +113,7 @@ namespace paludis } CRANPackageID::CRANPackageID(const Environment * const env, const RepositoryName & r, const FSPath & f) : - Pimp<CRANPackageID>(env, r, f), - _imp(Pimp<CRANPackageID>::_imp) + _imp(env, r, f) { Context context("When parsing file '" + stringify(f) + "' to create a CRAN Package ID:"); @@ -283,8 +282,7 @@ CRANPackageID::CRANPackageID(const Environment * const env, const RepositoryName CRANPackageID::CRANPackageID(const Environment * const e, const RepositoryName & c, const CRANPackageID * const r, const std::string & t) : - Pimp<CRANPackageID>(e, c, r, t), - _imp(Pimp<CRANPackageID>::_imp) + _imp(e, c, r, t) { Context context("When creating contained ID '" + stringify(t) + "' in " + stringify(*r) + "':"); diff --git a/paludis/repositories/cran/cran_package_id.hh b/paludis/repositories/cran/cran_package_id.hh index 7cbc26e3e..6770d77a0 100644 --- a/paludis/repositories/cran/cran_package_id.hh +++ b/paludis/repositories/cran/cran_package_id.hh @@ -2,7 +2,7 @@ /* * Copyright (c) 2006 Danny van Dyk - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -32,11 +32,10 @@ namespace paludis { class PALUDIS_VISIBLE CRANPackageID : public PackageID, - private Pimp<CRANPackageID>, public std::enable_shared_from_this<CRANPackageID> { private: - Pimp<CRANPackageID>::ImpPtr & _imp; + Pimp<CRANPackageID> _imp; protected: virtual void need_keys_added() const; diff --git a/paludis/repositories/cran/cran_repository.cc b/paludis/repositories/cran/cran_repository.cc index b09bcf9f1..3231f1637 100644 --- a/paludis/repositories/cran/cran_repository.cc +++ b/paludis/repositories/cran/cran_repository.cc @@ -2,7 +2,7 @@ /* * Copyright (c) 2006, 2007 Danny van Dyk - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -122,8 +122,7 @@ CRANRepository::CRANRepository(const CRANRepositoryParams & p) : n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - Pimp<CRANRepository>(p, std::make_shared<Mutex>()), - _imp(Pimp<CRANRepository>::_imp) + _imp(p, std::make_shared<Mutex>()) { _add_metadata_keys(); } diff --git a/paludis/repositories/cran/cran_repository.hh b/paludis/repositories/cran/cran_repository.hh index e7a4e164a..f4b304191 100644 --- a/paludis/repositories/cran/cran_repository.hh +++ b/paludis/repositories/cran/cran_repository.hh @@ -2,7 +2,7 @@ /* * Copyright (c) 2006 Danny van Dyk - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -74,11 +74,11 @@ namespace paludis */ class PALUDIS_VISIBLE CRANRepository : public Repository, - private Pimp<CRANRepository>, public std::enable_shared_from_this<CRANRepository> { private: - Pimp<CRANRepository>::ImpPtr & _imp; + Pimp<CRANRepository> _imp; + void _add_metadata_keys() const; void need_ids() const; diff --git a/paludis/repositories/cran/description_file.cc b/paludis/repositories/cran/description_file.cc index d1045e9b1..919fb6298 100644 --- a/paludis/repositories/cran/description_file.cc +++ b/paludis/repositories/cran/description_file.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -39,7 +39,7 @@ namespace paludis } DescriptionFile::DescriptionFile(const Source & sr) : - Pimp<DescriptionFile>() + _imp() { Context c("When parsing CRAN description file '" + sr.filename() + "':"); diff --git a/paludis/repositories/cran/description_file.hh b/paludis/repositories/cran/description_file.hh index 7984cd84d..1d292a1bc 100644 --- a/paludis/repositories/cran/description_file.hh +++ b/paludis/repositories/cran/description_file.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2011 Ciaran McCreesh * * 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 @@ -28,10 +28,11 @@ namespace paludis namespace cranrepository { class PALUDIS_VISIBLE DescriptionFile : - public ConfigFile, - private Pimp<DescriptionFile> + public ConfigFile { private: + Pimp<DescriptionFile> _imp; + void _line(const std::string &); public: diff --git a/paludis/repositories/cran/keys.cc b/paludis/repositories/cran/keys.cc index 019c40972..835f4dbdb 100644 --- a/paludis/repositories/cran/keys.cc +++ b/paludis/repositories/cran/keys.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -159,8 +159,7 @@ namespace paludis DepKey::DepKey(const Environment * const e, const std::string & r, const std::string & h, const std::string & v, const std::shared_ptr<const DependenciesLabelSequence> & s, const MetadataKeyType t) : - Pimp<DepKey>(e, v, s, r, h, t), - _imp(Pimp<DepKey>::_imp) + _imp(e, v, s, r, h, t) { } diff --git a/paludis/repositories/cran/keys.hh b/paludis/repositories/cran/keys.hh index 00b0e9038..56a8e1c8b 100644 --- a/paludis/repositories/cran/keys.hh +++ b/paludis/repositories/cran/keys.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -86,11 +86,10 @@ namespace paludis }; class DepKey : - public MetadataSpecTreeKey<DependencySpecTree>, - private Pimp<DepKey> + public MetadataSpecTreeKey<DependencySpecTree> { private: - Pimp<DepKey>::ImpPtr & _imp; + Pimp<DepKey> _imp; public: DepKey(const Environment * const, diff --git a/paludis/repositories/cran/masks.cc b/paludis/repositories/cran/masks.cc index 1612f619a..2afc1123b 100644 --- a/paludis/repositories/cran/masks.cc +++ b/paludis/repositories/cran/masks.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -42,7 +42,7 @@ namespace paludis } BrokenMask::BrokenMask(const char c, const std::string & d, const std::string & e) : - Pimp<BrokenMask>(c, d, e) + _imp(c, d, e) { } diff --git a/paludis/repositories/cran/masks.hh b/paludis/repositories/cran/masks.hh index 58d277b67..d2f8209fa 100644 --- a/paludis/repositories/cran/masks.hh +++ b/paludis/repositories/cran/masks.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007 Ciaran McCreesh + * Copyright (c) 2007, 2011 Ciaran McCreesh * * 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 @@ -28,9 +28,11 @@ namespace paludis namespace cranrepository { class BrokenMask : - public UnsupportedMask, - private Pimp<BrokenMask> + public UnsupportedMask { + private: + Pimp<BrokenMask> _imp; + public: BrokenMask(const char, const std::string &, const std::string &); ~BrokenMask(); diff --git a/paludis/repositories/cran/spec_tree_pretty_printer.cc b/paludis/repositories/cran/spec_tree_pretty_printer.cc index 40e43399d..bd18c6714 100644 --- a/paludis/repositories/cran/spec_tree_pretty_printer.cc +++ b/paludis/repositories/cran/spec_tree_pretty_printer.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -57,7 +57,7 @@ namespace paludis SpecTreePrettyPrinter::SpecTreePrettyPrinter( const PrettyPrinter & p, const PrettyPrintOptions & o) : - Pimp<SpecTreePrettyPrinter>(p, o) + _imp(p, o) { } diff --git a/paludis/repositories/cran/spec_tree_pretty_printer.hh b/paludis/repositories/cran/spec_tree_pretty_printer.hh index 8b1ca8cc1..e47753e9d 100644 --- a/paludis/repositories/cran/spec_tree_pretty_printer.hh +++ b/paludis/repositories/cran/spec_tree_pretty_printer.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -31,11 +31,13 @@ namespace paludis { namespace cranrepository { - class PALUDIS_VISIBLE SpecTreePrettyPrinter : - private Pimp<SpecTreePrettyPrinter> + class PALUDIS_VISIBLE SpecTreePrettyPrinter { friend std::ostream & operator<< (std::ostream &, const SpecTreePrettyPrinter &); + private: + Pimp<SpecTreePrettyPrinter> _imp; + public: SpecTreePrettyPrinter( const PrettyPrinter & p, const PrettyPrintOptions &); diff --git a/paludis/repositories/e/aa_visitor.cc b/paludis/repositories/e/aa_visitor.cc index e1b404891..14f5b168d 100644 --- a/paludis/repositories/e/aa_visitor.cc +++ b/paludis/repositories/e/aa_visitor.cc @@ -51,7 +51,7 @@ namespace paludis } AAVisitor::AAVisitor() : - Pimp<AAVisitor>() + _imp() { } diff --git a/paludis/repositories/e/aa_visitor.hh b/paludis/repositories/e/aa_visitor.hh index 1dec5cc8d..2a87a7d27 100644 --- a/paludis/repositories/e/aa_visitor.hh +++ b/paludis/repositories/e/aa_visitor.hh @@ -41,9 +41,11 @@ namespace paludis * * \ingroup grpaavisitor */ - class PALUDIS_VISIBLE AAVisitor : - private Pimp<AAVisitor> + class PALUDIS_VISIBLE AAVisitor { + private: + Pimp<AAVisitor> _imp; + public: ///\name Basic operations ///\{ diff --git a/paludis/repositories/e/check_fetched_files_visitor.cc b/paludis/repositories/e/check_fetched_files_visitor.cc index a95db2d20..94f436569 100644 --- a/paludis/repositories/e/check_fetched_files_visitor.cc +++ b/paludis/repositories/e/check_fetched_files_visitor.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -118,7 +118,7 @@ CheckFetchedFilesVisitor::CheckFetchedFilesVisitor( const bool x, const bool u, const bool nm) : - Pimp<CheckFetchedFilesVisitor>(e, i, d, c, n, m2, um, md, x, u, nm) + _imp(e, i, d, c, n, m2, um, md, x, u, nm) { } diff --git a/paludis/repositories/e/check_fetched_files_visitor.hh b/paludis/repositories/e/check_fetched_files_visitor.hh index 6e96b6706..72792fd5b 100644 --- a/paludis/repositories/e/check_fetched_files_visitor.hh +++ b/paludis/repositories/e/check_fetched_files_visitor.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -35,10 +35,11 @@ namespace paludis { namespace erepository { - class PALUDIS_VISIBLE CheckFetchedFilesVisitor : - private Pimp<CheckFetchedFilesVisitor> + class PALUDIS_VISIBLE CheckFetchedFilesVisitor { private: + Pimp<CheckFetchedFilesVisitor> _imp; + bool check_distfile_manifest(const FSPath & distfile); public: diff --git a/paludis/repositories/e/dependencies_rewriter.cc b/paludis/repositories/e/dependencies_rewriter.cc index 4264f940a..ceb5e76cb 100644 --- a/paludis/repositories/e/dependencies_rewriter.cc +++ b/paludis/repositories/e/dependencies_rewriter.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -90,7 +90,7 @@ namespace paludis } DependenciesRewriter::DependenciesRewriter() : - Pimp<DependenciesRewriter>() + _imp() { } diff --git a/paludis/repositories/e/dependencies_rewriter.hh b/paludis/repositories/e/dependencies_rewriter.hh index f2f0c71f4..9996e14b9 100644 --- a/paludis/repositories/e/dependencies_rewriter.hh +++ b/paludis/repositories/e/dependencies_rewriter.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2011 Ciaran McCreesh * * 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 @@ -28,9 +28,11 @@ namespace paludis { namespace erepository { - class DependenciesRewriter : - private Pimp<DependenciesRewriter> + class DependenciesRewriter { + private: + Pimp<DependenciesRewriter> _imp; + public: DependenciesRewriter(); ~DependenciesRewriter(); diff --git a/paludis/repositories/e/e_choices_key.cc b/paludis/repositories/e/e_choices_key.cc index 10da64351..89635a490 100644 --- a/paludis/repositories/e/e_choices_key.cc +++ b/paludis/repositories/e/e_choices_key.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -92,7 +92,7 @@ EChoicesKey::EChoicesKey( const std::string & r, const std::string & h, const MetadataKeyType t, const std::shared_ptr<const ERepository> & p, const std::shared_ptr<const Map<ChoiceNameWithPrefix, std::string> > & d) : - Pimp<EChoicesKey>(e, i, p, d, r, h, t) + _imp(e, i, p, d, r, h, t) { } diff --git a/paludis/repositories/e/e_choices_key.hh b/paludis/repositories/e/e_choices_key.hh index 00e921e2e..1cbd48e4d 100644 --- a/paludis/repositories/e/e_choices_key.hh +++ b/paludis/repositories/e/e_choices_key.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2011 Ciaran McCreesh * * 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 @@ -34,10 +34,11 @@ namespace paludis class ERepositoryID; class EChoicesKey : - public MetadataValueKey<std::shared_ptr<const Choices> >, - private Pimp<EChoicesKey> + public MetadataValueKey<std::shared_ptr<const Choices> > { private: + Pimp<EChoicesKey> _imp; + void populate_iuse() const; void populate_myoptions() const; diff --git a/paludis/repositories/e/e_installed_repository.cc b/paludis/repositories/e/e_installed_repository.cc index 8bd29ab40..fda8d2247 100644 --- a/paludis/repositories/e/e_installed_repository.cc +++ b/paludis/repositories/e/e_installed_repository.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -75,8 +75,7 @@ namespace paludis EInstalledRepository::EInstalledRepository(const EInstalledRepositoryParams & p, const RepositoryName & n, const RepositoryCapabilities & c) : Repository(p.environment(), n, c), - Pimp<EInstalledRepository>(p), - _imp(Pimp<EInstalledRepository>::_imp) + _imp(p) { } diff --git a/paludis/repositories/e/e_installed_repository.hh b/paludis/repositories/e/e_installed_repository.hh index a0c47362a..36df43dcf 100644 --- a/paludis/repositories/e/e_installed_repository.hh +++ b/paludis/repositories/e/e_installed_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -44,11 +44,10 @@ namespace paludis class EInstalledRepository : public Repository, public RepositoryEnvironmentVariableInterface, - public RepositoryDestinationInterface, - private Pimp<EInstalledRepository> + public RepositoryDestinationInterface { private: - Pimp<EInstalledRepository>::ImpPtr & _imp; + Pimp<EInstalledRepository> _imp; protected: EInstalledRepository(const EInstalledRepositoryParams &, const RepositoryName &, const RepositoryCapabilities &); diff --git a/paludis/repositories/e/e_installed_repository_id.cc b/paludis/repositories/e/e_installed_repository_id.cc index 839a81736..e27057236 100644 --- a/paludis/repositories/e/e_installed_repository_id.cc +++ b/paludis/repositories/e/e_installed_repository_id.cc @@ -156,8 +156,8 @@ namespace paludis mutable std::shared_ptr<EInstalledRepositoryIDKeys> keys; /* fs location and eapi are special */ - std::shared_ptr<const MetadataValueKey<FSPath> > fs_location; - std::shared_ptr<const EAPI> eapi; + mutable std::shared_ptr<const MetadataValueKey<FSPath> > fs_location; + mutable std::shared_ptr<const EAPI> eapi; Imp(const QualifiedPackageName & q, const VersionSpec & v, const Environment * const e, @@ -176,8 +176,7 @@ EInstalledRepositoryID::EInstalledRepositoryID(const QualifiedPackageName & q, c const Environment * const e, const RepositoryName & r, const FSPath & f) : - Pimp<EInstalledRepositoryID>(q, v, e, r, f), - _imp(Pimp<EInstalledRepositoryID>::_imp) + _imp(q, v, e, r, f) { } diff --git a/paludis/repositories/e/e_installed_repository_id.hh b/paludis/repositories/e/e_installed_repository_id.hh index 330d54640..7d4765f4e 100644 --- a/paludis/repositories/e/e_installed_repository_id.hh +++ b/paludis/repositories/e/e_installed_repository_id.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -31,11 +31,10 @@ namespace paludis { class EInstalledRepositoryID : public ERepositoryID, - public std::enable_shared_from_this<EInstalledRepositoryID>, - private Pimp<EInstalledRepositoryID> + public std::enable_shared_from_this<EInstalledRepositoryID> { private: - Pimp<EInstalledRepositoryID>::ImpPtr & _imp; + Pimp<EInstalledRepositoryID> _imp; protected: virtual void need_keys_added() const; diff --git a/paludis/repositories/e/e_key.cc b/paludis/repositories/e/e_key.cc index 59205a4c4..23cc4536f 100644 --- a/paludis/repositories/e/e_key.cc +++ b/paludis/repositories/e/e_key.cc @@ -141,7 +141,7 @@ EDependenciesKey::EDependenciesKey( const std::shared_ptr<const ERepositoryID> & id, const std::string & r, const std::string & h, const std::string & v, const std::shared_ptr<const DependenciesLabelSequence> & l, const MetadataKeyType t) : - Pimp<EDependenciesKey>(e, id, v, l, r, h, t) + _imp(e, id, v, l, r, h, t) { } @@ -229,7 +229,7 @@ ELicenseKey::ELicenseKey( const std::shared_ptr<const EAPIMetadataVariable> & m, const std::shared_ptr<const EAPI> & p, const std::string & v, const MetadataKeyType t) : - Pimp<ELicenseKey>(e, v, m, p, t) + _imp(e, v, m, p, t) { } @@ -308,7 +308,7 @@ namespace paludis EFetchableURIKey::EFetchableURIKey(const Environment * const e, const std::shared_ptr<const ERepositoryID> & id, const std::shared_ptr<const EAPIMetadataVariable> & m, const std::string & v, const MetadataKeyType t) : - Pimp<EFetchableURIKey>(e, id, m, v, t) + _imp(e, id, m, v, t) { } @@ -425,7 +425,7 @@ ESimpleURIKey::ESimpleURIKey(const Environment * const e, const std::shared_ptr<const EAPIMetadataVariable> & m, const std::shared_ptr<const EAPI> & p, const std::string & v, const MetadataKeyType t) : - Pimp<ESimpleURIKey>(e, v, m, p, t) + _imp(e, v, m, p, t) { } @@ -506,7 +506,7 @@ EPlainTextSpecKey::EPlainTextSpecKey(const Environment * const e, const std::shared_ptr<const EAPIMetadataVariable> & m, const std::shared_ptr<const EAPI> & p, const std::string & v, const MetadataKeyType t) : - Pimp<EPlainTextSpecKey>(e, v, m, p, t) + _imp(e, v, m, p, t) { } @@ -589,7 +589,7 @@ EMyOptionsKey::EMyOptionsKey( const std::shared_ptr<const EAPIMetadataVariable> & m, const std::shared_ptr<const EAPI> & p, const std::string & v, const MetadataKeyType t) : - Pimp<EMyOptionsKey>(e, v, m, p, t) + _imp(e, v, m, p, t) { } @@ -671,7 +671,7 @@ ERequiredUseKey::ERequiredUseKey( const std::shared_ptr<const EAPIMetadataVariable> & m, const std::shared_ptr<const EAPI> & p, const std::string & v, const MetadataKeyType t) : - Pimp<ERequiredUseKey>(e, v, m, p, t) + _imp(e, v, m, p, t) { } @@ -753,7 +753,7 @@ EProvideKey::EProvideKey( const std::shared_ptr<const EAPIMetadataVariable> & m, const std::shared_ptr<const EAPI> & p, const std::string & v, const MetadataKeyType t) : - Pimp<EProvideKey>(e, v, m, p, t) + _imp(e, v, m, p, t) { } @@ -825,7 +825,7 @@ namespace paludis } EContentsKey::EContentsKey(const std::string & r, const std::string & h, const FSPath & v, const MetadataKeyType t) : - Pimp<EContentsKey>(v, r, h, t) + _imp(v, r, h, t) { } @@ -942,7 +942,7 @@ namespace paludis } EMTimeKey::EMTimeKey(const std::string & r, const std::string & h, const FSPath & v, const MetadataKeyType t) : - Pimp<EMTimeKey>(v, r, h, t) + _imp(v, r, h, t) { } diff --git a/paludis/repositories/e/e_key.hh b/paludis/repositories/e/e_key.hh index 3da58a1dd..13a7265f7 100644 --- a/paludis/repositories/e/e_key.hh +++ b/paludis/repositories/e/e_key.hh @@ -58,9 +58,11 @@ namespace paludis }; class EDependenciesKey : - public MetadataSpecTreeKey<DependencySpecTree>, - private Pimp<EDependenciesKey> + public MetadataSpecTreeKey<DependencySpecTree> { + private: + Pimp<EDependenciesKey> _imp; + public: EDependenciesKey( const Environment * const, @@ -86,9 +88,11 @@ namespace paludis }; class EFetchableURIKey : - public MetadataSpecTreeKey<FetchableURISpecTree>, - private Pimp<EFetchableURIKey> + public MetadataSpecTreeKey<FetchableURISpecTree> { + private: + Pimp<EFetchableURIKey> _imp; + public: EFetchableURIKey(const Environment * const, const std::shared_ptr<const ERepositoryID> &, @@ -113,9 +117,11 @@ namespace paludis }; class ESimpleURIKey : - public MetadataSpecTreeKey<SimpleURISpecTree>, - private Pimp<ESimpleURIKey> + public MetadataSpecTreeKey<SimpleURISpecTree> { + private: + Pimp<ESimpleURIKey> _imp; + public: ESimpleURIKey(const Environment * const, const std::shared_ptr<const EAPIMetadataVariable> &, @@ -136,9 +142,11 @@ namespace paludis }; class EPlainTextSpecKey : - public MetadataSpecTreeKey<PlainTextSpecTree>, - private Pimp<EPlainTextSpecKey> + public MetadataSpecTreeKey<PlainTextSpecTree> { + private: + Pimp<EPlainTextSpecKey> _imp; + public: EPlainTextSpecKey(const Environment * const, const std::shared_ptr<const EAPIMetadataVariable> &, @@ -159,9 +167,11 @@ namespace paludis }; class EMyOptionsKey : - public MetadataSpecTreeKey<PlainTextSpecTree>, - private Pimp<EMyOptionsKey> + public MetadataSpecTreeKey<PlainTextSpecTree> { + private: + Pimp<EMyOptionsKey> _imp; + public: EMyOptionsKey(const Environment * const, const std::shared_ptr<const EAPIMetadataVariable> &, @@ -182,9 +192,11 @@ namespace paludis }; class ERequiredUseKey : - public MetadataSpecTreeKey<RequiredUseSpecTree>, - private Pimp<ERequiredUseKey> + public MetadataSpecTreeKey<RequiredUseSpecTree> { + private: + Pimp<ERequiredUseKey> _imp; + public: ERequiredUseKey(const Environment * const, const std::shared_ptr<const EAPIMetadataVariable> &, @@ -205,9 +217,11 @@ namespace paludis }; class EProvideKey : - public MetadataSpecTreeKey<ProvideSpecTree>, - private Pimp<EProvideKey> + public MetadataSpecTreeKey<ProvideSpecTree> { + private: + Pimp<EProvideKey> _imp; + public: EProvideKey(const Environment * const, const std::shared_ptr<const EAPIMetadataVariable> &, @@ -228,9 +242,11 @@ namespace paludis }; class ELicenseKey : - public MetadataSpecTreeKey<LicenseSpecTree>, - private Pimp<ELicenseKey> + public MetadataSpecTreeKey<LicenseSpecTree> { + private: + Pimp<ELicenseKey> _imp; + public: ELicenseKey( const Environment * const, @@ -252,9 +268,11 @@ namespace paludis }; class EContentsKey : - public MetadataValueKey<std::shared_ptr<const Contents> >, - private Pimp<EContentsKey> + public MetadataValueKey<std::shared_ptr<const Contents> > { + private: + Pimp<EContentsKey> _imp; + public: EContentsKey(const std::string &, const std::string &, const FSPath &, const MetadataKeyType); ~EContentsKey(); @@ -268,9 +286,11 @@ namespace paludis }; class EMTimeKey : - public MetadataTimeKey, - private Pimp<EMTimeKey> + public MetadataTimeKey { + private: + Pimp<EMTimeKey> _imp; + public: EMTimeKey(const std::string &, const std::string &, const FSPath &, const MetadataKeyType); ~EMTimeKey(); diff --git a/paludis/repositories/e/e_keywords_key.cc b/paludis/repositories/e/e_keywords_key.cc index 71d05cfbc..65e4f48f4 100644 --- a/paludis/repositories/e/e_keywords_key.cc +++ b/paludis/repositories/e/e_keywords_key.cc @@ -137,7 +137,7 @@ namespace paludis } EKeywordsKeyStore::EKeywordsKeyStore() : - Pimp<EKeywordsKeyStore>() + _imp() { } diff --git a/paludis/repositories/e/e_keywords_key.hh b/paludis/repositories/e/e_keywords_key.hh index f839f2eaa..44218baf4 100644 --- a/paludis/repositories/e/e_keywords_key.hh +++ b/paludis/repositories/e/e_keywords_key.hh @@ -29,12 +29,13 @@ namespace paludis namespace erepository { class EKeywordsKeyStore : - private Pimp<EKeywordsKeyStore>, public Singleton<EKeywordsKeyStore> { friend class Singleton<EKeywordsKeyStore>; private: + Pimp<EKeywordsKeyStore> _imp; + EKeywordsKeyStore(); ~EKeywordsKeyStore(); diff --git a/paludis/repositories/e/e_mask.cc b/paludis/repositories/e/e_mask.cc index e25c1f3c3..a2f987811 100644 --- a/paludis/repositories/e/e_mask.cc +++ b/paludis/repositories/e/e_mask.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -42,7 +42,7 @@ namespace paludis } EUnacceptedMask::EUnacceptedMask(const char k, const std::string & d, const std::shared_ptr<const MetadataKey> & u) : - Pimp<EUnacceptedMask>(k, d, u) + _imp(k, d, u) { } @@ -87,7 +87,7 @@ namespace paludis } EUnsupportedMask::EUnsupportedMask(const char k, const std::string & d, const std::string & n) : - Pimp<EUnsupportedMask>(k, d, n) + _imp(k, d, n) { } @@ -134,7 +134,7 @@ namespace paludis } ERepositoryMask::ERepositoryMask(const char k, const std::string & d, const std::shared_ptr<const MetadataKey> & m) : - Pimp<ERepositoryMask>(k, d, m) + _imp(k, d, m) { } diff --git a/paludis/repositories/e/e_mask.hh b/paludis/repositories/e/e_mask.hh index 0379b597d..494755c6b 100644 --- a/paludis/repositories/e/e_mask.hh +++ b/paludis/repositories/e/e_mask.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2011 Ciaran McCreesh * * 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 @@ -28,9 +28,11 @@ namespace paludis namespace erepository { class EUnacceptedMask : - public UnacceptedMask, - private Pimp<EUnacceptedMask> + public UnacceptedMask { + private: + Pimp<EUnacceptedMask> _imp; + public: EUnacceptedMask(const char, const std::string &, const std::shared_ptr<const MetadataKey> &); ~EUnacceptedMask(); @@ -41,9 +43,11 @@ namespace paludis }; class EUnsupportedMask : - public UnsupportedMask, - private Pimp<EUnsupportedMask> + public UnsupportedMask { + private: + Pimp<EUnsupportedMask> _imp; + public: EUnsupportedMask(const char, const std::string &, const std::string &); ~EUnsupportedMask(); @@ -54,9 +58,11 @@ namespace paludis }; class ERepositoryMask : - public RepositoryMask, - private Pimp<ERepositoryMask> + public RepositoryMask { + private: + Pimp<ERepositoryMask> _imp; + public: ERepositoryMask(const char, const std::string &, const std::shared_ptr<const MetadataKey> &); ~ERepositoryMask(); diff --git a/paludis/repositories/e/e_repository.cc b/paludis/repositories/e/e_repository.cc index 4f56a4a0b..5d5d3bb9b 100644 --- a/paludis/repositories/e/e_repository.cc +++ b/paludis/repositories/e/e_repository.cc @@ -269,7 +269,7 @@ namespace paludis std::shared_ptr<const MetadataCollectionKey<Set<std::string> > > binary_keywords_filter; std::shared_ptr<const MetadataValueKey<FSPath> > accounts_repository_data_location_key; std::shared_ptr<const MetadataValueKey<FSPath> > e_updates_location_key; - std::shared_ptr<const MetadataValueKey<std::string> > accept_keywords_key; + mutable std::shared_ptr<const MetadataValueKey<std::string> > accept_keywords_key; std::shared_ptr<Map<std::string, std::string> > sync_hosts; std::shared_ptr<const MetadataCollectionKey<Map<std::string, std::string> > > sync_host_key; std::list<std::shared_ptr<const MetadataKey> > about_keys; @@ -528,8 +528,7 @@ ERepository::ERepository(const ERepositoryParams & p) : n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = (*DistributionData::get_instance()->distribution_from_string(p.environment()->distribution())).support_old_style_virtuals() ? this : 0 )), - Pimp<ERepository>(this, p), - _imp(Pimp<ERepository>::_imp) + _imp(this, p) { _add_metadata_keys(); } diff --git a/paludis/repositories/e/e_repository.hh b/paludis/repositories/e/e_repository.hh index 0ac71e691..8bb7e0302 100644 --- a/paludis/repositories/e/e_repository.hh +++ b/paludis/repositories/e/e_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -54,11 +54,11 @@ namespace paludis public RepositoryVirtualsInterface, public RepositoryDestinationInterface, public RepositoryManifestInterface, - public std::enable_shared_from_this<ERepository>, - private Pimp<ERepository> + public std::enable_shared_from_this<ERepository> { private: - Pimp<ERepository>::ImpPtr & _imp; + Pimp<ERepository> _imp; + void _add_metadata_keys() const; void need_mirrors() const; diff --git a/paludis/repositories/e/e_repository_mask_file.cc b/paludis/repositories/e/e_repository_mask_file.cc index fe286a6a4..9a548f14f 100644 --- a/paludis/repositories/e/e_repository_mask_file.cc +++ b/paludis/repositories/e/e_repository_mask_file.cc @@ -52,7 +52,7 @@ namespace paludis } MaskFile::MaskFile(const FSPath & f, const LineConfigFileOptions & opts) : - Pimp<MaskFile>() + _imp() { LineConfigFileOptions myopts(opts); myopts += lcfo_disallow_comments; diff --git a/paludis/repositories/e/e_repository_mask_file.hh b/paludis/repositories/e/e_repository_mask_file.hh index be1582fd2..2c2c11064 100644 --- a/paludis/repositories/e/e_repository_mask_file.hh +++ b/paludis/repositories/e/e_repository_mask_file.hh @@ -37,9 +37,11 @@ namespace paludis * * \ingroup grperepository */ - class PALUDIS_VISIBLE MaskFile : - private Pimp<MaskFile> + class PALUDIS_VISIBLE MaskFile { + private: + Pimp<MaskFile> _imp; + public: ///\name Basic operations ///\{ diff --git a/paludis/repositories/e/e_repository_news.cc b/paludis/repositories/e/e_repository_news.cc index f511c595c..f30e47547 100644 --- a/paludis/repositories/e/e_repository_news.cc +++ b/paludis/repositories/e/e_repository_news.cc @@ -111,7 +111,7 @@ namespace paludis ERepositoryNews::ERepositoryNews(const Environment * const e, const ERepository * const p, const erepository::ERepositoryParams & k) : - Pimp<ERepositoryNews>(e, p, k) + _imp(e, p, k) { } @@ -270,7 +270,7 @@ namespace paludis } NewsFile::NewsFile(const FSPath & our_filename) : - Pimp<NewsFile>() + _imp() { Context context("When parsing GLEP 42 news file '" + stringify(our_filename) + "':"); diff --git a/paludis/repositories/e/e_repository_news.hh b/paludis/repositories/e/e_repository_news.hh index cb3c274ef..2e2991803 100644 --- a/paludis/repositories/e/e_repository_news.hh +++ b/paludis/repositories/e/e_repository_news.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -41,9 +41,11 @@ namespace paludis * \ingroup grperepository * \nosubgrouping */ - class PALUDIS_VISIBLE ERepositoryNews : - private Pimp<ERepositoryNews> + class PALUDIS_VISIBLE ERepositoryNews { + private: + Pimp<ERepositoryNews> _imp; + public: ///\name Basic operations ///\{ @@ -73,9 +75,11 @@ namespace paludis * \ingroup grpnewsconfigfile * \nosubgrouping */ - class PALUDIS_VISIBLE NewsFile : - private Pimp<NewsFile> + class PALUDIS_VISIBLE NewsFile { + private: + Pimp<NewsFile> _imp; + public: ///\name Basic operations ///\{ diff --git a/paludis/repositories/e/e_repository_sets.cc b/paludis/repositories/e/e_repository_sets.cc index 4f5dfd879..c2331df37 100644 --- a/paludis/repositories/e/e_repository_sets.cc +++ b/paludis/repositories/e/e_repository_sets.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * Copyright (c) 2006 Danny van Dyk * * This file is part of the Paludis package manager. Paludis is free software; @@ -92,7 +92,7 @@ namespace paludis ERepositorySets::ERepositorySets(const Environment * const e, const ERepository * const p, const erepository::ERepositoryParams & k) : - Pimp<ERepositorySets>(e, p, k) + _imp(e, p, k) { } diff --git a/paludis/repositories/e/e_repository_sets.hh b/paludis/repositories/e/e_repository_sets.hh index e0e596130..c9420d23a 100644 --- a/paludis/repositories/e/e_repository_sets.hh +++ b/paludis/repositories/e/e_repository_sets.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2010, 2011 Ciaran McCreesh * Copyright (c) 2006 Danny van Dyk * * This file is part of the Paludis package manager. Paludis is free software; @@ -41,9 +41,11 @@ namespace paludis * \ingroup grperepository * \nosubgrouping */ - class PALUDIS_VISIBLE ERepositorySets : - private Pimp<ERepositorySets> + class PALUDIS_VISIBLE ERepositorySets { + private: + Pimp<ERepositorySets> _imp; + public: ///\name Basic operations ///\{ diff --git a/paludis/repositories/e/e_slot_key.cc b/paludis/repositories/e/e_slot_key.cc index aeaee8dcc..b3918776c 100644 --- a/paludis/repositories/e/e_slot_key.cc +++ b/paludis/repositories/e/e_slot_key.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -101,7 +101,7 @@ namespace paludis } ESlotKeyStore::ESlotKeyStore() : - Pimp<ESlotKeyStore>() + _imp() { } diff --git a/paludis/repositories/e/e_slot_key.hh b/paludis/repositories/e/e_slot_key.hh index 9402b1cd3..6b4e0710d 100644 --- a/paludis/repositories/e/e_slot_key.hh +++ b/paludis/repositories/e/e_slot_key.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -29,12 +29,13 @@ namespace paludis namespace erepository { class ESlotKeyStore : - private Pimp<ESlotKeyStore>, public Singleton<ESlotKeyStore> { friend class Singleton<ESlotKeyStore>; private: + Pimp<ESlotKeyStore> _imp; + ESlotKeyStore(); ~ESlotKeyStore(); diff --git a/paludis/repositories/e/e_string_set_key.cc b/paludis/repositories/e/e_string_set_key.cc index e7362f38c..76cb65bbb 100644 --- a/paludis/repositories/e/e_string_set_key.cc +++ b/paludis/repositories/e/e_string_set_key.cc @@ -136,7 +136,7 @@ namespace paludis } EStringSetKeyStore::EStringSetKeyStore() : - Pimp<EStringSetKeyStore>() + _imp() { } diff --git a/paludis/repositories/e/e_string_set_key.hh b/paludis/repositories/e/e_string_set_key.hh index a9d71cbd1..880e20b41 100644 --- a/paludis/repositories/e/e_string_set_key.hh +++ b/paludis/repositories/e/e_string_set_key.hh @@ -29,12 +29,13 @@ namespace paludis namespace erepository { class EStringSetKeyStore : - private Pimp<EStringSetKeyStore>, public Singleton<EStringSetKeyStore> { friend class Singleton<EStringSetKeyStore>; private: + Pimp<EStringSetKeyStore> _imp; + EStringSetKeyStore(); ~EStringSetKeyStore(); diff --git a/paludis/repositories/e/e_stripper.cc b/paludis/repositories/e/e_stripper.cc index ec0fcd6b7..0ed20a438 100644 --- a/paludis/repositories/e/e_stripper.cc +++ b/paludis/repositories/e/e_stripper.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -47,8 +47,7 @@ EStripper::EStripper(const EStripperOptions & options) : n::split() = options.split(), n::strip() = options.strip() )), - Pimp<EStripper>(options), - _imp(Pimp<EStripper>::_imp) + _imp(options) { } diff --git a/paludis/repositories/e/e_stripper.hh b/paludis/repositories/e/e_stripper.hh index 70924bbc3..d0c4fb507 100644 --- a/paludis/repositories/e/e_stripper.hh +++ b/paludis/repositories/e/e_stripper.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -50,11 +50,10 @@ namespace paludis }; class EStripper : - public Stripper, - private Pimp<EStripper> + public Stripper { private: - Pimp<EStripper>::ImpPtr & _imp; + Pimp<EStripper> _imp; protected: virtual void on_strip(const FSPath &); diff --git a/paludis/repositories/e/eapi.cc b/paludis/repositories/e/eapi.cc index bcbb87c0a..8b31b8bae 100644 --- a/paludis/repositories/e/eapi.cc +++ b/paludis/repositories/e/eapi.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -398,7 +398,7 @@ EAPIConfigurationError::EAPIConfigurationError(const std::string & s) throw () : } EAPIData::EAPIData() : - Pimp<EAPIData>() + _imp() { } @@ -440,7 +440,7 @@ namespace paludis } EAPILabels::EAPILabels(const std::string & s) : - Pimp<EAPILabels>() + _imp() { std::vector<std::string> tokens; @@ -461,7 +461,7 @@ EAPILabels::EAPILabels(const std::string & s) : } EAPILabels::EAPILabels(const EAPILabels & other) : - Pimp<EAPILabels>(*other._imp.operator-> ()) + _imp(*other._imp.operator-> ()) { } diff --git a/paludis/repositories/e/eapi.hh b/paludis/repositories/e/eapi.hh index ae977fb98..ec2387108 100644 --- a/paludis/repositories/e/eapi.hh +++ b/paludis/repositories/e/eapi.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -211,9 +211,11 @@ namespace paludis namespace erepository { - class PALUDIS_VISIBLE EAPILabels : - private Pimp<EAPILabels> + class PALUDIS_VISIBLE EAPILabels { + private: + Pimp<EAPILabels> _imp; + public: EAPILabels(const std::string &); EAPILabels(const EAPILabels &); @@ -245,12 +247,13 @@ namespace paludis * \nosubgrouping */ class PALUDIS_VISIBLE EAPIData : - private Pimp<EAPIData>, public Singleton<EAPIData> { friend class Singleton<EAPIData>; private: + Pimp<EAPIData> _imp; + EAPIData(); ~EAPIData(); diff --git a/paludis/repositories/e/eapi_phase.cc b/paludis/repositories/e/eapi_phase.cc index 692f00814..be8ba8c0e 100644 --- a/paludis/repositories/e/eapi_phase.cc +++ b/paludis/repositories/e/eapi_phase.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -62,7 +62,7 @@ namespace paludis } EAPIPhase::EAPIPhase(const std::string & s) : - Pimp<EAPIPhase>() + _imp() { Context c("When parsing EAPI phase '" + s + "'"); @@ -111,7 +111,7 @@ EAPIPhase::end_commands() const } EAPIPhases::EAPIPhases(const std::string & s) : - Pimp<EAPIPhases>() + _imp() { Context c("When parsing EAPI phases '" + s + "'"); diff --git a/paludis/repositories/e/eapi_phase.hh b/paludis/repositories/e/eapi_phase.hh index 86bb324bf..dce172afb 100644 --- a/paludis/repositories/e/eapi_phase.hh +++ b/paludis/repositories/e/eapi_phase.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2011 Ciaran McCreesh * * 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 @@ -35,9 +35,11 @@ namespace paludis * \ingroup grperepository * \ingroup grpeapi */ - class EAPIPhase : - private Pimp<EAPIPhase> + class EAPIPhase { + private: + Pimp<EAPIPhase> _imp; + public: ///\name Basic operations ///\{ @@ -68,9 +70,11 @@ namespace paludis * \ingroup grperepository * \ingroup grpeapi */ - class EAPIPhases : - private Pimp<EAPIPhases> + class EAPIPhases { + private: + Pimp<EAPIPhases> _imp; + public: ///\name Basic operations ///\{ diff --git a/paludis/repositories/e/ebuild_flat_metadata_cache.cc b/paludis/repositories/e/ebuild_flat_metadata_cache.cc index ceb13c377..f840a1dc6 100644 --- a/paludis/repositories/e/ebuild_flat_metadata_cache.cc +++ b/paludis/repositories/e/ebuild_flat_metadata_cache.cc @@ -305,7 +305,7 @@ namespace EbuildFlatMetadataCache::EbuildFlatMetadataCache(const Environment * const v, const FSPath & f, const FSPath & e, std::time_t t, const std::shared_ptr<const EclassMtimes> & m, bool s) : - Pimp<EbuildFlatMetadataCache>(v, f, e, t, m, s) + _imp(v, f, e, t, m, s) { } diff --git a/paludis/repositories/e/ebuild_flat_metadata_cache.hh b/paludis/repositories/e/ebuild_flat_metadata_cache.hh index e8bdb72b6..bde1944cb 100644 --- a/paludis/repositories/e/ebuild_flat_metadata_cache.hh +++ b/paludis/repositories/e/ebuild_flat_metadata_cache.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -38,9 +38,11 @@ namespace paludis * \ingroup grperepository * \nosubgrouping */ - class EbuildFlatMetadataCache : - private Pimp<EbuildFlatMetadataCache> + class EbuildFlatMetadataCache { + private: + Pimp<EbuildFlatMetadataCache> _imp; + public: ///\name Basic operations ///\{ diff --git a/paludis/repositories/e/ebuild_id.cc b/paludis/repositories/e/ebuild_id.cc index 7f73dabfe..b01ceb5a5 100644 --- a/paludis/repositories/e/ebuild_id.cc +++ b/paludis/repositories/e/ebuild_id.cc @@ -115,7 +115,7 @@ namespace paludis template <> struct Imp<EbuildID> { - Mutex mutex; + mutable Mutex mutex; const QualifiedPackageName name; const VersionSpec version; @@ -207,8 +207,7 @@ EbuildID::EbuildID(const QualifiedPackageName & q, const VersionSpec & v, const std::string & g, const time_t t, const std::shared_ptr<const EclassMtimes> & m) : - Pimp<EbuildID>(q, v, e, r, f, guess_eapi(g, e, r), t, m), - _imp(Pimp<EbuildID>::_imp) + _imp(q, v, e, r, f, guess_eapi(g, e, r), t, m) { } diff --git a/paludis/repositories/e/ebuild_id.hh b/paludis/repositories/e/ebuild_id.hh index df793e12d..ab9c73493 100644 --- a/paludis/repositories/e/ebuild_id.hh +++ b/paludis/repositories/e/ebuild_id.hh @@ -33,11 +33,10 @@ namespace paludis { class EbuildID : public ERepositoryID, - public std::enable_shared_from_this<EbuildID>, - private Pimp<EbuildID> + public std::enable_shared_from_this<EbuildID> { private: - Pimp<EbuildID>::ImpPtr & _imp; + Pimp<EbuildID> _imp; protected: virtual void need_keys_added() const; diff --git a/paludis/repositories/e/eclass_mtimes.cc b/paludis/repositories/e/eclass_mtimes.cc index 90586426f..9d6e71ab8 100644 --- a/paludis/repositories/e/eclass_mtimes.cc +++ b/paludis/repositories/e/eclass_mtimes.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2010, 2011 Ciaran McCreesh * Copyright (c) 2008 David Leverton * * This file is part of the Paludis package manager. Paludis is free software; @@ -83,7 +83,7 @@ namespace paludis } EclassMtimes::EclassMtimes(const ERepository * r, const std::shared_ptr<const FSPathSequence> & d) : - Pimp<EclassMtimes>(r, d) + _imp(r, d) { } diff --git a/paludis/repositories/e/eclass_mtimes.hh b/paludis/repositories/e/eclass_mtimes.hh index 116f08f34..033bb3774 100644 --- a/paludis/repositories/e/eclass_mtimes.hh +++ b/paludis/repositories/e/eclass_mtimes.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -38,9 +38,11 @@ namespace paludis * \ingroup grperepository * \nosubgrouping */ - class EclassMtimes : - private Pimp<EclassMtimes> + class EclassMtimes { + private: + Pimp<EclassMtimes> _imp; + public: ///\name Basic operations ///\{ diff --git a/paludis/repositories/e/exheres_layout.cc b/paludis/repositories/e/exheres_layout.cc index 1f56a34c3..2dfa734dc 100644 --- a/paludis/repositories/e/exheres_layout.cc +++ b/paludis/repositories/e/exheres_layout.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -97,7 +97,7 @@ namespace paludis ExheresLayout::ExheresLayout(const ERepository * const r, const FSPath & tree_root, const std::shared_ptr<const FSPathSequence> & f) : Layout(f), - Pimp<ExheresLayout>(r, tree_root) + _imp(r, tree_root) { if (master_repositories_locations()) { diff --git a/paludis/repositories/e/exheres_layout.hh b/paludis/repositories/e/exheres_layout.hh index bf5b3261e..ec3c90c69 100644 --- a/paludis/repositories/e/exheres_layout.hh +++ b/paludis/repositories/e/exheres_layout.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -34,10 +34,11 @@ namespace paludis * \nosubgrouping */ class PALUDIS_VISIBLE ExheresLayout : - public Layout, - private Pimp<ExheresLayout> + public Layout { private: + Pimp<ExheresLayout> _imp; + void need_category_names() const; void need_category_names_collection() const; void need_package_ids(const QualifiedPackageName &) const; diff --git a/paludis/repositories/e/exheres_profile.cc b/paludis/repositories/e/exheres_profile.cc index ac2354a9a..166fd1633 100644 --- a/paludis/repositories/e/exheres_profile.cc +++ b/paludis/repositories/e/exheres_profile.cc @@ -127,7 +127,7 @@ ExheresProfile::ExheresProfile( const Environment * const env, const ERepository * const p, const RepositoryName & name, const FSPathSequence & location, const std::string & arch_var_if_special, const bool x) : - Pimp<ExheresProfile>(env, p, name, location, arch_var_if_special, x) + _imp(env, p, name, location, arch_var_if_special, x) { for (FSPathSequence::ConstIterator l(location.begin()), l_end(location.end()) ; l != l_end ; ++l) diff --git a/paludis/repositories/e/exheres_profile.hh b/paludis/repositories/e/exheres_profile.hh index 3123cd6c6..19277eee3 100644 --- a/paludis/repositories/e/exheres_profile.hh +++ b/paludis/repositories/e/exheres_profile.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -29,10 +29,11 @@ namespace paludis namespace erepository { class PALUDIS_VISIBLE ExheresProfile : - private Pimp<ExheresProfile>, public Profile { private: + Pimp<ExheresProfile> _imp; + void _load_dir(const FSPath &); public: diff --git a/paludis/repositories/e/exndbam_repository.cc b/paludis/repositories/e/exndbam_repository.cc index a26f5d3af..7b496226a 100644 --- a/paludis/repositories/e/exndbam_repository.cc +++ b/paludis/repositories/e/exndbam_repository.cc @@ -110,8 +110,7 @@ ExndbamRepository::ExndbamRepository(const RepositoryName & n, const ExndbamRepo n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - Pimp<ExndbamRepository>(p), - _imp(Pimp<ExndbamRepository>::_imp) + _imp(p) { _add_metadata_keys(); } diff --git a/paludis/repositories/e/exndbam_repository.hh b/paludis/repositories/e/exndbam_repository.hh index 4467bb69e..5ee7237a7 100644 --- a/paludis/repositories/e/exndbam_repository.hh +++ b/paludis/repositories/e/exndbam_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -54,11 +54,11 @@ namespace paludis class PALUDIS_VISIBLE ExndbamRepository : public erepository::EInstalledRepository, - public std::enable_shared_from_this<ExndbamRepository>, - public Pimp<ExndbamRepository> + public std::enable_shared_from_this<ExndbamRepository> { private: - Pimp<ExndbamRepository>::ImpPtr & _imp; + Pimp<ExndbamRepository> _imp; + void _add_metadata_keys() const; protected: diff --git a/paludis/repositories/e/fetch_visitor.cc b/paludis/repositories/e/fetch_visitor.cc index bdf7dc93f..55e6b67a7 100644 --- a/paludis/repositories/e/fetch_visitor.cc +++ b/paludis/repositories/e/fetch_visitor.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -106,7 +106,7 @@ FetchVisitor::FetchVisitor( const bool sr, const std::shared_ptr<OutputManager> & md, const GetMirrorsFunction & g) : - Pimp<FetchVisitor>(e, i, p, d, f, u, m, n, sr, md, g) + _imp(e, i, p, d, f, u, m, n, sr, md, g) { } diff --git a/paludis/repositories/e/fetch_visitor.hh b/paludis/repositories/e/fetch_visitor.hh index 9912ba03a..1fb1f587d 100644 --- a/paludis/repositories/e/fetch_visitor.hh +++ b/paludis/repositories/e/fetch_visitor.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -37,9 +37,11 @@ namespace paludis { typedef std::function<std::shared_ptr<const MirrorsSequence> (const std::string &)> GetMirrorsFunction; - class PALUDIS_VISIBLE FetchVisitor : - private Pimp<FetchVisitor> + class PALUDIS_VISIBLE FetchVisitor { + private: + Pimp<FetchVisitor> _imp; + public: FetchVisitor( const Environment * const, diff --git a/paludis/repositories/e/glsa.cc b/paludis/repositories/e/glsa.cc index ee240c844..2ad88d8a0 100644 --- a/paludis/repositories/e/glsa.cc +++ b/paludis/repositories/e/glsa.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -80,7 +80,7 @@ namespace paludis } GLSAPackage::GLSAPackage(const QualifiedPackageName & n) : - Pimp<GLSAPackage>(n) + _imp(n) { } @@ -149,7 +149,7 @@ GLSAPackage::name() const } GLSA::GLSA() : - Pimp<GLSA>() + _imp() { } diff --git a/paludis/repositories/e/glsa.hh b/paludis/repositories/e/glsa.hh index 7dac38c1c..612f6190d 100644 --- a/paludis/repositories/e/glsa.hh +++ b/paludis/repositories/e/glsa.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -73,9 +73,11 @@ namespace paludis * \ingroup grperepository * \nosubgrouping */ - class PALUDIS_VISIBLE GLSAPackage : - private Pimp<GLSAPackage> + class PALUDIS_VISIBLE GLSAPackage { + private: + Pimp<GLSAPackage> _imp; + public: ///\name Basic operations ///\{ @@ -134,9 +136,11 @@ namespace paludis * \ingroup grperepository * \nosubgrouping */ - class PALUDIS_VISIBLE GLSA : - private Pimp<GLSA> + class PALUDIS_VISIBLE GLSA { + private: + Pimp<GLSA> _imp; + public: ///\name Basic operations ///\{ diff --git a/paludis/repositories/e/info_metadata_key.cc b/paludis/repositories/e/info_metadata_key.cc index 7522f009f..f90ecb9e5 100644 --- a/paludis/repositories/e/info_metadata_key.cc +++ b/paludis/repositories/e/info_metadata_key.cc @@ -90,7 +90,7 @@ namespace paludis } InfoVarsMetadataKey::InfoVarsMetadataKey(const std::shared_ptr<const FSPathSequence> & f) : - Pimp<InfoVarsMetadataKey>(f) + _imp(f) { } @@ -145,8 +145,7 @@ InfoVarsMetadataKey::type() const InfoPkgsMetadataKey::InfoPkgsMetadataKey(const Environment * const e, const std::shared_ptr<const FSPathSequence> & f, const ERepository * const r) : - Pimp<InfoPkgsMetadataKey>(e, f, r), - _imp(Pimp<InfoPkgsMetadataKey>::_imp) + _imp(e, f, r) { } diff --git a/paludis/repositories/e/info_metadata_key.hh b/paludis/repositories/e/info_metadata_key.hh index 01e04e7a2..f63058f1b 100644 --- a/paludis/repositories/e/info_metadata_key.hh +++ b/paludis/repositories/e/info_metadata_key.hh @@ -15,11 +15,10 @@ namespace paludis namespace erepository { class InfoPkgsMetadataKey : - public MetadataSectionKey, - private Pimp<InfoPkgsMetadataKey> + public MetadataSectionKey { private: - Pimp<InfoPkgsMetadataKey>::ImpPtr & _imp; + Pimp<InfoPkgsMetadataKey> _imp; protected: virtual void need_keys_added() const; @@ -36,9 +35,11 @@ namespace paludis }; class InfoVarsMetadataKey : - public MetadataCollectionKey<Set<std::string> >, - private Pimp<InfoVarsMetadataKey> + public MetadataCollectionKey<Set<std::string> > { + private: + Pimp<InfoVarsMetadataKey> _imp; + public: InfoVarsMetadataKey(const std::shared_ptr<const FSPathSequence> &); ~InfoVarsMetadataKey(); diff --git a/paludis/repositories/e/manifest2_reader.cc b/paludis/repositories/e/manifest2_reader.cc index 65f6d04d8..8ee4ccb7e 100644 --- a/paludis/repositories/e/manifest2_reader.cc +++ b/paludis/repositories/e/manifest2_reader.cc @@ -66,7 +66,7 @@ Manifest2Error::Manifest2Error(const std::string & msg) throw () : } Manifest2Reader::Manifest2Reader(const FSPath & f) : - Pimp<Manifest2Reader>(f) + _imp(f) { if (! f.stat().exists()) return; diff --git a/paludis/repositories/e/manifest2_reader.hh b/paludis/repositories/e/manifest2_reader.hh index 2d362a5cb..b35abc55e 100644 --- a/paludis/repositories/e/manifest2_reader.hh +++ b/paludis/repositories/e/manifest2_reader.hh @@ -76,9 +76,11 @@ namespace paludis * * \ingroup grpmanifest2reader */ - class PALUDIS_VISIBLE Manifest2Reader : - private Pimp<Manifest2Reader> + class PALUDIS_VISIBLE Manifest2Reader { + private: + Pimp<Manifest2Reader> _imp; + public: ///\name Basic operations diff --git a/paludis/repositories/e/memoised_hashes.cc b/paludis/repositories/e/memoised_hashes.cc index 8a75e36c4..b5e422fae 100644 --- a/paludis/repositories/e/memoised_hashes.cc +++ b/paludis/repositories/e/memoised_hashes.cc @@ -53,7 +53,7 @@ namespace paludis } MemoisedHashes::MemoisedHashes() : - Pimp<MemoisedHashes>() + _imp() { } diff --git a/paludis/repositories/e/memoised_hashes.hh b/paludis/repositories/e/memoised_hashes.hh index 5227aef5c..939d96f39 100644 --- a/paludis/repositories/e/memoised_hashes.hh +++ b/paludis/repositories/e/memoised_hashes.hh @@ -30,12 +30,13 @@ namespace paludis namespace erepository { class PALUDIS_VISIBLE MemoisedHashes : - public Singleton<MemoisedHashes>, - private Pimp<MemoisedHashes> + public Singleton<MemoisedHashes> { friend class Singleton<MemoisedHashes>; public: + Pimp<MemoisedHashes> _imp; + template <typename H_> const std::string get(const FSPath & file, SafeIFStream & stream) const; diff --git a/paludis/repositories/e/metadata_xml.cc b/paludis/repositories/e/metadata_xml.cc index cd401dd1d..4ce704256 100644 --- a/paludis/repositories/e/metadata_xml.cc +++ b/paludis/repositories/e/metadata_xml.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -47,7 +47,7 @@ namespace paludis } MetadataXMLPool::MetadataXMLPool() : - Pimp<MetadataXMLPool>() + _imp() { } diff --git a/paludis/repositories/e/metadata_xml.hh b/paludis/repositories/e/metadata_xml.hh index 3792024ed..dba9a1e3d 100644 --- a/paludis/repositories/e/metadata_xml.hh +++ b/paludis/repositories/e/metadata_xml.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -51,12 +51,13 @@ namespace paludis }; class PALUDIS_VISIBLE MetadataXMLPool : - private Pimp<MetadataXMLPool>, public Singleton<MetadataXMLPool> { friend class Singleton<MetadataXMLPool>; private: + Pimp<MetadataXMLPool> _imp; + MetadataXMLPool(); ~MetadataXMLPool(); diff --git a/paludis/repositories/e/myoptions_requirements_verifier.cc b/paludis/repositories/e/myoptions_requirements_verifier.cc index be53f2674..b57030a4d 100644 --- a/paludis/repositories/e/myoptions_requirements_verifier.cc +++ b/paludis/repositories/e/myoptions_requirements_verifier.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -71,7 +71,7 @@ namespace paludis MyOptionsRequirementsVerifier::MyOptionsRequirementsVerifier( const Environment * const e, const std::shared_ptr<const ERepositoryID> & id) : - Pimp<MyOptionsRequirementsVerifier>(e, id) + _imp(e, id) { } diff --git a/paludis/repositories/e/myoptions_requirements_verifier.hh b/paludis/repositories/e/myoptions_requirements_verifier.hh index 192d24586..13919f373 100644 --- a/paludis/repositories/e/myoptions_requirements_verifier.hh +++ b/paludis/repositories/e/myoptions_requirements_verifier.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -32,10 +32,11 @@ namespace paludis { namespace erepository { - class PALUDIS_VISIBLE MyOptionsRequirementsVerifier : - private Pimp<MyOptionsRequirementsVerifier> + class PALUDIS_VISIBLE MyOptionsRequirementsVerifier { private: + Pimp<MyOptionsRequirementsVerifier> _imp; + void verify_one(const ChoicePrefixName &, const std::string &, const std::shared_ptr<const DepSpecAnnotations> &); diff --git a/paludis/repositories/e/pbin_merger.cc b/paludis/repositories/e/pbin_merger.cc index e0277814c..134bb76b3 100644 --- a/paludis/repositories/e/pbin_merger.cc +++ b/paludis/repositories/e/pbin_merger.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -62,7 +62,6 @@ namespace } PbinMerger::PbinMerger(const PbinMergerParams & p) : - Pimp<PbinMerger>(p), TarMerger(make_named_values<TarMergerParams>( n::compression() = tmc_none, n::environment() = p.environment(), @@ -77,7 +76,7 @@ PbinMerger::PbinMerger(const PbinMergerParams & p) : n::root() = p.root(), n::tar_file() = p.tar_file() )), - _imp(Pimp<PbinMerger>::_imp) + _imp(p) { } diff --git a/paludis/repositories/e/pbin_merger.hh b/paludis/repositories/e/pbin_merger.hh index ccd3e37a4..09c958e8a 100644 --- a/paludis/repositories/e/pbin_merger.hh +++ b/paludis/repositories/e/pbin_merger.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -61,11 +61,10 @@ namespace paludis }; class PALUDIS_VISIBLE PbinMerger : - private Pimp<PbinMerger>, public TarMerger { private: - Pimp<PbinMerger>::ImpPtr & _imp; + Pimp<PbinMerger> _imp; protected: virtual void on_error(bool is_check, const std::string &); diff --git a/paludis/repositories/e/pretend_fetch_visitor.cc b/paludis/repositories/e/pretend_fetch_visitor.cc index 90855f1ba..0f2f3c601 100644 --- a/paludis/repositories/e/pretend_fetch_visitor.cc +++ b/paludis/repositories/e/pretend_fetch_visitor.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -88,7 +88,7 @@ PretendFetchVisitor::PretendFetchVisitor( const bool f, const std::shared_ptr<const URILabel> & n, PretendFetchAction & a) : - Pimp<PretendFetchVisitor>(e, i, p, d, f, n, a) + _imp(e, i, p, d, f, n, a) { } diff --git a/paludis/repositories/e/pretend_fetch_visitor.hh b/paludis/repositories/e/pretend_fetch_visitor.hh index 291b1345d..39731ea21 100644 --- a/paludis/repositories/e/pretend_fetch_visitor.hh +++ b/paludis/repositories/e/pretend_fetch_visitor.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -32,9 +32,11 @@ namespace paludis { namespace erepository { - class PALUDIS_VISIBLE PretendFetchVisitor : - private Pimp<PretendFetchVisitor> + class PALUDIS_VISIBLE PretendFetchVisitor { + private: + Pimp<PretendFetchVisitor> _imp; + public: PretendFetchVisitor( const Environment * const, diff --git a/paludis/repositories/e/profile_file.cc b/paludis/repositories/e/profile_file.cc index 82ef7095f..6303ec9ad 100644 --- a/paludis/repositories/e/profile_file.cc +++ b/paludis/repositories/e/profile_file.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -165,7 +165,7 @@ ProfileFile<F_>::add_file(const FSPath & f) template <typename F_> ProfileFile<F_>::ProfileFile(const ERepository * const r) : - Pimp<ProfileFile>(r) + _imp(r) { } diff --git a/paludis/repositories/e/profile_file.hh b/paludis/repositories/e/profile_file.hh index bb9d54799..a55b1264e 100644 --- a/paludis/repositories/e/profile_file.hh +++ b/paludis/repositories/e/profile_file.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -35,9 +35,11 @@ namespace paludis namespace erepository { template <typename F_> - class PALUDIS_VISIBLE ProfileFile : - private Pimp<ProfileFile<F_> > + class PALUDIS_VISIBLE ProfileFile { + private: + Pimp<ProfileFile<F_> > _imp; + public: ///\name Basic operations ///\{ diff --git a/paludis/repositories/e/required_use_verifier.cc b/paludis/repositories/e/required_use_verifier.cc index 962034f1c..23f4c3b91 100644 --- a/paludis/repositories/e/required_use_verifier.cc +++ b/paludis/repositories/e/required_use_verifier.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -70,7 +70,7 @@ namespace paludis RequiredUseVerifier::RequiredUseVerifier( const Environment * const e, const std::shared_ptr<const ERepositoryID> & id) : - Pimp<RequiredUseVerifier>(e, id) + _imp(e, id) { } diff --git a/paludis/repositories/e/required_use_verifier.hh b/paludis/repositories/e/required_use_verifier.hh index 4622ed936..a193c38d1 100644 --- a/paludis/repositories/e/required_use_verifier.hh +++ b/paludis/repositories/e/required_use_verifier.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -32,10 +32,11 @@ namespace paludis { namespace erepository { - class PALUDIS_VISIBLE RequiredUseVerifier : - private Pimp<RequiredUseVerifier> + class PALUDIS_VISIBLE RequiredUseVerifier { private: + Pimp<RequiredUseVerifier> _imp; + bool matches(const std::string &); public: diff --git a/paludis/repositories/e/source_uri_finder.cc b/paludis/repositories/e/source_uri_finder.cc index 8c2ff9bc4..ea93f7e5f 100644 --- a/paludis/repositories/e/source_uri_finder.cc +++ b/paludis/repositories/e/source_uri_finder.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -71,7 +71,7 @@ namespace paludis SourceURIFinder::SourceURIFinder(const Environment * const e, const Repository * const repo, const std::string & u, const std::string & f, const std::string & m, const GetMirrorsFunction & g) : - Pimp<SourceURIFinder>(e, repo, u, f, m, g) + _imp(e, repo, u, f, m, g) { } diff --git a/paludis/repositories/e/source_uri_finder.hh b/paludis/repositories/e/source_uri_finder.hh index 7281bab46..9300b6baa 100644 --- a/paludis/repositories/e/source_uri_finder.hh +++ b/paludis/repositories/e/source_uri_finder.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2011 Ciaran McCreesh * * 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 @@ -34,10 +34,11 @@ namespace paludis { typedef std::function<std::shared_ptr<const MirrorsSequence> (const std::string &)> GetMirrorsFunction; - class PALUDIS_VISIBLE SourceURIFinder : - private Pimp<SourceURIFinder> + class PALUDIS_VISIBLE SourceURIFinder { private: + Pimp<SourceURIFinder> _imp; + void add_local_mirrors(); void add_mirrors(); void add_listed(); diff --git a/paludis/repositories/e/spec_tree_pretty_printer.cc b/paludis/repositories/e/spec_tree_pretty_printer.cc index 363d5e01f..35caadfee 100644 --- a/paludis/repositories/e/spec_tree_pretty_printer.cc +++ b/paludis/repositories/e/spec_tree_pretty_printer.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -63,7 +63,7 @@ namespace paludis SpecTreePrettyPrinter::SpecTreePrettyPrinter( const PrettyPrinter & p, const PrettyPrintOptions & o) : - Pimp<SpecTreePrettyPrinter>(p, o) + _imp(p, o) { } diff --git a/paludis/repositories/e/spec_tree_pretty_printer.hh b/paludis/repositories/e/spec_tree_pretty_printer.hh index a44ecfc1f..373a7affb 100644 --- a/paludis/repositories/e/spec_tree_pretty_printer.hh +++ b/paludis/repositories/e/spec_tree_pretty_printer.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -33,12 +33,13 @@ namespace paludis { namespace erepository { - class PALUDIS_VISIBLE SpecTreePrettyPrinter : - private Pimp<SpecTreePrettyPrinter> + class PALUDIS_VISIBLE SpecTreePrettyPrinter { friend std::ostream & operator<< (std::ostream &, const SpecTreePrettyPrinter &); private: + Pimp<SpecTreePrettyPrinter> _imp; + void do_annotations(const DepSpec &); public: diff --git a/paludis/repositories/e/traditional_layout.cc b/paludis/repositories/e/traditional_layout.cc index 9a6c2749d..80dbda1ce 100644 --- a/paludis/repositories/e/traditional_layout.cc +++ b/paludis/repositories/e/traditional_layout.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * Copyright (c) 2006 Danny van Dyk * * This file is part of the Paludis package manager. Paludis is free software; @@ -97,7 +97,7 @@ namespace paludis TraditionalLayout::TraditionalLayout(const ERepository * const repo, const FSPath & tree_root, const std::shared_ptr<const FSPathSequence> & f) : Layout(f), - Pimp<TraditionalLayout>(repo, tree_root) + _imp(repo, tree_root) { if (master_repositories_locations()) { diff --git a/paludis/repositories/e/traditional_layout.hh b/paludis/repositories/e/traditional_layout.hh index 52d796b61..62cdd683f 100644 --- a/paludis/repositories/e/traditional_layout.hh +++ b/paludis/repositories/e/traditional_layout.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * Copyright (c) 2006 Danny van Dyk * * This file is part of the Paludis package manager. Paludis is free software; @@ -35,10 +35,11 @@ namespace paludis * \nosubgrouping */ class PALUDIS_VISIBLE TraditionalLayout : - public Layout, - private Pimp<TraditionalLayout> + public Layout { private: + Pimp<TraditionalLayout> _imp; + void need_category_names() const; void need_category_names_collection() const; void need_package_ids(const QualifiedPackageName &) const; diff --git a/paludis/repositories/e/traditional_profile.cc b/paludis/repositories/e/traditional_profile.cc index 34e4ac34a..b3e51b6f7 100644 --- a/paludis/repositories/e/traditional_profile.cc +++ b/paludis/repositories/e/traditional_profile.cc @@ -831,7 +831,7 @@ TraditionalProfile::TraditionalProfile( const Environment * const env, const ERepository * const p, const RepositoryName & name, const FSPathSequence & location, const std::string & arch_var_if_special, const bool x) : - Pimp<TraditionalProfile>(env, p, name, location, arch_var_if_special, x) + _imp(env, p, name, location, arch_var_if_special, x) { } diff --git a/paludis/repositories/e/traditional_profile.hh b/paludis/repositories/e/traditional_profile.hh index 27868c8c0..3d4071734 100644 --- a/paludis/repositories/e/traditional_profile.hh +++ b/paludis/repositories/e/traditional_profile.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -29,9 +29,11 @@ namespace paludis namespace erepository { class PALUDIS_VISIBLE TraditionalProfile : - private Pimp<TraditionalProfile>, public Profile { + private: + Pimp<TraditionalProfile> _imp; + public: TraditionalProfile( const Environment * const, const ERepository * const, const RepositoryName &, diff --git a/paludis/repositories/e/use_desc.cc b/paludis/repositories/e/use_desc.cc index 64a557189..1a2a9ae76 100644 --- a/paludis/repositories/e/use_desc.cc +++ b/paludis/repositories/e/use_desc.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -80,7 +80,7 @@ namespace paludis } UseDesc::UseDesc(const std::shared_ptr<const UseDescFileInfoSequence> & f) : - Pimp<UseDesc>(f) + _imp(f) { } diff --git a/paludis/repositories/e/use_desc.hh b/paludis/repositories/e/use_desc.hh index 347ee1ad0..1d4e01ffa 100644 --- a/paludis/repositories/e/use_desc.hh +++ b/paludis/repositories/e/use_desc.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -37,9 +37,11 @@ namespace paludis * * \ingroup grperepository */ - class UseDesc : - private Pimp<UseDesc> + class UseDesc { + private: + Pimp<UseDesc> _imp; + public: ///\name Basic operations ///\{ diff --git a/paludis/repositories/e/vdb_merger.cc b/paludis/repositories/e/vdb_merger.cc index fb315cd75..ec9df37ad 100644 --- a/paludis/repositories/e/vdb_merger.cc +++ b/paludis/repositories/e/vdb_merger.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -93,8 +93,7 @@ VDBMerger::VDBMerger(const VDBMergerParams & p) : n::options() = p.options(), n::root() = p.root() )), - Pimp<VDBMerger>(p), - _imp(Pimp<VDBMerger>::_imp) + _imp(p) { } diff --git a/paludis/repositories/e/vdb_merger.hh b/paludis/repositories/e/vdb_merger.hh index 57ad1fd32..457cd0f80 100644 --- a/paludis/repositories/e/vdb_merger.hh +++ b/paludis/repositories/e/vdb_merger.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -74,14 +74,13 @@ namespace paludis * \nosubgrouping */ class PALUDIS_VISIBLE VDBMerger : - public FSMerger, - private Pimp<VDBMerger> + public FSMerger { private: void display_override(const std::string &) const; std::string make_arrows(const FSMergerStatusFlags &) const; - Pimp<VDBMerger>::ImpPtr & _imp; + Pimp<VDBMerger> _imp; public: ///\name Basic operations diff --git a/paludis/repositories/e/vdb_repository.cc b/paludis/repositories/e/vdb_repository.cc index 3318279ef..08d89250d 100644 --- a/paludis/repositories/e/vdb_repository.cc +++ b/paludis/repositories/e/vdb_repository.cc @@ -179,8 +179,7 @@ VDBRepository::VDBRepository(const VDBRepositoryParams & p) : n::provides_interface() = this, n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - Pimp<VDBRepository>(this, p), - _imp(Pimp<VDBRepository>::_imp) + _imp(this, p) { _add_metadata_keys(); } diff --git a/paludis/repositories/e/vdb_repository.hh b/paludis/repositories/e/vdb_repository.hh index fba4b0839..ec7ab4b77 100644 --- a/paludis/repositories/e/vdb_repository.hh +++ b/paludis/repositories/e/vdb_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -75,11 +75,11 @@ namespace paludis class PALUDIS_VISIBLE VDBRepository : public erepository::EInstalledRepository, public RepositoryProvidesInterface, - public std::enable_shared_from_this<VDBRepository>, - public Pimp<VDBRepository> + public std::enable_shared_from_this<VDBRepository> { private: - Pimp<VDBRepository>::ImpPtr & _imp; + Pimp<VDBRepository> _imp; + void _add_metadata_keys() const; bool load_provided_using_cache() const; diff --git a/paludis/repositories/e/vdb_unmerger.cc b/paludis/repositories/e/vdb_unmerger.cc index 8799dc2aa..caa570da7 100644 --- a/paludis/repositories/e/vdb_unmerger.cc +++ b/paludis/repositories/e/vdb_unmerger.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * Copyright (c) 2007 Piotr Jaroszyński * * This file is part of the Paludis package manager. Paludis is free software; @@ -76,8 +76,7 @@ VDBUnmerger::VDBUnmerger(const VDBUnmergerOptions & o) : n::maybe_output_manager() = o.output_manager(), n::root() = o.root() )), - Pimp<VDBUnmerger>(o), - _imp(Pimp<VDBUnmerger>::_imp.get()) + _imp(o) { } diff --git a/paludis/repositories/e/vdb_unmerger.hh b/paludis/repositories/e/vdb_unmerger.hh index 8fdd83af5..ad2bd76eb 100644 --- a/paludis/repositories/e/vdb_unmerger.hh +++ b/paludis/repositories/e/vdb_unmerger.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * Copyright (c) 2007 Piotr Jaroszyński * * This file is part of the Paludis package manager. Paludis is free software; @@ -84,11 +84,10 @@ namespace paludis * \nosubgrouping */ class PALUDIS_VISIBLE VDBUnmerger : - public Unmerger, - private Pimp<VDBUnmerger> + public Unmerger { private: - Imp<VDBUnmerger> * _imp; + Pimp<VDBUnmerger> _imp; protected: bool config_protected(const FSPath &) const; diff --git a/paludis/repositories/e/xml_things_handle.cc b/paludis/repositories/e/xml_things_handle.cc index 443432257..9c658a1f1 100644 --- a/paludis/repositories/e/xml_things_handle.cc +++ b/paludis/repositories/e/xml_things_handle.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -123,7 +123,7 @@ namespace paludis } XMLThingsHandle::XMLThingsHandle() : - Pimp<XMLThingsHandle>() + _imp() { } diff --git a/paludis/repositories/e/xml_things_handle.hh b/paludis/repositories/e/xml_things_handle.hh index af8215e6e..7bfe4c528 100644 --- a/paludis/repositories/e/xml_things_handle.hh +++ b/paludis/repositories/e/xml_things_handle.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -30,12 +30,13 @@ namespace paludis namespace erepository { class PALUDIS_VISIBLE XMLThingsHandle : - private Pimp<XMLThingsHandle>, public Singleton<XMLThingsHandle> { friend class Singleton<XMLThingsHandle>; private: + Pimp<XMLThingsHandle> _imp; + XMLThingsHandle(); ~XMLThingsHandle(); diff --git a/paludis/repositories/fake/fake_installed_repository.cc b/paludis/repositories/fake/fake_installed_repository.cc index 9beb2402c..ca40effdf 100644 --- a/paludis/repositories/fake/fake_installed_repository.cc +++ b/paludis/repositories/fake/fake_installed_repository.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -66,8 +66,7 @@ FakeInstalledRepository::FakeInstalledRepository(const FakeInstalledRepositoryPa n::provides_interface() = this, n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - Pimp<FakeInstalledRepository>(p.supports_uninstall(), p.suitable_destination()), - _imp(Pimp<FakeInstalledRepository>::_imp) + _imp(p.supports_uninstall(), p.suitable_destination()) { add_metadata_key(_imp->format_key); add_metadata_key(_imp->installed_root_key); diff --git a/paludis/repositories/fake/fake_installed_repository.hh b/paludis/repositories/fake/fake_installed_repository.hh index d9ab2a68b..9063cb7cc 100644 --- a/paludis/repositories/fake/fake_installed_repository.hh +++ b/paludis/repositories/fake/fake_installed_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -51,11 +51,10 @@ namespace paludis class PALUDIS_VISIBLE FakeInstalledRepository : public FakeRepositoryBase, public RepositoryDestinationInterface, - public RepositoryProvidesInterface, - private Pimp<FakeInstalledRepository> + public RepositoryProvidesInterface { private: - Pimp<FakeInstalledRepository>::ImpPtr & _imp; + Pimp<FakeInstalledRepository> _imp; protected: /* RepositoryDestinationInterface */ diff --git a/paludis/repositories/fake/fake_package_id.cc b/paludis/repositories/fake/fake_package_id.cc index 15d72236f..48d0197d8 100644 --- a/paludis/repositories/fake/fake_package_id.cc +++ b/paludis/repositories/fake/fake_package_id.cc @@ -85,8 +85,7 @@ template <typename C_> FakeMetadataCollectionKey<C_>::FakeMetadataCollectionKey( const std::string & r, const std::string & h, const MetadataKeyType t, const std::shared_ptr<const PackageID> & i, const Environment * const e) : - Pimp<FakeMetadataCollectionKey<C_> >(i, e, r, h, t), - _imp(Pimp<FakeMetadataCollectionKey<C_> >::_imp) + _imp(i, e, r, h, t) { } @@ -221,8 +220,7 @@ namespace paludis template <typename C_> FakeMetadataSpecTreeKey<C_>::FakeMetadataSpecTreeKey(const std::string & r, const std::string & h, const std::string & v, const std::function<const std::shared_ptr<const C_> (const std::string &)> & f, const MetadataKeyType t) : - Pimp<FakeMetadataSpecTreeKey<C_> >(f, r, h, t), - _imp(Pimp<FakeMetadataSpecTreeKey<C_> >::_imp) + _imp(f, r, h, t) { set_from_string(v); } @@ -278,8 +276,7 @@ FakeMetadataSpecTreeKey<C_>::pretty_print_value( FakeMetadataSpecTreeKey<FetchableURISpecTree>::FakeMetadataSpecTreeKey(const std::string & r, const std::string & h, const std::string & v, const std::function<const std::shared_ptr<const FetchableURISpecTree> (const std::string &)> & f, const MetadataKeyType t) : - Pimp<FakeMetadataSpecTreeKey<FetchableURISpecTree> >(f, r, h, t), - _imp(Pimp<FakeMetadataSpecTreeKey<FetchableURISpecTree> >::_imp) + _imp(f, r, h, t) { set_from_string(v); } @@ -334,8 +331,7 @@ FakeMetadataSpecTreeKey<FetchableURISpecTree>::initial_label() const FakeMetadataSpecTreeKey<DependencySpecTree>::FakeMetadataSpecTreeKey(const std::string & r, const std::string & h, const std::string & v, const std::function<const std::shared_ptr<const DependencySpecTree> (const std::string &)> & f, const std::shared_ptr<const DependenciesLabelSequence> & s, const MetadataKeyType t) : - Pimp<FakeMetadataSpecTreeKey<DependencySpecTree> >(f, s, r, h, t), - _imp(Pimp<FakeMetadataSpecTreeKey<DependencySpecTree> >::_imp) + _imp(f, s, r, h, t) { set_from_string(v); } @@ -472,8 +468,7 @@ namespace FakeMetadataChoicesKey::FakeMetadataChoicesKey(const Environment * const e, const std::shared_ptr<const PackageID> & i) : - Pimp<FakeMetadataChoicesKey>(e, i), - _imp(Pimp<FakeMetadataChoicesKey>::_imp) + _imp(e, i) { } @@ -546,7 +541,7 @@ namespace paludis } FakeUnacceptedMask::FakeUnacceptedMask(const char c, const std::string & s, const std::shared_ptr<const MetadataKey> & k) : - Pimp<FakeUnacceptedMask>(c, s, k) + _imp(c, s, k) { } @@ -636,20 +631,20 @@ namespace paludis const QualifiedPackageName name; const VersionSpec version; - std::shared_ptr<LiteralMetadataValueKey<SlotName> > slot; - std::shared_ptr<FakeMetadataKeywordSetKey> keywords; - std::shared_ptr<FakeMetadataSpecTreeKey<LicenseSpecTree> > license; - std::shared_ptr<FakeMetadataSpecTreeKey<ProvideSpecTree> > provide; - std::shared_ptr<FakeMetadataSpecTreeKey<DependencySpecTree> > build_dependencies; - std::shared_ptr<FakeMetadataSpecTreeKey<DependencySpecTree> > run_dependencies; - std::shared_ptr<FakeMetadataSpecTreeKey<DependencySpecTree> > post_dependencies; - std::shared_ptr<FakeMetadataSpecTreeKey<DependencySpecTree> > suggested_dependencies; - std::shared_ptr<FakeMetadataSpecTreeKey<PlainTextSpecTree> > restrictions; - std::shared_ptr<FakeMetadataSpecTreeKey<FetchableURISpecTree> > src_uri; - std::shared_ptr<FakeMetadataSpecTreeKey<SimpleURISpecTree> > homepage; - std::shared_ptr<FakeMetadataChoicesKey> choices; - std::shared_ptr<LiteralMetadataValueKey<long> > hitchhiker; - std::shared_ptr<LiteralMetadataStringSetKey> behaviours; + mutable std::shared_ptr<LiteralMetadataValueKey<SlotName> > slot; + mutable std::shared_ptr<FakeMetadataKeywordSetKey> keywords; + mutable std::shared_ptr<FakeMetadataSpecTreeKey<LicenseSpecTree> > license; + mutable std::shared_ptr<FakeMetadataSpecTreeKey<ProvideSpecTree> > provide; + mutable std::shared_ptr<FakeMetadataSpecTreeKey<DependencySpecTree> > build_dependencies; + mutable std::shared_ptr<FakeMetadataSpecTreeKey<DependencySpecTree> > run_dependencies; + mutable std::shared_ptr<FakeMetadataSpecTreeKey<DependencySpecTree> > post_dependencies; + mutable std::shared_ptr<FakeMetadataSpecTreeKey<DependencySpecTree> > suggested_dependencies; + mutable std::shared_ptr<FakeMetadataSpecTreeKey<PlainTextSpecTree> > restrictions; + mutable std::shared_ptr<FakeMetadataSpecTreeKey<FetchableURISpecTree> > src_uri; + mutable std::shared_ptr<FakeMetadataSpecTreeKey<SimpleURISpecTree> > homepage; + mutable std::shared_ptr<FakeMetadataChoicesKey> choices; + mutable std::shared_ptr<LiteralMetadataValueKey<long> > hitchhiker; + mutable std::shared_ptr<LiteralMetadataStringSetKey> behaviours; std::shared_ptr<Set<std::string> > behaviours_set; @@ -672,8 +667,7 @@ namespace paludis FakePackageID::FakePackageID(const Environment * const e, const RepositoryName & r, const QualifiedPackageName & q, const VersionSpec & v) : - Pimp<FakePackageID>(e, r, q, v), - _imp(Pimp<FakePackageID>::_imp) + _imp(e, r, q, v) { } diff --git a/paludis/repositories/fake/fake_package_id.hh b/paludis/repositories/fake/fake_package_id.hh index cb4f5484f..80647d97c 100644 --- a/paludis/repositories/fake/fake_package_id.hh +++ b/paludis/repositories/fake/fake_package_id.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -32,11 +32,10 @@ namespace paludis template <typename C_> class PALUDIS_VISIBLE FakeMetadataCollectionKey : - public MetadataCollectionKey<C_>, - private Pimp<FakeMetadataCollectionKey<C_> > + public MetadataCollectionKey<C_> { protected: - typename Pimp<FakeMetadataCollectionKey<C_> >::ImpPtr & _imp; + Pimp<FakeMetadataCollectionKey<C_> > _imp; FakeMetadataCollectionKey(const std::string &, const std::string &, const MetadataKeyType, const std::shared_ptr<const PackageID> &, const Environment * const); @@ -71,11 +70,10 @@ namespace paludis template <typename C_> class PALUDIS_VISIBLE FakeMetadataSpecTreeKey : - public MetadataSpecTreeKey<C_>, - private Pimp<FakeMetadataSpecTreeKey<C_> > + public MetadataSpecTreeKey<C_> { private: - typename Pimp<FakeMetadataSpecTreeKey<C_> >::ImpPtr & _imp; + Pimp<FakeMetadataSpecTreeKey<C_> > _imp; public: FakeMetadataSpecTreeKey(const std::string &, const std::string &, const std::string &, @@ -98,11 +96,10 @@ namespace paludis template <> class PALUDIS_VISIBLE FakeMetadataSpecTreeKey<FetchableURISpecTree> : - public MetadataSpecTreeKey<FetchableURISpecTree>, - private Pimp<FakeMetadataSpecTreeKey<FetchableURISpecTree> > + public MetadataSpecTreeKey<FetchableURISpecTree> { private: - Pimp<FakeMetadataSpecTreeKey<FetchableURISpecTree> >::ImpPtr & _imp; + Pimp<FakeMetadataSpecTreeKey<FetchableURISpecTree> > _imp; public: FakeMetadataSpecTreeKey(const std::string &, const std::string &, const std::string &, @@ -129,11 +126,10 @@ namespace paludis template <> class PALUDIS_VISIBLE FakeMetadataSpecTreeKey<DependencySpecTree> : - public MetadataSpecTreeKey<DependencySpecTree>, - private Pimp<FakeMetadataSpecTreeKey<DependencySpecTree> > + public MetadataSpecTreeKey<DependencySpecTree> { private: - Pimp<FakeMetadataSpecTreeKey<DependencySpecTree> >::ImpPtr & _imp; + Pimp<FakeMetadataSpecTreeKey<DependencySpecTree> > _imp; public: FakeMetadataSpecTreeKey(const std::string &, const std::string &, const std::string &, @@ -160,11 +156,10 @@ namespace paludis }; class PALUDIS_VISIBLE FakeMetadataChoicesKey : - public MetadataValueKey<std::shared_ptr<const Choices> >, - private Pimp<FakeMetadataChoicesKey> + public MetadataValueKey<std::shared_ptr<const Choices> > { private: - Pimp<FakeMetadataChoicesKey>::ImpPtr & _imp; + Pimp<FakeMetadataChoicesKey> _imp; public: FakeMetadataChoicesKey( @@ -181,9 +176,11 @@ namespace paludis }; class PALUDIS_VISIBLE FakeUnacceptedMask : - public UnacceptedMask, - private Pimp<FakeUnacceptedMask> + public UnacceptedMask { + private: + Pimp<FakeUnacceptedMask> _imp; + public: FakeUnacceptedMask(const char, const std::string &, const std::shared_ptr<const MetadataKey> &); ~FakeUnacceptedMask(); @@ -215,11 +212,10 @@ namespace paludis */ class PALUDIS_VISIBLE FakePackageID : public PackageID, - private Pimp<FakePackageID>, public std::enable_shared_from_this<FakePackageID> { private: - Pimp<FakePackageID>::ImpPtr & _imp; + Pimp<FakePackageID> _imp; protected: virtual void need_keys_added() const; diff --git a/paludis/repositories/fake/fake_repository.cc b/paludis/repositories/fake/fake_repository.cc index e215b47a8..60040a0db 100644 --- a/paludis/repositories/fake/fake_repository.cc +++ b/paludis/repositories/fake/fake_repository.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -53,7 +53,6 @@ namespace paludis } FakeRepository::FakeRepository(const FakeRepositoryParams & params) : - Pimp<FakeRepository>(), FakeRepositoryBase(params.environment(), params.name(), make_named_values<RepositoryCapabilities>( n::destination_interface() = static_cast<RepositoryDestinationInterface *>(0), n::environment_variable_interface() = static_cast<RepositoryEnvironmentVariableInterface *>(0), @@ -63,7 +62,7 @@ FakeRepository::FakeRepository(const FakeRepositoryParams & params) : n::virtuals_interface() = (*DistributionData::get_instance()->distribution_from_string( params.environment()->distribution())).support_old_style_virtuals() ? this : 0 )), - _imp(Pimp<FakeRepository>::_imp) + _imp() { add_metadata_key(_imp->format_key); } diff --git a/paludis/repositories/fake/fake_repository.hh b/paludis/repositories/fake/fake_repository.hh index 543427a9d..dc3f291a4 100644 --- a/paludis/repositories/fake/fake_repository.hh +++ b/paludis/repositories/fake/fake_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -51,12 +51,11 @@ namespace paludis * \ingroup grpfakerepository */ class PALUDIS_VISIBLE FakeRepository : - private Pimp<FakeRepository>, public FakeRepositoryBase, public RepositoryVirtualsInterface { private: - Pimp<FakeRepository>::ImpPtr & _imp; + Pimp<FakeRepository> _imp; public: ///\name Basic operations diff --git a/paludis/repositories/fake/fake_repository_base.cc b/paludis/repositories/fake/fake_repository_base.cc index 0f2793e1c..6e0663a0b 100644 --- a/paludis/repositories/fake/fake_repository_base.cc +++ b/paludis/repositories/fake/fake_repository_base.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -64,8 +64,7 @@ namespace paludis FakeRepositoryBase::FakeRepositoryBase(const Environment * const e, const RepositoryName & our_name, const RepositoryCapabilities & caps) : Repository(e, our_name, caps), - Pimp<FakeRepositoryBase>(e), - _imp(Pimp<FakeRepositoryBase>::_imp) + _imp(e) { } diff --git a/paludis/repositories/fake/fake_repository_base.hh b/paludis/repositories/fake/fake_repository_base.hh index 759f29560..4e4d647c8 100644 --- a/paludis/repositories/fake/fake_repository_base.hh +++ b/paludis/repositories/fake/fake_repository_base.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -44,11 +44,10 @@ namespace paludis */ class PALUDIS_VISIBLE FakeRepositoryBase : public Repository, - private Pimp<FakeRepositoryBase>, public std::enable_shared_from_this<FakeRepositoryBase> { private: - Pimp<FakeRepositoryBase>::ImpPtr & _imp; + Pimp<FakeRepositoryBase> _imp; protected: /** diff --git a/paludis/repositories/gemcutter/gemcutter_dependencies_key.cc b/paludis/repositories/gemcutter/gemcutter_dependencies_key.cc index d3c1625da..8cfb1210d 100644 --- a/paludis/repositories/gemcutter/gemcutter_dependencies_key.cc +++ b/paludis/repositories/gemcutter/gemcutter_dependencies_key.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -238,8 +238,7 @@ namespace paludis GemcutterDependenciesKey::GemcutterDependenciesKey(const Environment * const e, const std::string * const r, const std::string * const h, const MetadataKeyType t, const std::shared_ptr<const GemJSONDependencies> & dd, const std::shared_ptr<const GemJSONDependencies> & dr) : - Pimp<GemcutterDependenciesKey>(e, r, h, t, dd, dr), - _imp(Pimp<GemcutterDependenciesKey>::_imp) + _imp(e, r, h, t, dd, dr) { } diff --git a/paludis/repositories/gemcutter/gemcutter_dependencies_key.hh b/paludis/repositories/gemcutter/gemcutter_dependencies_key.hh index 3b221a76f..26ee818d5 100644 --- a/paludis/repositories/gemcutter/gemcutter_dependencies_key.hh +++ b/paludis/repositories/gemcutter/gemcutter_dependencies_key.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -37,11 +37,10 @@ namespace paludis }; class GemcutterDependenciesKey : - public MetadataSpecTreeKey<DependencySpecTree>, - private Pimp<GemcutterDependenciesKey> + public MetadataSpecTreeKey<DependencySpecTree> { private: - Pimp<GemcutterDependenciesKey>::ImpPtr & _imp; + Pimp<GemcutterDependenciesKey> _imp; public: GemcutterDependenciesKey( diff --git a/paludis/repositories/gemcutter/gemcutter_id.cc b/paludis/repositories/gemcutter/gemcutter_id.cc index 1d70f81de..3a522ecf1 100644 --- a/paludis/repositories/gemcutter/gemcutter_id.cc +++ b/paludis/repositories/gemcutter/gemcutter_id.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -196,8 +196,7 @@ namespace paludis } GemcutterID::GemcutterID(const GemcutterIDParams & entry) : - Pimp<GemcutterID>(entry), - _imp(Pimp<GemcutterID>::_imp) + _imp(entry) { add_metadata_key(_imp->slot_key); diff --git a/paludis/repositories/gemcutter/gemcutter_id.hh b/paludis/repositories/gemcutter/gemcutter_id.hh index 8fbde3e7b..24302432d 100644 --- a/paludis/repositories/gemcutter/gemcutter_id.hh +++ b/paludis/repositories/gemcutter/gemcutter_id.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -46,11 +46,10 @@ namespace paludis }; class PALUDIS_VISIBLE GemcutterID : - public PackageID, - private Pimp<GemcutterID> + public PackageID { private: - Pimp<GemcutterID>::ImpPtr & _imp; + Pimp<GemcutterID> _imp; protected: void need_keys_added() const; diff --git a/paludis/repositories/gemcutter/gemcutter_repository.cc b/paludis/repositories/gemcutter/gemcutter_repository.cc index 87e63907e..28c31f7ba 100644 --- a/paludis/repositories/gemcutter/gemcutter_repository.cc +++ b/paludis/repositories/gemcutter/gemcutter_repository.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -80,7 +80,6 @@ GemcutterRepositoryConfigurationError::GemcutterRepositoryConfigurationError(con } GemcutterRepository::GemcutterRepository(const GemcutterRepositoryParams & p) : - Pimp<GemcutterRepository>(this, p), Repository( p.environment(), p.name(), @@ -92,7 +91,7 @@ GemcutterRepository::GemcutterRepository(const GemcutterRepositoryParams & p) : n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - _imp(Pimp<GemcutterRepository>::_imp) + _imp(this, p) { _add_metadata_keys(); } diff --git a/paludis/repositories/gemcutter/gemcutter_repository.hh b/paludis/repositories/gemcutter/gemcutter_repository.hh index ec9e5419d..d6897c8cf 100644 --- a/paludis/repositories/gemcutter/gemcutter_repository.hh +++ b/paludis/repositories/gemcutter/gemcutter_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -52,12 +52,11 @@ namespace paludis }; class PALUDIS_VISIBLE GemcutterRepository : - private Pimp<GemcutterRepository>, public Repository, public std::enable_shared_from_this<GemcutterRepository> { private: - Pimp<GemcutterRepository>::ImpPtr & _imp; + Pimp<GemcutterRepository> _imp; void _add_metadata_keys(); diff --git a/paludis/repositories/gemcutter/gemcutter_repository_store.cc b/paludis/repositories/gemcutter/gemcutter_repository_store.cc index 2878bebd5..61852fdb2 100644 --- a/paludis/repositories/gemcutter/gemcutter_repository_store.cc +++ b/paludis/repositories/gemcutter/gemcutter_repository_store.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -77,7 +77,7 @@ GemcutterRepositoryStore::GemcutterRepositoryStore( const Environment * const env, const GemcutterRepository * const repo, const FSPath & location) : - Pimp<GemcutterRepositoryStore>(env, repo, location) + _imp(env, repo, location) { _populate(); } diff --git a/paludis/repositories/gemcutter/gemcutter_repository_store.hh b/paludis/repositories/gemcutter/gemcutter_repository_store.hh index c175ce8fd..2310c8fdf 100644 --- a/paludis/repositories/gemcutter/gemcutter_repository_store.hh +++ b/paludis/repositories/gemcutter/gemcutter_repository_store.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -34,10 +34,11 @@ namespace paludis { namespace gemcutter_repository { - class PALUDIS_VISIBLE GemcutterRepositoryStore : - private Pimp<GemcutterRepositoryStore> + class PALUDIS_VISIBLE GemcutterRepositoryStore { private: + Pimp<GemcutterRepositoryStore> _imp; + void _populate(); void _populate_one(const GemJSONInfo &); diff --git a/paludis/repositories/gemcutter/gemcutter_uri_key.cc b/paludis/repositories/gemcutter/gemcutter_uri_key.cc index b8f5c1f9b..9bcd1944f 100644 --- a/paludis/repositories/gemcutter/gemcutter_uri_key.cc +++ b/paludis/repositories/gemcutter/gemcutter_uri_key.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -115,8 +115,7 @@ namespace paludis GemcutterURIKey::GemcutterURIKey(const std::string * const r, const std::string * const h, const MetadataKeyType t, const std::string & v) : - Pimp<GemcutterURIKey>(r, h, t, v), - _imp(Pimp<GemcutterURIKey>::_imp) + _imp(r, h, t, v) { } diff --git a/paludis/repositories/gemcutter/gemcutter_uri_key.hh b/paludis/repositories/gemcutter/gemcutter_uri_key.hh index 19813ffa2..984093191 100644 --- a/paludis/repositories/gemcutter/gemcutter_uri_key.hh +++ b/paludis/repositories/gemcutter/gemcutter_uri_key.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -28,11 +28,10 @@ namespace paludis namespace gemcutter_repository { class GemcutterURIKey : - public MetadataSpecTreeKey<SimpleURISpecTree>, - private Pimp<GemcutterURIKey> + public MetadataSpecTreeKey<SimpleURISpecTree> { private: - Pimp<GemcutterURIKey>::ImpPtr & _imp; + Pimp<GemcutterURIKey> _imp; public: GemcutterURIKey( diff --git a/paludis/repositories/repository/repository_id.cc b/paludis/repositories/repository/repository_id.cc index 512a1489c..ba61e3836 100644 --- a/paludis/repositories/repository/repository_id.cc +++ b/paludis/repositories/repository/repository_id.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -80,8 +80,7 @@ namespace paludis } RepositoryID::RepositoryID(const RepositoryIDParams & entry) : - Pimp<RepositoryID>(entry), - _imp(Pimp<RepositoryID>::_imp) + _imp(entry) { add_metadata_key(_imp->behaviours_key); } diff --git a/paludis/repositories/repository/repository_id.hh b/paludis/repositories/repository/repository_id.hh index 0538357e1..20545a336 100644 --- a/paludis/repositories/repository/repository_id.hh +++ b/paludis/repositories/repository/repository_id.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -44,11 +44,10 @@ namespace paludis }; class PALUDIS_VISIBLE RepositoryID : - public PackageID, - private Pimp<RepositoryID> + public PackageID { private: - Pimp<RepositoryID>::ImpPtr & _imp; + Pimp<RepositoryID> _imp; protected: void need_keys_added() const; diff --git a/paludis/repositories/repository/repository_repository.cc b/paludis/repositories/repository/repository_repository.cc index bfcceb8ad..670edcfd7 100644 --- a/paludis/repositories/repository/repository_repository.cc +++ b/paludis/repositories/repository/repository_repository.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -90,7 +90,6 @@ RepositoryRepositoryConfigurationError::RepositoryRepositoryConfigurationError(c } RepositoryRepository::RepositoryRepository(const RepositoryRepositoryParams & p) : - Pimp<RepositoryRepository>(this, p), Repository( p.environment(), p.name(), @@ -102,7 +101,7 @@ RepositoryRepository::RepositoryRepository(const RepositoryRepositoryParams & p) n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - _imp(Pimp<RepositoryRepository>::_imp) + _imp(this, p) { _add_metadata_keys(); } diff --git a/paludis/repositories/repository/repository_repository.hh b/paludis/repositories/repository/repository_repository.hh index b65fe2176..4a7ab3c76 100644 --- a/paludis/repositories/repository/repository_repository.hh +++ b/paludis/repositories/repository/repository_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -55,13 +55,12 @@ namespace paludis }; class PALUDIS_VISIBLE RepositoryRepository : - private Pimp<RepositoryRepository>, public Repository, public RepositoryDestinationInterface, public std::enable_shared_from_this<RepositoryRepository> { private: - Pimp<RepositoryRepository>::ImpPtr & _imp; + Pimp<RepositoryRepository> _imp; void _add_metadata_keys(); diff --git a/paludis/repositories/repository/repository_repository_store.cc b/paludis/repositories/repository/repository_repository_store.cc index cfa62f988..dfc1c164b 100644 --- a/paludis/repositories/repository/repository_repository_store.cc +++ b/paludis/repositories/repository/repository_repository_store.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -72,7 +72,7 @@ namespace paludis RepositoryRepositoryStore::RepositoryRepositoryStore( const Environment * const env, const RepositoryRepository * const repo) : - Pimp<RepositoryRepositoryStore>(env, repo) + _imp(env, repo) { _populate(); } diff --git a/paludis/repositories/repository/repository_repository_store.hh b/paludis/repositories/repository/repository_repository_store.hh index afcb28d4a..c4048c77a 100644 --- a/paludis/repositories/repository/repository_repository_store.hh +++ b/paludis/repositories/repository/repository_repository_store.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -31,10 +31,11 @@ namespace paludis { namespace repository_repository { - class PALUDIS_VISIBLE RepositoryRepositoryStore : - private Pimp<RepositoryRepositoryStore> + class PALUDIS_VISIBLE RepositoryRepositoryStore { private: + Pimp<RepositoryRepositoryStore> _imp; + void _populate(); void _populate_one(const RepositoryName &); diff --git a/paludis/repositories/unavailable/unavailable_package_id.cc b/paludis/repositories/unavailable/unavailable_package_id.cc index 3b46998e1..e69d2da33 100644 --- a/paludis/repositories/unavailable/unavailable_package_id.cc +++ b/paludis/repositories/unavailable/unavailable_package_id.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -73,8 +73,7 @@ namespace paludis } UnavailablePackageID::UnavailablePackageID(const UnavailablePackageIDParams & entry) : - Pimp<UnavailablePackageID>(entry), - _imp(Pimp<UnavailablePackageID>::_imp) + _imp(entry) { add_metadata_key(_imp->slot_key); add_metadata_key(_imp->description_key); diff --git a/paludis/repositories/unavailable/unavailable_package_id.hh b/paludis/repositories/unavailable/unavailable_package_id.hh index a9f991854..2b2543f64 100644 --- a/paludis/repositories/unavailable/unavailable_package_id.hh +++ b/paludis/repositories/unavailable/unavailable_package_id.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -58,11 +58,10 @@ namespace paludis }; class PALUDIS_VISIBLE UnavailablePackageID : - public PackageID, - private Pimp<UnavailablePackageID> + public PackageID { private: - Pimp<UnavailablePackageID>::ImpPtr & _imp; + Pimp<UnavailablePackageID> _imp; protected: void need_keys_added() const; diff --git a/paludis/repositories/unavailable/unavailable_repository.cc b/paludis/repositories/unavailable/unavailable_repository.cc index b4905a6d4..7698241b2 100644 --- a/paludis/repositories/unavailable/unavailable_repository.cc +++ b/paludis/repositories/unavailable/unavailable_repository.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -91,7 +91,6 @@ UnavailableRepositoryConfigurationError::UnavailableRepositoryConfigurationError } UnavailableRepository::UnavailableRepository(const UnavailableRepositoryParams & p) : - Pimp<UnavailableRepository>(this, p), Repository( p.environment(), p.name(), @@ -103,7 +102,7 @@ UnavailableRepository::UnavailableRepository(const UnavailableRepositoryParams & n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - _imp(Pimp<UnavailableRepository>::_imp) + _imp(this, p) { _add_metadata_keys(); } diff --git a/paludis/repositories/unavailable/unavailable_repository.hh b/paludis/repositories/unavailable/unavailable_repository.hh index 1284c7fae..c05b18fb6 100644 --- a/paludis/repositories/unavailable/unavailable_repository.hh +++ b/paludis/repositories/unavailable/unavailable_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -55,12 +55,11 @@ namespace paludis }; class PALUDIS_VISIBLE UnavailableRepository : - private Pimp<UnavailableRepository>, public Repository, public std::enable_shared_from_this<UnavailableRepository> { private: - Pimp<UnavailableRepository>::ImpPtr & _imp; + Pimp<UnavailableRepository> _imp; void _add_metadata_keys(); diff --git a/paludis/repositories/unavailable/unavailable_repository_dependencies_key.cc b/paludis/repositories/unavailable/unavailable_repository_dependencies_key.cc index ac8d00e4d..8e19a74c3 100644 --- a/paludis/repositories/unavailable/unavailable_repository_dependencies_key.cc +++ b/paludis/repositories/unavailable/unavailable_repository_dependencies_key.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -75,7 +75,7 @@ namespace paludis UnavailableRepositoryDependenciesKey::UnavailableRepositoryDependenciesKey(const Environment * const env, const std::string & r, const std::string & h, const MetadataKeyType t, const std::string & v) : - Pimp<UnavailableRepositoryDependenciesKey>(env, r, h, t, v) + _imp(env, r, h, t, v) { } diff --git a/paludis/repositories/unavailable/unavailable_repository_dependencies_key.hh b/paludis/repositories/unavailable/unavailable_repository_dependencies_key.hh index 38e65aa48..7813ab446 100644 --- a/paludis/repositories/unavailable/unavailable_repository_dependencies_key.hh +++ b/paludis/repositories/unavailable/unavailable_repository_dependencies_key.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -28,9 +28,11 @@ namespace paludis namespace unavailable_repository { class UnavailableRepositoryDependenciesKey : - public MetadataSpecTreeKey<DependencySpecTree>, - private Pimp<UnavailableRepositoryDependenciesKey> + public MetadataSpecTreeKey<DependencySpecTree> { + private: + Pimp<UnavailableRepositoryDependenciesKey> _imp; + public: UnavailableRepositoryDependenciesKey( const Environment * const env, diff --git a/paludis/repositories/unavailable/unavailable_repository_file.cc b/paludis/repositories/unavailable/unavailable_repository_file.cc index 4c0f723b4..a2f39d843 100644 --- a/paludis/repositories/unavailable/unavailable_repository_file.cc +++ b/paludis/repositories/unavailable/unavailable_repository_file.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -60,7 +60,7 @@ namespace paludis } UnavailableRepositoryFile::UnavailableRepositoryFile(const FSPath & f) : - Pimp<UnavailableRepositoryFile>() + _imp() { _load(f); } diff --git a/paludis/repositories/unavailable/unavailable_repository_file.hh b/paludis/repositories/unavailable/unavailable_repository_file.hh index 1920af781..2b51a0ec6 100644 --- a/paludis/repositories/unavailable/unavailable_repository_file.hh +++ b/paludis/repositories/unavailable/unavailable_repository_file.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -29,10 +29,11 @@ namespace paludis { namespace unavailable_repository { - class PALUDIS_VISIBLE UnavailableRepositoryFile : - private Pimp<UnavailableRepositoryFile> + class PALUDIS_VISIBLE UnavailableRepositoryFile { private: + Pimp<UnavailableRepositoryFile> _imp; + void _load(const FSPath &); public: diff --git a/paludis/repositories/unavailable/unavailable_repository_id.cc b/paludis/repositories/unavailable/unavailable_repository_id.cc index 95d0e437a..0a1ff6f12 100644 --- a/paludis/repositories/unavailable/unavailable_repository_id.cc +++ b/paludis/repositories/unavailable/unavailable_repository_id.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2010 Ciaran McCreesh + * Copyright (c) 2010, 2011 Ciaran McCreesh * * 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 @@ -94,8 +94,7 @@ namespace paludis } UnavailableRepositoryID::UnavailableRepositoryID(const UnavailableRepositoryIDParams & entry) : - Pimp<UnavailableRepositoryID>(entry), - _imp(Pimp<UnavailableRepositoryID>::_imp) + _imp(entry) { if (_imp->dependencies_key) add_metadata_key(_imp->dependencies_key); diff --git a/paludis/repositories/unavailable/unavailable_repository_id.hh b/paludis/repositories/unavailable/unavailable_repository_id.hh index 041fabd7a..5ca187787 100644 --- a/paludis/repositories/unavailable/unavailable_repository_id.hh +++ b/paludis/repositories/unavailable/unavailable_repository_id.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -58,11 +58,10 @@ namespace paludis class PALUDIS_VISIBLE UnavailableRepositoryID : public PackageID, - private Pimp<UnavailableRepositoryID>, public std::enable_shared_from_this<UnavailableRepositoryID> { private: - Pimp<UnavailableRepositoryID>::ImpPtr & _imp; + Pimp<UnavailableRepositoryID> _imp; protected: void need_keys_added() const; diff --git a/paludis/repositories/unavailable/unavailable_repository_store.cc b/paludis/repositories/unavailable/unavailable_repository_store.cc index d246b6853..85e9ffdf6 100644 --- a/paludis/repositories/unavailable/unavailable_repository_store.cc +++ b/paludis/repositories/unavailable/unavailable_repository_store.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -79,7 +79,7 @@ UnavailableRepositoryStore::UnavailableRepositoryStore( const Environment * const env, const UnavailableRepository * const repo, const FSPath & f) : - Pimp<UnavailableRepositoryStore>(repo) + _imp(repo) { _populate(env, f); } diff --git a/paludis/repositories/unavailable/unavailable_repository_store.hh b/paludis/repositories/unavailable/unavailable_repository_store.hh index 8dd5ff016..a2a51f84a 100644 --- a/paludis/repositories/unavailable/unavailable_repository_store.hh +++ b/paludis/repositories/unavailable/unavailable_repository_store.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -32,10 +32,11 @@ namespace paludis { namespace unavailable_repository { - class PALUDIS_VISIBLE UnavailableRepositoryStore : - private Pimp<UnavailableRepositoryStore> + class PALUDIS_VISIBLE UnavailableRepositoryStore { private: + Pimp<UnavailableRepositoryStore> _imp; + void _populate(const Environment * const env, const FSPath & f); void _populate_one(const Environment * const env, const FSPath & f); diff --git a/paludis/repositories/unpackaged/installed_id.cc b/paludis/repositories/unpackaged/installed_id.cc index 4fa31a405..a6a8056eb 100644 --- a/paludis/repositories/unpackaged/installed_id.cc +++ b/paludis/repositories/unpackaged/installed_id.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -454,8 +454,7 @@ namespace paludis InstalledUnpackagedID::InstalledUnpackagedID(const Environment * const e, const QualifiedPackageName & q, const VersionSpec & v, const SlotName & s, const RepositoryName & n, const FSPath & l, const std::string &, const FSPath & ro, const NDBAM * const d) : - Pimp<InstalledUnpackagedID>(e, this, q, v, s, n, l, ro, d), - _imp(Pimp<InstalledUnpackagedID>::_imp) + _imp(e, this, q, v, s, n, l, ro, d) { add_metadata_key(_imp->fs_location_key); add_metadata_key(_imp->slot_key); diff --git a/paludis/repositories/unpackaged/installed_id.hh b/paludis/repositories/unpackaged/installed_id.hh index 4a85b10e5..875a34134 100644 --- a/paludis/repositories/unpackaged/installed_id.hh +++ b/paludis/repositories/unpackaged/installed_id.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -34,11 +34,10 @@ namespace paludis { class InstalledUnpackagedID : public PackageID, - private Pimp<InstalledUnpackagedID>, public std::enable_shared_from_this<InstalledUnpackagedID> { private: - Pimp<InstalledUnpackagedID>::ImpPtr & _imp; + Pimp<InstalledUnpackagedID> _imp; protected: void need_keys_added() const; diff --git a/paludis/repositories/unpackaged/installed_repository.cc b/paludis/repositories/unpackaged/installed_repository.cc index 1d864eaf4..557bc18f2 100644 --- a/paludis/repositories/unpackaged/installed_repository.cc +++ b/paludis/repositories/unpackaged/installed_repository.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -92,7 +92,6 @@ namespace paludis InstalledUnpackagedRepository::InstalledUnpackagedRepository( const RepositoryName & n, const InstalledUnpackagedRepositoryParams & p) : - Pimp<InstalledUnpackagedRepository>(p), Repository(p.environment(), n, make_named_values<RepositoryCapabilities>( n::destination_interface() = this, n::environment_variable_interface() = static_cast<RepositoryEnvironmentVariableInterface *>(0), @@ -101,7 +100,7 @@ InstalledUnpackagedRepository::InstalledUnpackagedRepository( n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - _imp(Pimp<InstalledUnpackagedRepository>::_imp) + _imp(p) { _add_metadata_keys(); } diff --git a/paludis/repositories/unpackaged/installed_repository.hh b/paludis/repositories/unpackaged/installed_repository.hh index 2ca0b9412..e93370425 100644 --- a/paludis/repositories/unpackaged/installed_repository.hh +++ b/paludis/repositories/unpackaged/installed_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -45,12 +45,12 @@ namespace paludis } class PALUDIS_VISIBLE InstalledUnpackagedRepository : - private Pimp<InstalledUnpackagedRepository>, public Repository, public RepositoryDestinationInterface { private: - Pimp<InstalledUnpackagedRepository>::ImpPtr & _imp; + Pimp<InstalledUnpackagedRepository> _imp; + void _add_metadata_keys() const; protected: diff --git a/paludis/repositories/unpackaged/unpackaged_id.cc b/paludis/repositories/unpackaged/unpackaged_id.cc index 133b30607..37d9b7e07 100644 --- a/paludis/repositories/unpackaged/unpackaged_id.cc +++ b/paludis/repositories/unpackaged/unpackaged_id.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -119,8 +119,7 @@ namespace paludis UnpackagedID::UnpackagedID(const Environment * const e, const QualifiedPackageName & q, const VersionSpec & v, const SlotName & s, const RepositoryName & n, const FSPath & l, const std::string & b, const std::string & r, const std::string & d, const Tribool ds, const Tribool dw) : - Pimp<UnpackagedID>(e, q, v, s, n, l, b, r, d, ds, dw, this), - _imp(Pimp<UnpackagedID>::_imp) + _imp(e, q, v, s, n, l, b, r, d, ds, dw, this) { add_metadata_key(_imp->slot_key); add_metadata_key(_imp->fs_location_key); diff --git a/paludis/repositories/unpackaged/unpackaged_id.hh b/paludis/repositories/unpackaged/unpackaged_id.hh index 635057645..8b849362b 100644 --- a/paludis/repositories/unpackaged/unpackaged_id.hh +++ b/paludis/repositories/unpackaged/unpackaged_id.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -32,11 +32,10 @@ namespace paludis { class UnpackagedID : public PackageID, - private Pimp<UnpackagedID>, public std::enable_shared_from_this<UnpackagedID> { private: - Pimp<UnpackagedID>::ImpPtr & _imp; + Pimp<UnpackagedID> _imp; protected: void need_keys_added() const; diff --git a/paludis/repositories/unpackaged/unpackaged_key.cc b/paludis/repositories/unpackaged/unpackaged_key.cc index d2aecb806..119d1a61b 100644 --- a/paludis/repositories/unpackaged/unpackaged_key.cc +++ b/paludis/repositories/unpackaged/unpackaged_key.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -63,7 +63,7 @@ UnpackagedDependencyKey::UnpackagedDependencyKey(const Environment * const env, const std::string & r, const std::string & h, const MetadataKeyType t, const std::shared_ptr<const DependenciesLabelSequence> & l, const std::string & v) : - Pimp<UnpackagedDependencyKey>(env, v, l, r, h, t) + _imp(env, v, l, r, h, t) { } @@ -139,7 +139,7 @@ namespace paludis UnpackagedChoicesKey::UnpackagedChoicesKey(const Environment * const env, const std::string & r, const std::string & h, const MetadataKeyType t, const UnpackagedID * const id) : - Pimp<UnpackagedChoicesKey>(env, id, r, h, t) + _imp(env, id, r, h, t) { } diff --git a/paludis/repositories/unpackaged/unpackaged_key.hh b/paludis/repositories/unpackaged/unpackaged_key.hh index 39519b1f4..2eedd90cd 100644 --- a/paludis/repositories/unpackaged/unpackaged_key.hh +++ b/paludis/repositories/unpackaged/unpackaged_key.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -30,9 +30,11 @@ namespace paludis struct UnpackagedID; class UnpackagedDependencyKey : - public MetadataSpecTreeKey<DependencySpecTree>, - private Pimp<UnpackagedDependencyKey> + public MetadataSpecTreeKey<DependencySpecTree> { + private: + Pimp<UnpackagedDependencyKey> _imp; + public: UnpackagedDependencyKey(const Environment * const env, const std::string & r, const std::string & h, const MetadataKeyType t, @@ -55,9 +57,11 @@ namespace paludis }; class UnpackagedChoicesKey : - public MetadataValueKey<std::shared_ptr<const Choices> >, - private Pimp<UnpackagedChoicesKey> + public MetadataValueKey<std::shared_ptr<const Choices> > { + private: + Pimp<UnpackagedChoicesKey> _imp; + public: UnpackagedChoicesKey(const Environment * const env, const std::string & r, const std::string & h, const MetadataKeyType t, diff --git a/paludis/repositories/unpackaged/unpackaged_repository.cc b/paludis/repositories/unpackaged/unpackaged_repository.cc index 51e4c7fa7..b3ec19609 100644 --- a/paludis/repositories/unpackaged/unpackaged_repository.cc +++ b/paludis/repositories/unpackaged/unpackaged_repository.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -94,7 +94,6 @@ namespace paludis UnpackagedRepository::UnpackagedRepository(const RepositoryName & n, const UnpackagedRepositoryParams & params) : - Pimp<UnpackagedRepository>(n, params), Repository(params.environment(), n, make_named_values<RepositoryCapabilities>( n::destination_interface() = static_cast<RepositoryDestinationInterface *>(0), n::environment_variable_interface() = static_cast<RepositoryEnvironmentVariableInterface *>(0), @@ -103,7 +102,7 @@ UnpackagedRepository::UnpackagedRepository(const RepositoryName & n, n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - _imp(Pimp<UnpackagedRepository>::_imp) + _imp(n, params) { _add_metadata_keys(); } diff --git a/paludis/repositories/unpackaged/unpackaged_repository.hh b/paludis/repositories/unpackaged/unpackaged_repository.hh index 8e3a79917..ad0efaa88 100644 --- a/paludis/repositories/unpackaged/unpackaged_repository.hh +++ b/paludis/repositories/unpackaged/unpackaged_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -63,11 +63,11 @@ namespace paludis } class PALUDIS_VISIBLE UnpackagedRepository : - private Pimp<UnpackagedRepository>, public Repository { private: - Pimp<UnpackagedRepository>::ImpPtr & _imp; + Pimp<UnpackagedRepository> _imp; + void _add_metadata_keys() const; protected: diff --git a/paludis/repositories/unpackaged/unpackaged_stripper.cc b/paludis/repositories/unpackaged/unpackaged_stripper.cc index 62be8cf46..b4147409b 100644 --- a/paludis/repositories/unpackaged/unpackaged_stripper.cc +++ b/paludis/repositories/unpackaged/unpackaged_stripper.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -47,8 +47,7 @@ UnpackagedStripper::UnpackagedStripper(const UnpackagedStripperOptions & options n::split() = options.split(), n::strip() = options.strip() )), - Pimp<UnpackagedStripper>(options), - _imp(Pimp<UnpackagedStripper>::_imp) + _imp(options) { } diff --git a/paludis/repositories/unpackaged/unpackaged_stripper.hh b/paludis/repositories/unpackaged/unpackaged_stripper.hh index 6d38dc7e1..32383b70e 100644 --- a/paludis/repositories/unpackaged/unpackaged_stripper.hh +++ b/paludis/repositories/unpackaged/unpackaged_stripper.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -50,11 +50,10 @@ namespace paludis }; class UnpackagedStripper : - public Stripper, - private Pimp<UnpackagedStripper> + public Stripper { private: - Pimp<UnpackagedStripper>::ImpPtr & _imp; + Pimp<UnpackagedStripper> _imp; protected: virtual void on_strip(const FSPath &); diff --git a/paludis/repositories/unwritten/unwritten_id.cc b/paludis/repositories/unwritten/unwritten_id.cc index 2aada4fd2..588b93edf 100644 --- a/paludis/repositories/unwritten/unwritten_id.cc +++ b/paludis/repositories/unwritten/unwritten_id.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -82,8 +82,7 @@ namespace paludis } UnwrittenID::UnwrittenID(const UnwrittenIDParams & entry) : - Pimp<UnwrittenID>(entry), - _imp(Pimp<UnwrittenID>::_imp) + _imp(entry) { if (_imp->slot_key) add_metadata_key(_imp->slot_key); diff --git a/paludis/repositories/unwritten/unwritten_id.hh b/paludis/repositories/unwritten/unwritten_id.hh index abef3bef0..58dd3ee2a 100644 --- a/paludis/repositories/unwritten/unwritten_id.hh +++ b/paludis/repositories/unwritten/unwritten_id.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -70,11 +70,10 @@ namespace paludis }; class PALUDIS_VISIBLE UnwrittenID : - public PackageID, - private Pimp<UnwrittenID> + public PackageID { private: - Pimp<UnwrittenID>::ImpPtr & _imp; + Pimp<UnwrittenID> _imp; protected: void need_keys_added() const; diff --git a/paludis/repositories/unwritten/unwritten_repository.cc b/paludis/repositories/unwritten/unwritten_repository.cc index 3d719d2b1..2e393ea3d 100644 --- a/paludis/repositories/unwritten/unwritten_repository.cc +++ b/paludis/repositories/unwritten/unwritten_repository.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -92,7 +92,6 @@ UnwrittenRepositoryConfigurationError::UnwrittenRepositoryConfigurationError(con } UnwrittenRepository::UnwrittenRepository(const UnwrittenRepositoryParams & p) : - Pimp<UnwrittenRepository>(this, p), Repository( p.environment(), p.name(), @@ -104,7 +103,7 @@ UnwrittenRepository::UnwrittenRepository(const UnwrittenRepositoryParams & p) : n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - _imp(Pimp<UnwrittenRepository>::_imp) + _imp(this, p) { _add_metadata_keys(); } diff --git a/paludis/repositories/unwritten/unwritten_repository.hh b/paludis/repositories/unwritten/unwritten_repository.hh index ec3ffb760..46cd1d5cd 100644 --- a/paludis/repositories/unwritten/unwritten_repository.hh +++ b/paludis/repositories/unwritten/unwritten_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -54,12 +54,11 @@ namespace paludis }; class PALUDIS_VISIBLE UnwrittenRepository : - private Pimp<UnwrittenRepository>, public Repository, public std::enable_shared_from_this<UnwrittenRepository> { private: - Pimp<UnwrittenRepository>::ImpPtr & _imp; + Pimp<UnwrittenRepository> _imp; void _add_metadata_keys(); diff --git a/paludis/repositories/unwritten/unwritten_repository_file.cc b/paludis/repositories/unwritten/unwritten_repository_file.cc index 157bc9fee..c1fc8e9c2 100644 --- a/paludis/repositories/unwritten/unwritten_repository_file.cc +++ b/paludis/repositories/unwritten/unwritten_repository_file.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -65,7 +65,7 @@ namespace paludis } UnwrittenRepositoryFile::UnwrittenRepositoryFile(const FSPath & f) : - Pimp<UnwrittenRepositoryFile>() + _imp() { _load(f); } @@ -363,4 +363,3 @@ template class Pimp<UnwrittenRepositoryFile>; template class WrappedForwardIterator<UnwrittenRepositoryFile::ConstIteratorTag, const UnwrittenRepositoryFileEntry>; - diff --git a/paludis/repositories/unwritten/unwritten_repository_file.hh b/paludis/repositories/unwritten/unwritten_repository_file.hh index 61567445a..3cef83d05 100644 --- a/paludis/repositories/unwritten/unwritten_repository_file.hh +++ b/paludis/repositories/unwritten/unwritten_repository_file.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -67,10 +67,11 @@ namespace paludis NamedValue<n::version, VersionSpec> version; }; - class PALUDIS_VISIBLE UnwrittenRepositoryFile : - private Pimp<UnwrittenRepositoryFile> + class PALUDIS_VISIBLE UnwrittenRepositoryFile { private: + Pimp<UnwrittenRepositoryFile> _imp; + void _load(const FSPath &); public: diff --git a/paludis/repositories/unwritten/unwritten_repository_store.cc b/paludis/repositories/unwritten/unwritten_repository_store.cc index 0592825c3..2626d7c09 100644 --- a/paludis/repositories/unwritten/unwritten_repository_store.cc +++ b/paludis/repositories/unwritten/unwritten_repository_store.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -80,7 +80,7 @@ UnwrittenRepositoryStore::UnwrittenRepositoryStore( const Environment * const env, const UnwrittenRepository * const repo, const FSPath & f) : - Pimp<UnwrittenRepositoryStore>(repo) + _imp(repo) { UnwrittenRepositoryInformation info(repository_information(f)); _imp->entry_suffix = info.entry_suffix(); diff --git a/paludis/repositories/unwritten/unwritten_repository_store.hh b/paludis/repositories/unwritten/unwritten_repository_store.hh index ad1b63091..831f5db32 100644 --- a/paludis/repositories/unwritten/unwritten_repository_store.hh +++ b/paludis/repositories/unwritten/unwritten_repository_store.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2008, 2010 Ciaran McCreesh + * Copyright (c) 2008, 2010, 2011 Ciaran McCreesh * * 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 @@ -48,10 +48,11 @@ namespace paludis NamedValue<n::role, std::string> role; }; - class PALUDIS_VISIBLE UnwrittenRepositoryStore : - private Pimp<UnwrittenRepositoryStore> + class PALUDIS_VISIBLE UnwrittenRepositoryStore { private: + Pimp<UnwrittenRepositoryStore> _imp; + void _populate_one(const Environment * const env, const FSPath & f); void _populate(const Environment * const env, const FSPath & f); diff --git a/paludis/repositories/virtuals/installed_virtuals_repository.cc b/paludis/repositories/virtuals/installed_virtuals_repository.cc index 43e73081e..8d22042fa 100644 --- a/paludis/repositories/virtuals/installed_virtuals_repository.cc +++ b/paludis/repositories/virtuals/installed_virtuals_repository.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -116,8 +116,7 @@ InstalledVirtualsRepository::InstalledVirtualsRepository(const Environment * con n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - Pimp<InstalledVirtualsRepository>(env, r), - _imp(Pimp<InstalledVirtualsRepository>::_imp) + _imp(env, r) { add_metadata_key(_imp->root_key); add_metadata_key(_imp->format_key); diff --git a/paludis/repositories/virtuals/installed_virtuals_repository.hh b/paludis/repositories/virtuals/installed_virtuals_repository.hh index a6b78be47..615e6f9c5 100644 --- a/paludis/repositories/virtuals/installed_virtuals_repository.hh +++ b/paludis/repositories/virtuals/installed_virtuals_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -35,11 +35,10 @@ namespace paludis class PALUDIS_VISIBLE InstalledVirtualsRepository : public Repository, public RepositoryDestinationInterface, - public std::enable_shared_from_this<InstalledVirtualsRepository>, - private Pimp<InstalledVirtualsRepository> + public std::enable_shared_from_this<InstalledVirtualsRepository> { private: - Pimp<InstalledVirtualsRepository>::ImpPtr & _imp; + Pimp<InstalledVirtualsRepository> _imp; void need_ids() const; diff --git a/paludis/repositories/virtuals/package_id.cc b/paludis/repositories/virtuals/package_id.cc index 4f230042d..c6b20de1d 100644 --- a/paludis/repositories/virtuals/package_id.cc +++ b/paludis/repositories/virtuals/package_id.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -97,8 +97,7 @@ VirtualsDepKey::VirtualsDepKey(const Environment * const e, const std::string & const std::shared_ptr<const PackageID> & v, const std::shared_ptr<const DependenciesLabelSequence> & l, const bool exact) : - Pimp<VirtualsDepKey>(e, v, l, exact, r, h), - _imp(Pimp<VirtualsDepKey>::_imp) + _imp(e, v, l, exact, r, h) { } @@ -202,8 +201,7 @@ VirtualsPackageID::VirtualsPackageID( const QualifiedPackageName & virtual_name, const std::shared_ptr<const PackageID> & virtual_for, const bool exact) : - Pimp<VirtualsPackageID>(e, r, virtual_name, virtual_for, exact), - _imp(Pimp<VirtualsPackageID>::_imp) + _imp(e, r, virtual_name, virtual_for, exact) { add_metadata_key(_imp->virtual_for); add_metadata_key(_imp->bdep); diff --git a/paludis/repositories/virtuals/package_id.hh b/paludis/repositories/virtuals/package_id.hh index 00152a1b0..ef1f5f2ee 100644 --- a/paludis/repositories/virtuals/package_id.hh +++ b/paludis/repositories/virtuals/package_id.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -29,11 +29,10 @@ namespace paludis namespace virtuals { class VirtualsDepKey : - public MetadataSpecTreeKey<DependencySpecTree>, - private Pimp<VirtualsDepKey> + public MetadataSpecTreeKey<DependencySpecTree> { private: - Pimp<VirtualsDepKey>::ImpPtr & _imp; + Pimp<VirtualsDepKey> _imp; public: VirtualsDepKey(const Environment * const, const std::string &, const std::string &, @@ -58,11 +57,10 @@ namespace paludis }; class VirtualsPackageID : - private Pimp<VirtualsPackageID>, public PackageID { private: - Pimp<VirtualsPackageID>::ImpPtr & _imp; + Pimp<VirtualsPackageID> _imp; protected: virtual void need_keys_added() const; diff --git a/paludis/repositories/virtuals/virtuals_repository.cc b/paludis/repositories/virtuals/virtuals_repository.cc index c1af193d1..8d9340f6c 100644 --- a/paludis/repositories/virtuals/virtuals_repository.cc +++ b/paludis/repositories/virtuals/virtuals_repository.cc @@ -129,8 +129,7 @@ VirtualsRepository::VirtualsRepository(const Environment * const env) : n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0), n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0) )), - Pimp<VirtualsRepository>(env), - _imp(Pimp<VirtualsRepository>::_imp) + _imp(env) { add_metadata_key(_imp->format_key); } diff --git a/paludis/repositories/virtuals/virtuals_repository.hh b/paludis/repositories/virtuals/virtuals_repository.hh index 649eda329..048bc9e3d 100644 --- a/paludis/repositories/virtuals/virtuals_repository.hh +++ b/paludis/repositories/virtuals/virtuals_repository.hh @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh + * Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Ciaran McCreesh * * 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 @@ -34,11 +34,10 @@ namespace paludis class PALUDIS_VISIBLE VirtualsRepository : public Repository, public RepositoryMakeVirtualsInterface, - private Pimp<VirtualsRepository>, public std::enable_shared_from_this<VirtualsRepository> { private: - Pimp<VirtualsRepository>::ImpPtr & _imp; + Pimp<VirtualsRepository> _imp; void need_names() const; void need_ids() const; |