aboutsummaryrefslogtreecommitdiff
path: root/bpkg/package.hxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2018-03-01 18:33:16 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2018-03-02 20:04:26 +0300
commit1374560d558f4cab72f66b3d851e2a052f59998d (patch)
treec12564709e52e17699fe9932eb2b07b07189a5c0 /bpkg/package.hxx
parent780290277a51853b2e515b16898ca0fcfa1e9e71 (diff)
Update pkg-build
Diffstat (limited to 'bpkg/package.hxx')
-rw-r--r--bpkg/package.hxx44
1 files changed, 23 insertions, 21 deletions
diff --git a/bpkg/package.hxx b/bpkg/package.hxx
index e864b59..35b9332 100644
--- a/bpkg/package.hxx
+++ b/bpkg/package.hxx
@@ -473,16 +473,20 @@ namespace bpkg
operator size_t () const {return result;}
};
- // Only return packages that are in the specified repository or its
- // complements, recursively. While you could maybe come up with a
- // (barely comprehensible) view/query to achieve this, doing it on
- // the "client side" is definitely more straightforward.
+ // Only return packages that are in the specified repository, its
+ // complements or prerequisites (if prereq is true), recursively. While you
+ // could maybe come up with a (barely comprehensible) view/query to achieve
+ // this, doing it on the "client side" is definitely more straightforward.
//
vector<shared_ptr<available_package>>
- filter (const shared_ptr<repository>&, odb::result<available_package>&&);
+ filter (const shared_ptr<repository>&,
+ odb::result<available_package>&&,
+ bool prereq = true);
pair<shared_ptr<available_package>, shared_ptr<repository>>
- filter_one (const shared_ptr<repository>&, odb::result<available_package>&&);
+ filter_one (const shared_ptr<repository>&,
+ odb::result<available_package>&&,
+ bool prereq = true);
// package_state
//
@@ -791,24 +795,22 @@ namespace bpkg
// Return a list of packages available from this repository.
//
- #pragma db view object(repository) \
- table("available_package_locations" = "pl" inner: \
- "pl.repository = " + repository::name) \
- object(available_package inner: \
- "pl.name = " + available_package::id.name + "AND" + \
- "pl.version_epoch = " + \
- available_package::id.version.epoch + "AND" + \
- "pl.version_canonical_upstream = " + \
- available_package::id.version.canonical_upstream + "AND" + \
- "pl.version_canonical_release = " + \
- available_package::id.version.canonical_release + "AND" + \
- "pl.version_revision = " + \
- available_package::id.version.revision)
+ #pragma db view object(repository) \
+ table("available_package_locations" = "pl" inner: \
+ "pl.repository = " + repository::name) \
+ object(available_package = package inner: \
+ "pl.name = " + package::id.name + "AND" + \
+ "pl.version_epoch = " + package::id.version.epoch + "AND" + \
+ "pl.version_canonical_upstream = " + \
+ package::id.version.canonical_upstream + "AND" + \
+ "pl.version_canonical_release = " + \
+ package::id.version.canonical_release + "AND" + \
+ "pl.version_revision = " + package::id.version.revision)
struct repository_package
{
- shared_ptr<available_package> object;
+ shared_ptr<available_package> package; // Must match the alias (see above).
- operator const shared_ptr<available_package> () const {return object;}
+ operator const shared_ptr<available_package> () const {return package;}
};
// Version comparison operators.