aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Fernando J. Pereda <ferdy@ferdyx.org> 2008-02-21 20:43:56 +0000
committerAvatar Fernando J. Pereda <ferdy@ferdyx.org> 2008-02-21 20:43:56 +0000
commitdbad9d5f818882b730626028da3943a6c1039ef7 (patch)
tree3d96775139c17f12ec1592a233e13a2ed3083dda
parent9567079d3b62aba92acaa7b8e9d4c13a1788b034 (diff)
downloadpaludis-dbad9d5f818882b730626028da3943a6c1039ef7.tar.gz
paludis-dbad9d5f818882b730626028da3943a6c1039ef7.tar.xz
Add PackageID::transient_key and use it to avoid reporting
'unpackaged' packages as 'missing'. Fixes ticket:410
-rw-r--r--doc/api/cplusplus/examples/example_metadata_key.cc6
-rw-r--r--paludis/literal_metadata_key.cc1
-rw-r--r--paludis/metadata_key.cc5
-rw-r--r--paludis/metadata_key.hh20
-rw-r--r--paludis/package_id.hh6
-rw-r--r--paludis/report_task.cc2
-rw-r--r--paludis/repositories/cran/cran_package_id.cc7
-rw-r--r--paludis/repositories/cran/cran_package_id.hh1
-rw-r--r--paludis/repositories/e/e_installed_repository_id.cc6
-rw-r--r--paludis/repositories/e/e_installed_repository_id.hh2
-rw-r--r--paludis/repositories/e/ebuild_id.cc6
-rw-r--r--paludis/repositories/e/ebuild_id.hh2
-rw-r--r--paludis/repositories/e/qa/metadata_keys.cc5
-rw-r--r--paludis/repositories/e/qa/spec_keys.cc4
-rw-r--r--paludis/repositories/fake/fake_package_id.cc6
-rw-r--r--paludis/repositories/fake/fake_package_id.hh1
-rw-r--r--paludis/repositories/gems/gem_specification.cc6
-rw-r--r--paludis/repositories/gems/gem_specification.hh1
-rw-r--r--paludis/repositories/unpackaged/installed_id.cc36
-rw-r--r--paludis/repositories/unpackaged/installed_id.hh1
-rw-r--r--paludis/repositories/unpackaged/unpackaged_id.cc6
-rw-r--r--paludis/repositories/unpackaged/unpackaged_id.hh1
-rw-r--r--paludis/repositories/virtuals/package_id.cc6
-rw-r--r--paludis/repositories/virtuals/package_id.hh1
-rw-r--r--paludis/util/visitor-fwd.hh12
-rw-r--r--paludis/util/visitor.hh107
-rw-r--r--paludis/util/visitor_cast.hh22
-rw-r--r--python/metadata_key.cc5
-rw-r--r--ruby/metadata_key.cc6
-rw-r--r--src/clients/gtkpaludis/libgtkpaludis/version_info_model.cc5
-rw-r--r--src/clients/inquisitio/key_extractor.cc5
-rw-r--r--src/clients/instruo/instruo.cc5
-rw-r--r--src/clients/paludis/applets.cc5
-rw-r--r--src/clients/paludis/info.cc5
-rw-r--r--src/clients/qualudis/qualudis.cc5
-rw-r--r--src/output/console_query_task.cc17
-rw-r--r--src/output/mask_displayer.cc5
37 files changed, 331 insertions, 11 deletions
diff --git a/doc/api/cplusplus/examples/example_metadata_key.cc b/doc/api/cplusplus/examples/example_metadata_key.cc
index 7a057f7..abd8f33 100644
--- a/doc/api/cplusplus/examples/example_metadata_key.cc
+++ b/doc/api/cplusplus/examples/example_metadata_key.cc
@@ -64,6 +64,12 @@ namespace
cout << indent << left << setw(30) << " Value:" << " " << key.value() << endl;
}
+ void visit(const MetadataValueKey<bool> & key)
+ {
+ cout << indent << left << setw(30) << " Class:" << " " << "MetadataValueKey<bool>" << endl;
+ cout << indent << left << setw(30) << " Value:" << " " << key.value() << endl;
+ }
+
void visit(const MetadataValueKey<FSEntry> & key)
{
cout << indent << left << setw(30) << " Class:" << " " << "MetadataValueKey<FSEntry>" << endl;
diff --git a/paludis/literal_metadata_key.cc b/paludis/literal_metadata_key.cc
index 91f9afa..694c517 100644
--- a/paludis/literal_metadata_key.cc
+++ b/paludis/literal_metadata_key.cc
@@ -180,5 +180,6 @@ LiteralMetadataValueKey<T_>::value() const
template class LiteralMetadataValueKey<FSEntry>;
template class LiteralMetadataValueKey<std::string>;
+template class LiteralMetadataValueKey<bool>;
template class LiteralMetadataValueKey<tr1::shared_ptr<const PackageID> >;
diff --git a/paludis/metadata_key.cc b/paludis/metadata_key.cc
index c96c32e..92f7be1 100644
--- a/paludis/metadata_key.cc
+++ b/paludis/metadata_key.cc
@@ -109,6 +109,10 @@ ExtraMetadataValueKeyMethods<long>::~ExtraMetadataValueKeyMethods()
{
}
+ExtraMetadataValueKeyMethods<bool>::~ExtraMetadataValueKeyMethods()
+{
+}
+
ExtraMetadataValueKeyMethods<tr1::shared_ptr<const PackageID> >::~ExtraMetadataValueKeyMethods()
{
}
@@ -154,6 +158,7 @@ template class MetadataSpecTreeKey<SimpleURISpecTree>;
template class MetadataValueKey<std::string>;
template class MetadataValueKey<long>;
+template class MetadataValueKey<bool>;
template class MetadataValueKey<FSEntry>;
template class MetadataValueKey<tr1::shared_ptr<const PackageID> >;
template class MetadataValueKey<tr1::shared_ptr<const Contents> >;
diff --git a/paludis/metadata_key.hh b/paludis/metadata_key.hh
index 0c901a0..724d228 100644
--- a/paludis/metadata_key.hh
+++ b/paludis/metadata_key.hh
@@ -76,6 +76,7 @@ namespace paludis
MetadataSpecTreeKey<RestrictSpecTree>,
MetadataValueKey<std::string>,
MetadataValueKey<long>,
+ MetadataValueKey<bool>,
MetadataValueKey<FSEntry>,
MetadataValueKey<tr1::shared_ptr<const PackageID> >,
MetadataValueKey<tr1::shared_ptr<const Contents> >,
@@ -209,6 +210,25 @@ namespace paludis
};
/**
+ * Extra methods for MetadataValueKey with bool value type.
+ *
+ * \ingroup g_metadata_key
+ * \since 0.26
+ */
+ template <>
+ class PALUDIS_VISIBLE ExtraMetadataValueKeyMethods<bool>
+ {
+ public:
+ virtual ~ExtraMetadataValueKeyMethods() = 0;
+
+ /**
+ * Return a formatted version of our value.
+ */
+ virtual std::string pretty_print() const
+ PALUDIS_ATTRIBUTE((warn_unused_result)) = 0;
+ };
+
+ /**
* Extra methods for MetadataValueKey with PackageID value type.
*
* \ingroup g_metadata_key
diff --git a/paludis/package_id.hh b/paludis/package_id.hh
index 8f8bd4d..9479c8c 100644
--- a/paludis/package_id.hh
+++ b/paludis/package_id.hh
@@ -286,6 +286,12 @@ namespace paludis
*/
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_all_distfiles_key() const = 0;
+ /**
+ * The transient_key, if non-zero, indicates whether this
+ * PackageID's originating repository is volatile.
+ */
+ virtual const tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const = 0;
+
///\}
///\name Actions
diff --git a/paludis/report_task.cc b/paludis/report_task.cc
index 039223a..8b27792 100644
--- a/paludis/report_task.cc
+++ b/paludis/report_task.cc
@@ -208,7 +208,7 @@ ReportTask::execute()
qo_best_version_only));
if (installable->empty())
- is_missing = true;
+ is_missing = ! ((*v)->transient_key() && (*v)->transient_key()->value());
else
origin = *installable->last();
}
diff --git a/paludis/repositories/cran/cran_package_id.cc b/paludis/repositories/cran/cran_package_id.cc
index dedde50..bee81d7 100644
--- a/paludis/repositories/cran/cran_package_id.cc
+++ b/paludis/repositories/cran/cran_package_id.cc
@@ -548,3 +548,10 @@ CRANPackageID::size_of_all_distfiles_key() const
{
return tr1::shared_ptr<const MetadataValueKey<long> >();
}
+
+const tr1::shared_ptr<const MetadataValueKey<bool> >
+CRANPackageID::transient_key() const
+{
+ return tr1::shared_ptr<const MetadataValueKey<bool> >();
+}
+
diff --git a/paludis/repositories/cran/cran_package_id.hh b/paludis/repositories/cran/cran_package_id.hh
index e19649d..6f94af2 100644
--- a/paludis/repositories/cran/cran_package_id.hh
+++ b/paludis/repositories/cran/cran_package_id.hh
@@ -78,6 +78,7 @@ namespace paludis
virtual const tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_download_required_key() const;
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_all_distfiles_key() const;
+ virtual const tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
virtual bool supports_action(const SupportsActionTestBase &) const PALUDIS_ATTRIBUTE((warn_unused_result));
diff --git a/paludis/repositories/e/e_installed_repository_id.cc b/paludis/repositories/e/e_installed_repository_id.cc
index b69f5b3..e600104 100644
--- a/paludis/repositories/e/e_installed_repository_id.cc
+++ b/paludis/repositories/e/e_installed_repository_id.cc
@@ -520,6 +520,12 @@ EInstalledRepositoryID::license_key() const
return _imp->license;
}
+const tr1::shared_ptr<const MetadataValueKey<bool> >
+EInstalledRepositoryID::transient_key() const
+{
+ return tr1::shared_ptr<const MetadataValueKey<bool> >();
+}
+
const tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
EInstalledRepositoryID::inherited_key() const
{
diff --git a/paludis/repositories/e/e_installed_repository_id.hh b/paludis/repositories/e/e_installed_repository_id.hh
index e905fff..be1ec22 100644
--- a/paludis/repositories/e/e_installed_repository_id.hh
+++ b/paludis/repositories/e/e_installed_repository_id.hh
@@ -86,6 +86,8 @@ namespace paludis
virtual const tr1::shared_ptr<const MetadataCollectionKey<Set<std::string> > > inherited_key() const;
virtual const tr1::shared_ptr<const MetadataSpecTreeKey<LicenseSpecTree> > license_key() const;
+ virtual const tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+
virtual bool supports_action(const SupportsActionTestBase &) const PALUDIS_ATTRIBUTE((warn_unused_result));
virtual void perform_action(Action &) const;
diff --git a/paludis/repositories/e/ebuild_id.cc b/paludis/repositories/e/ebuild_id.cc
index 9b14a25..9076832 100644
--- a/paludis/repositories/e/ebuild_id.cc
+++ b/paludis/repositories/e/ebuild_id.cc
@@ -528,6 +528,12 @@ EbuildID::use_key() const
return _imp->use;
}
+const tr1::shared_ptr<const MetadataValueKey<bool> >
+EbuildID::transient_key() const
+{
+ return tr1::shared_ptr<const MetadataValueKey<bool> >();
+}
+
const tr1::shared_ptr<const MetadataSpecTreeKey<LicenseSpecTree> >
EbuildID::license_key() const
{
diff --git a/paludis/repositories/e/ebuild_id.hh b/paludis/repositories/e/ebuild_id.hh
index 4c5d410..f61d0a5 100644
--- a/paludis/repositories/e/ebuild_id.hh
+++ b/paludis/repositories/e/ebuild_id.hh
@@ -91,6 +91,8 @@ namespace paludis
virtual const tr1::shared_ptr<const MetadataSpecTreeKey<RestrictSpecTree> > restrict_key() const;
virtual const tr1::shared_ptr<const MetadataCollectionKey<UseFlagNameSet> > use_key() const;
+ virtual const tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
+
virtual bool arbitrary_less_than_comparison(const PackageID &) const
PALUDIS_ATTRIBUTE((warn_unused_result));
diff --git a/paludis/repositories/e/qa/metadata_keys.cc b/paludis/repositories/e/qa/metadata_keys.cc
index 8b585fc..de70fc6 100644
--- a/paludis/repositories/e/qa/metadata_keys.cc
+++ b/paludis/repositories/e/qa/metadata_keys.cc
@@ -46,6 +46,11 @@ namespace
long PALUDIS_ATTRIBUTE((unused)) t(k.value());
}
+ void visit(const MetadataValueKey<bool> & k)
+ {
+ bool PALUDIS_ATTRIBUTE((unused)) t(k.value());
+ }
+
void visit(const MetadataValueKey<tr1::shared_ptr<const PackageID> > & k)
{
const tr1::shared_ptr<const PackageID> & PALUDIS_ATTRIBUTE((unused)) p(k.value());
diff --git a/paludis/repositories/e/qa/spec_keys.cc b/paludis/repositories/e/qa/spec_keys.cc
index 1af5795..67ec291 100644
--- a/paludis/repositories/e/qa/spec_keys.cc
+++ b/paludis/repositories/e/qa/spec_keys.cc
@@ -327,6 +327,10 @@ namespace
{
}
+ void visit(const MetadataValueKey<bool> &)
+ {
+ }
+
void visit(const MetadataTimeKey &)
{
}
diff --git a/paludis/repositories/fake/fake_package_id.cc b/paludis/repositories/fake/fake_package_id.cc
index e8dfb7a..bbb0d90 100644
--- a/paludis/repositories/fake/fake_package_id.cc
+++ b/paludis/repositories/fake/fake_package_id.cc
@@ -948,6 +948,12 @@ FakePackageID::size_of_all_distfiles_key() const
return tr1::shared_ptr<const MetadataValueKey<long> >();
}
+const tr1::shared_ptr<const MetadataValueKey<bool> >
+FakePackageID::transient_key() const
+{
+ return tr1::shared_ptr<const MetadataValueKey<bool> >();
+}
+
char
FakePackageID::use_expand_separator() const
{
diff --git a/paludis/repositories/fake/fake_package_id.hh b/paludis/repositories/fake/fake_package_id.hh
index 787bd2d..b6fa457 100644
--- a/paludis/repositories/fake/fake_package_id.hh
+++ b/paludis/repositories/fake/fake_package_id.hh
@@ -223,6 +223,7 @@ namespace paludis
virtual const tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_download_required_key() const;
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_all_distfiles_key() const;
+ virtual const tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
const tr1::shared_ptr<const MetadataSpecTreeKey<LicenseSpecTree> > license_key() const;
const tr1::shared_ptr<FakeMetadataKeywordSetKey> keywords_key();
diff --git a/paludis/repositories/gems/gem_specification.cc b/paludis/repositories/gems/gem_specification.cc
index e3faa30..781dece 100644
--- a/paludis/repositories/gems/gem_specification.cc
+++ b/paludis/repositories/gems/gem_specification.cc
@@ -456,6 +456,12 @@ GemSpecification::size_of_all_distfiles_key() const
return tr1::shared_ptr<const MetadataValueKey<long> >();
}
+const tr1::shared_ptr<const MetadataValueKey<bool> >
+GemSpecification::transient_key() const
+{
+ return tr1::shared_ptr<const MetadataValueKey<bool> >();
+}
+
bool
GemSpecification::arbitrary_less_than_comparison(const PackageID &) const
{
diff --git a/paludis/repositories/gems/gem_specification.hh b/paludis/repositories/gems/gem_specification.hh
index 972c3ff..0ef6fe0 100644
--- a/paludis/repositories/gems/gem_specification.hh
+++ b/paludis/repositories/gems/gem_specification.hh
@@ -113,6 +113,7 @@ namespace paludis
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_download_required_key() const;
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_all_distfiles_key() const;
+ virtual const tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
virtual bool supports_action(const SupportsActionTestBase &) const PALUDIS_ATTRIBUTE((warn_unused_result));
virtual void perform_action(Action &) const;
diff --git a/paludis/repositories/unpackaged/installed_id.cc b/paludis/repositories/unpackaged/installed_id.cc
index 3de0531..d2f061f 100644
--- a/paludis/repositories/unpackaged/installed_id.cc
+++ b/paludis/repositories/unpackaged/installed_id.cc
@@ -39,6 +39,7 @@
#include <paludis/contents.hh>
#include <paludis/environment.hh>
#include <paludis/metadata_key.hh>
+#include <paludis/literal_metadata_key.hh>
#include <paludis/action.hh>
#include <paludis/hashed_containers.hh>
#include <fstream>
@@ -517,6 +518,41 @@ InstalledUnpackagedID::size_of_all_distfiles_key() const
return tr1::shared_ptr<const MetadataValueKey<long> >();
}
+namespace paludis
+{
+ class InstalledUnpackagedTransientKey :
+ public LiteralMetadataValueKey<bool>
+ {
+ public:
+ InstalledUnpackagedTransientKey(
+ const std::string &,
+ const std::string &,
+ const MetadataKeyType,
+ bool v);
+
+ virtual std::string pretty_print() const;
+ };
+}
+
+InstalledUnpackagedTransientKey::InstalledUnpackagedTransientKey(
+ const std::string & r, const std::string & h, const MetadataKeyType t, bool v) :
+ LiteralMetadataValueKey<bool>(r, h, t, v)
+{
+}
+
+std::string
+InstalledUnpackagedTransientKey::pretty_print() const
+{
+ return stringify(value());
+}
+
+const tr1::shared_ptr<const MetadataValueKey<bool> >
+InstalledUnpackagedID::transient_key() const
+{
+ return tr1::shared_ptr<const MetadataValueKey<bool> >(
+ new InstalledUnpackagedTransientKey("transient", "Transient", mkt_internal, true));
+}
+
namespace
{
struct SupportVisitor :
diff --git a/paludis/repositories/unpackaged/installed_id.hh b/paludis/repositories/unpackaged/installed_id.hh
index 0e2ed5b..9b103c2 100644
--- a/paludis/repositories/unpackaged/installed_id.hh
+++ b/paludis/repositories/unpackaged/installed_id.hh
@@ -78,6 +78,7 @@ namespace paludis
virtual const tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_download_required_key() const;
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_all_distfiles_key() const;
+ virtual const tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
virtual bool supports_action(const SupportsActionTestBase &) const PALUDIS_ATTRIBUTE((warn_unused_result));
virtual void perform_action(Action &) const;
diff --git a/paludis/repositories/unpackaged/unpackaged_id.cc b/paludis/repositories/unpackaged/unpackaged_id.cc
index 6ccf5ce..594990b 100644
--- a/paludis/repositories/unpackaged/unpackaged_id.cc
+++ b/paludis/repositories/unpackaged/unpackaged_id.cc
@@ -287,6 +287,12 @@ UnpackagedID::size_of_all_distfiles_key() const
return tr1::shared_ptr<const MetadataValueKey<long> >();
}
+const tr1::shared_ptr<const MetadataValueKey<bool> >
+UnpackagedID::transient_key() const
+{
+ return tr1::shared_ptr<const MetadataValueKey<bool> >();
+}
+
bool
UnpackagedID::supports_action(const SupportsActionTestBase & test) const
{
diff --git a/paludis/repositories/unpackaged/unpackaged_id.hh b/paludis/repositories/unpackaged/unpackaged_id.hh
index 3c2ab4e..5dbb323 100644
--- a/paludis/repositories/unpackaged/unpackaged_id.hh
+++ b/paludis/repositories/unpackaged/unpackaged_id.hh
@@ -76,6 +76,7 @@ namespace paludis
virtual const tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_download_required_key() const;
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_all_distfiles_key() const;
+ virtual const tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
virtual bool supports_action(const SupportsActionTestBase &) const PALUDIS_ATTRIBUTE((warn_unused_result));
virtual void perform_action(Action &) const;
diff --git a/paludis/repositories/virtuals/package_id.cc b/paludis/repositories/virtuals/package_id.cc
index 33e5ebc..f508ded 100644
--- a/paludis/repositories/virtuals/package_id.cc
+++ b/paludis/repositories/virtuals/package_id.cc
@@ -526,3 +526,9 @@ VirtualsPackageID::size_of_all_distfiles_key() const
return tr1::shared_ptr<const MetadataValueKey<long> >();
}
+const tr1::shared_ptr<const MetadataValueKey<bool> >
+VirtualsPackageID::transient_key() const
+{
+ return tr1::shared_ptr<const MetadataValueKey<bool> >();
+}
+
diff --git a/paludis/repositories/virtuals/package_id.hh b/paludis/repositories/virtuals/package_id.hh
index e0b1781..b840335 100644
--- a/paludis/repositories/virtuals/package_id.hh
+++ b/paludis/repositories/virtuals/package_id.hh
@@ -104,6 +104,7 @@ namespace paludis
virtual const tr1::shared_ptr<const MetadataValueKey<FSEntry> > fs_location_key() const;
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_download_required_key() const;
virtual const tr1::shared_ptr<const MetadataValueKey<long> > size_of_all_distfiles_key() const;
+ virtual const tr1::shared_ptr<const MetadataValueKey<bool> > transient_key() const;
virtual bool supports_action(const SupportsActionTestBase &) const PALUDIS_ATTRIBUTE((warn_unused_result));
virtual void perform_action(Action &) const;
diff --git a/paludis/util/visitor-fwd.hh b/paludis/util/visitor-fwd.hh
index e64aa66..c76af8a 100644
--- a/paludis/util/visitor-fwd.hh
+++ b/paludis/util/visitor-fwd.hh
@@ -144,7 +144,17 @@ namespace paludis
typename ContainedItem17_ = NoType<17>,
typename ContainedItem18_ = NoType<18>,
typename ContainedItem19_ = NoType<19>,
- typename ContainedItem20_ = NoType<20> >
+ typename ContainedItem20_ = NoType<20>,
+ typename ContainedItem21_ = NoType<21>,
+ typename ContainedItem22_ = NoType<22>,
+ typename ContainedItem23_ = NoType<23>,
+ typename ContainedItem24_ = NoType<24>,
+ typename ContainedItem25_ = NoType<25>,
+ typename ContainedItem26_ = NoType<26>,
+ typename ContainedItem27_ = NoType<27>,
+ typename ContainedItem28_ = NoType<28>,
+ typename ContainedItem29_ = NoType<29>,
+ typename ContainedItem30_ = NoType<30> >
class VisitorTypes;
template <typename I_>
diff --git a/paludis/util/visitor.hh b/paludis/util/visitor.hh
index d074f34..9de6a00 100644
--- a/paludis/util/visitor.hh
+++ b/paludis/util/visitor.hh
@@ -844,7 +844,17 @@ namespace paludis
public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem17>,
public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem18>,
public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem19>,
- public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem20>
+ public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem20>,
+ public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem21>,
+ public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem22>,
+ public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem23>,
+ public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem24>,
+ public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem25>,
+ public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem26>,
+ public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem27>,
+ public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem28>,
+ public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem29>,
+ public ProxyVisits<H_, LargerH_, const typename H_::ContainedItem30>
{
private:
ConstVisitor<LargerH_> * const _larger_h;
@@ -893,7 +903,17 @@ namespace paludis
public ProxyVisits<H_, LargerH_, typename H_::ContainedItem17>,
public ProxyVisits<H_, LargerH_, typename H_::ContainedItem18>,
public ProxyVisits<H_, LargerH_, typename H_::ContainedItem19>,
- public ProxyVisits<H_, LargerH_, typename H_::ContainedItem20>
+ public ProxyVisits<H_, LargerH_, typename H_::ContainedItem20>,
+ public ProxyVisits<H_, LargerH_, typename H_::ContainedItem21>,
+ public ProxyVisits<H_, LargerH_, typename H_::ContainedItem22>,
+ public ProxyVisits<H_, LargerH_, typename H_::ContainedItem23>,
+ public ProxyVisits<H_, LargerH_, typename H_::ContainedItem24>,
+ public ProxyVisits<H_, LargerH_, typename H_::ContainedItem25>,
+ public ProxyVisits<H_, LargerH_, typename H_::ContainedItem26>,
+ public ProxyVisits<H_, LargerH_, typename H_::ContainedItem27>,
+ public ProxyVisits<H_, LargerH_, typename H_::ContainedItem28>,
+ public ProxyVisits<H_, LargerH_, typename H_::ContainedItem29>,
+ public ProxyVisits<H_, LargerH_, typename H_::ContainedItem30>
{
private:
Visitor<LargerH_> * const _larger_h;
@@ -1026,7 +1046,17 @@ namespace paludis
typename ContainedItem17_,
typename ContainedItem18_,
typename ContainedItem19_,
- typename ContainedItem20_>
+ typename ContainedItem20_,
+ typename ContainedItem21_,
+ typename ContainedItem22_,
+ typename ContainedItem23_,
+ typename ContainedItem24_,
+ typename ContainedItem25_,
+ typename ContainedItem26_,
+ typename ContainedItem27_,
+ typename ContainedItem28_,
+ typename ContainedItem29_,
+ typename ContainedItem30_>
class VisitorTypes
{
public:
@@ -1056,6 +1086,16 @@ namespace paludis
typedef ContainedItem18_ ContainedItem18;
typedef ContainedItem19_ ContainedItem19;
typedef ContainedItem20_ ContainedItem20;
+ typedef ContainedItem21_ ContainedItem21;
+ typedef ContainedItem22_ ContainedItem22;
+ typedef ContainedItem23_ ContainedItem23;
+ typedef ContainedItem24_ ContainedItem24;
+ typedef ContainedItem25_ ContainedItem25;
+ typedef ContainedItem26_ ContainedItem26;
+ typedef ContainedItem27_ ContainedItem27;
+ typedef ContainedItem28_ ContainedItem28;
+ typedef ContainedItem29_ ContainedItem29;
+ typedef ContainedItem30_ ContainedItem30;
typedef AcceptInterface<Heirarchy_> Item;
typedef const ConstAcceptInterface<Heirarchy_> ConstItem;
@@ -1093,7 +1133,17 @@ namespace paludis
public virtual Visits<const typename H_::ContainedItem17>,
public virtual Visits<const typename H_::ContainedItem18>,
public virtual Visits<const typename H_::ContainedItem19>,
- public virtual Visits<const typename H_::ContainedItem20>
+ public virtual Visits<const typename H_::ContainedItem20>,
+ public virtual Visits<const typename H_::ContainedItem21>,
+ public virtual Visits<const typename H_::ContainedItem22>,
+ public virtual Visits<const typename H_::ContainedItem23>,
+ public virtual Visits<const typename H_::ContainedItem24>,
+ public virtual Visits<const typename H_::ContainedItem25>,
+ public virtual Visits<const typename H_::ContainedItem26>,
+ public virtual Visits<const typename H_::ContainedItem27>,
+ public virtual Visits<const typename H_::ContainedItem28>,
+ public virtual Visits<const typename H_::ContainedItem29>,
+ public virtual Visits<const typename H_::ContainedItem30>
{
public:
///\name Visitor type definitions
@@ -1178,7 +1228,17 @@ namespace paludis
(tr1::is_same<const A_, const typename H_::ContainedItem17>::value ? 1 : 0) |
(tr1::is_same<const A_, const typename H_::ContainedItem18>::value ? 1 : 0) |
(tr1::is_same<const A_, const typename H_::ContainedItem19>::value ? 1 : 0) |
- (tr1::is_same<const A_, const typename H_::ContainedItem20>::value ? 1 : 0)
+ (tr1::is_same<const A_, const typename H_::ContainedItem20>::value ? 1 : 0) |
+ (tr1::is_same<const A_, const typename H_::ContainedItem21>::value ? 1 : 0) |
+ (tr1::is_same<const A_, const typename H_::ContainedItem22>::value ? 1 : 0) |
+ (tr1::is_same<const A_, const typename H_::ContainedItem23>::value ? 1 : 0) |
+ (tr1::is_same<const A_, const typename H_::ContainedItem24>::value ? 1 : 0) |
+ (tr1::is_same<const A_, const typename H_::ContainedItem25>::value ? 1 : 0) |
+ (tr1::is_same<const A_, const typename H_::ContainedItem26>::value ? 1 : 0) |
+ (tr1::is_same<const A_, const typename H_::ContainedItem27>::value ? 1 : 0) |
+ (tr1::is_same<const A_, const typename H_::ContainedItem28>::value ? 1 : 0) |
+ (tr1::is_same<const A_, const typename H_::ContainedItem29>::value ? 1 : 0) |
+ (tr1::is_same<const A_, const typename H_::ContainedItem30>::value ? 1 : 0)
};
};
@@ -1212,7 +1272,17 @@ namespace paludis
public virtual Visits<typename H_::ContainedItem17>,
public virtual Visits<typename H_::ContainedItem18>,
public virtual Visits<typename H_::ContainedItem19>,
- public virtual Visits<typename H_::ContainedItem20>
+ public virtual Visits<typename H_::ContainedItem20>,
+ public virtual Visits<typename H_::ContainedItem21>,
+ public virtual Visits<typename H_::ContainedItem22>,
+ public virtual Visits<typename H_::ContainedItem23>,
+ public virtual Visits<typename H_::ContainedItem24>,
+ public virtual Visits<typename H_::ContainedItem25>,
+ public virtual Visits<typename H_::ContainedItem26>,
+ public virtual Visits<typename H_::ContainedItem27>,
+ public virtual Visits<typename H_::ContainedItem28>,
+ public virtual Visits<typename H_::ContainedItem29>,
+ public virtual Visits<typename H_::ContainedItem30>
{
public:
///\name Visitor type definitions
@@ -1276,7 +1346,17 @@ namespace paludis
(tr1::is_same<A_, typename H_::ContainedItem17>::value ? 1 : 0) |
(tr1::is_same<A_, typename H_::ContainedItem18>::value ? 1 : 0) |
(tr1::is_same<A_, typename H_::ContainedItem19>::value ? 1 : 0) |
- (tr1::is_same<A_, typename H_::ContainedItem20>::value ? 1 : 0)
+ (tr1::is_same<A_, typename H_::ContainedItem20>::value ? 1 : 0) |
+ (tr1::is_same<A_, typename H_::ContainedItem21>::value ? 1 : 0) |
+ (tr1::is_same<A_, typename H_::ContainedItem22>::value ? 1 : 0) |
+ (tr1::is_same<A_, typename H_::ContainedItem23>::value ? 1 : 0) |
+ (tr1::is_same<A_, typename H_::ContainedItem24>::value ? 1 : 0) |
+ (tr1::is_same<A_, typename H_::ContainedItem25>::value ? 1 : 0) |
+ (tr1::is_same<A_, typename H_::ContainedItem26>::value ? 1 : 0) |
+ (tr1::is_same<A_, typename H_::ContainedItem27>::value ? 1 : 0) |
+ (tr1::is_same<A_, typename H_::ContainedItem28>::value ? 1 : 0) |
+ (tr1::is_same<A_, typename H_::ContainedItem29>::value ? 1 : 0) |
+ (tr1::is_same<A_, typename H_::ContainedItem30>::value ? 1 : 0)
};
};
@@ -1389,7 +1469,18 @@ namespace paludis
GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem17>,
GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem18>,
GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem19>,
- GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem20>
+ GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem20>,
+ GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem21>,
+ GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem22>,
+ GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem23>,
+ GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem24>,
+ GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem25>,
+ GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem26>,
+ GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem27>,
+ GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem28>,
+ GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem29>,
+
+ GetConstItemVisits<GetConstItemVisitor<I_>, typename I_::Heirarchy, const typename I_::Heirarchy::ContainedItem30>
{
///\name Visitor operations
///\{
diff --git a/paludis/util/visitor_cast.hh b/paludis/util/visitor_cast.hh
index c1710b1..26ad42c 100644
--- a/paludis/util/visitor_cast.hh
+++ b/paludis/util/visitor_cast.hh
@@ -216,7 +216,17 @@ namespace paludis
VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem17>,
VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem18>,
VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem19>,
- VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem20>
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem20>,
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem21>,
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem22>,
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem23>,
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem24>,
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem25>,
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem26>,
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem27>,
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem28>,
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem29>,
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem30>
{
Result_ * result;
@@ -241,6 +251,16 @@ namespace paludis
VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem18>(result),
VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem19>(result),
VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem20>(result),
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem21>(result),
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem22>(result),
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem23>(result),
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem24>(result),
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem25>(result),
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem26>(result),
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem27>(result),
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem28>(result),
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem29>(result),
+ VisitorCastVisitorVisits<Result_, Heirarchy_, const typename Heirarchy_::ContainedItem30>(result),
result(0)
{
}
diff --git a/python/metadata_key.cc b/python/metadata_key.cc
index 56b91d3..a49ecf2 100644
--- a/python/metadata_key.cc
+++ b/python/metadata_key.cc
@@ -64,6 +64,11 @@ class MetadataKeySptrToPythonVisitor :
obj = bp::object(tr1::static_pointer_cast<const MetadataValueKey<long> >(_m_ptr));
}
+ void visit(const MetadataValueKey<bool> & k)
+ {
+ obj = bp::object(tr1::static_pointer_cast<const MetadataValueKey<bool> >(_m_ptr));
+ }
+
void visit(const MetadataTimeKey & k)
{
obj = bp::object(tr1::static_pointer_cast<const MetadataTimeKey>(_m_ptr));
diff --git a/ruby/metadata_key.cc b/ruby/metadata_key.cc
index bbb5dd8..2a1cf0c 100644
--- a/ruby/metadata_key.cc
+++ b/ruby/metadata_key.cc
@@ -123,6 +123,12 @@ namespace
new tr1::shared_ptr<const MetadataKey>(mm));
}
+ void visit(const MetadataValueKey<bool> &)
+ {
+ value = Data_Wrap_Struct(c_metadata_size_key, 0, &Common<tr1::shared_ptr<const MetadataKey> >::free,
+ new tr1::shared_ptr<const MetadataKey>(mm));
+ }
+
void visit(const MetadataTimeKey &)
{
value = Data_Wrap_Struct(c_metadata_time_key, 0, &Common<tr1::shared_ptr<const MetadataKey> >::free,
diff --git a/src/clients/gtkpaludis/libgtkpaludis/version_info_model.cc b/src/clients/gtkpaludis/libgtkpaludis/version_info_model.cc
index 1139e1a..dcc0b2c 100644
--- a/src/clients/gtkpaludis/libgtkpaludis/version_info_model.cc
+++ b/src/clients/gtkpaludis/libgtkpaludis/version_info_model.cc
@@ -180,6 +180,11 @@ namespace gtkpaludis
got_key(k, markup_escape(stringify(k.value())));
}
+ void visit(const MetadataValueKey<bool> & k)
+ {
+ got_key(k, markup_escape(stringify(k.value())));
+ }
+
void visit(const MetadataTimeKey & k)
{
char buf[255];
diff --git a/src/clients/inquisitio/key_extractor.cc b/src/clients/inquisitio/key_extractor.cc
index 1fbb7fd..a56d235 100644
--- a/src/clients/inquisitio/key_extractor.cc
+++ b/src/clients/inquisitio/key_extractor.cc
@@ -207,6 +207,11 @@ namespace
result = _m(stringify(s.value()));
}
+ void visit(const MetadataValueKey<bool> & s)
+ {
+ result = _m(stringify(s.value()));
+ }
+
void visit(const MetadataTimeKey & s)
{
result = _m(stringify(s.value()));
diff --git a/src/clients/instruo/instruo.cc b/src/clients/instruo/instruo.cc
index 19c796b..b6c543d 100644
--- a/src/clients/instruo/instruo.cc
+++ b/src/clients/instruo/instruo.cc
@@ -61,6 +61,11 @@ namespace
long PALUDIS_ATTRIBUTE((unused)) t(k.value());
}
+ void visit(const MetadataValueKey<bool> & k)
+ {
+ bool PALUDIS_ATTRIBUTE((unused)) t(k.value());
+ }
+
void visit(const MetadataValueKey<tr1::shared_ptr<const PackageID> > & k)
{
const tr1::shared_ptr<const PackageID> & PALUDIS_ATTRIBUTE((unused)) p(k.value());
diff --git a/src/clients/paludis/applets.cc b/src/clients/paludis/applets.cc
index a382532..39cb42a 100644
--- a/src/clients/paludis/applets.cc
+++ b/src/clients/paludis/applets.cc
@@ -62,6 +62,11 @@ namespace
std::cout << k.value() << std::endl;
}
+ void visit(const MetadataValueKey<bool> & k)
+ {
+ std::cout << k.value() << std::endl;
+ }
+
void visit(const MetadataValueKey<FSEntry> & k)
{
std::cout << k.value() << std::endl;
diff --git a/src/clients/paludis/info.cc b/src/clients/paludis/info.cc
index a210054..4b12883 100644
--- a/src/clients/paludis/info.cc
+++ b/src/clients/paludis/info.cc
@@ -87,6 +87,11 @@ namespace
cout << std::setw(30) << (indent + k.human_name() + ":") << " " << k.value() << endl;
}
+ void visit(const MetadataValueKey<bool> & k)
+ {
+ cout << std::setw(30) << (indent + k.human_name() + ":") << " " << k.value() << endl;
+ }
+
void visit(const MetadataValueKey<FSEntry> & k)
{
cout << std::setw(30) << (indent + k.human_name() + ":") << " " << k.value() << endl;
diff --git a/src/clients/qualudis/qualudis.cc b/src/clients/qualudis/qualudis.cc
index bfc9484..e85c60f 100644
--- a/src/clients/qualudis/qualudis.cc
+++ b/src/clients/qualudis/qualudis.cc
@@ -156,6 +156,11 @@ namespace
stream << k.raw_name() << ": " << k.value() << "\n";
}
+ void visit(const MetadataValueKey<bool> & k)
+ {
+ stream << k.raw_name() << ": " << k.value() << "\n";
+ }
+
void visit(const MetadataTimeKey & k)
{
stream << k.raw_name() << ": " << k.value() << "\n";
diff --git a/src/output/console_query_task.cc b/src/output/console_query_task.cc
index 35b3bd9..551c418 100644
--- a/src/output/console_query_task.cc
+++ b/src/output/console_query_task.cc
@@ -537,6 +537,23 @@ namespace
}
}
+ void visit(const MetadataValueKey<bool> & k)
+ {
+ if (k.type() == type)
+ {
+ if (task->want_raw())
+ {
+ task->output_left_column(k.raw_name() + ":", in);
+ task->output_right_column(stringify(k.value()));
+ }
+ else
+ {
+ task->output_left_column(k.human_name() + ":", in);
+ task->output_right_column(k.pretty_print());
+ }
+ }
+ }
+
void visit(const MetadataSectionKey & k)
{
if (k.type() == type)
diff --git a/src/output/mask_displayer.cc b/src/output/mask_displayer.cc
index 6d7f67d..37584ea 100644
--- a/src/output/mask_displayer.cc
+++ b/src/output/mask_displayer.cc
@@ -75,6 +75,11 @@ namespace
s << k.value();
}
+ void visit(const MetadataValueKey<bool> & k)
+ {
+ s << k.value();
+ }
+
void visit(const MetadataSectionKey & k)
{
s << "(";