From 738050f2a71b2f0d094a692cc48c94653b82287f Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 22 Sep 2015 13:41:54 +0200 Subject: Implement rep-fetch command --- bpkg/package | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'bpkg/package') diff --git a/bpkg/package b/bpkg/package index 1c2a420..34d917e 100644 --- a/bpkg/package +++ b/bpkg/package @@ -9,8 +9,6 @@ #include #include // uint16 #include -#include // move() -#include // uint16 #include @@ -99,6 +97,15 @@ namespace bpkg complements_type complements; prerequisites_type prerequisites; + const string& + name () const {return location.canonical_name ();} + + // Used to detect recursive fecthing. Will probably be replaced + // by the 'repositories' file timestamp or hashsum later. + // + #pragma db transient + bool fetched = false; + public: explicit repository (repository_location l): location (move (l)) {} @@ -134,6 +141,13 @@ namespace bpkg repository () = default; }; + #pragma db view object(repository) query(repository::id.name != "" && (?)) + struct repository_count + { + #pragma db column("count(" + repository::id.name + ")") + size_t result; + }; + // package_version_id // #pragma db value @@ -144,6 +158,13 @@ namespace bpkg string upstream; // Canonical upstream. std::uint16_t revision; + package_version_id () = default; + package_version_id (string n, const version& v) + : name (move (n)), + epoch (v.epoch ()), + upstream (v.canonical_upstream ()), + revision (v.revision ()) {} + #pragma db member(epoch) column("version_epoch") #pragma db member(upstream) column("version_upstream") #pragma db member(revision) column("version_revision") @@ -215,6 +236,13 @@ namespace bpkg available_package () = default; }; + #pragma db view object(available_package) + struct available_package_count + { + #pragma db column("count(" + available_package::id.data.name + ")") + size_t result; + }; + // state // enum class state -- cgit v1.1