From a64dad6a0a6f6893bbb6eed7065485c1965ff70b Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 17 Sep 2015 16:59:56 +0200 Subject: Package object model refactoring --- brep/package.cxx | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'brep/package.cxx') diff --git a/brep/package.cxx b/brep/package.cxx index 215754f..59efbfb 100644 --- a/brep/package.cxx +++ b/brep/package.cxx @@ -55,17 +55,16 @@ namespace brep // package_version // package_version:: - package_version (lazy_shared_ptr rp, - lazy_shared_ptr pk, + package_version (lazy_shared_ptr pk, version_type vr, priority_type pr, license_alternatives_type la, string ch, dependencies_type dp, requirements_type rq, - optional lc) - : repository (move (rp)), - package (move (pk)), + optional lc, + lazy_shared_ptr rp) + : package (move (pk)), version (move (vr)), priority (move (pr)), license_alternatives (move (la)), @@ -74,6 +73,10 @@ namespace brep requirements (move (rq)), location (move (lc)) { + if (rp.load ()->internal) + internal_repository = move (rp); + else + external_repositories.emplace_back (move (rp)); } package_version::_id_type package_version:: @@ -81,21 +84,19 @@ namespace brep { return _id_type { { - repository.object_id (), package.object_id (), version.epoch (), - version.canonical_upstream () + version.canonical_upstream (), + version.revision () }, - version.upstream (), - version.revision ()}; + version.upstream ()}; } void package_version:: _id (_id_type&& v, database& db) { - repository = lazy_shared_ptr (db, v.data.repository); package = lazy_shared_ptr (db, v.data.package); - version = version_type (v.data.epoch, move (v.upstream), v.revision); + version = version_type (v.data.epoch, move (v.upstream), v.data.revision); assert (version.canonical_upstream () == v.data.canonical_upstream); } @@ -104,7 +105,7 @@ namespace brep void max_package_version:: _id (package_version::_id_type&& v) { - version = version_type (v.data.epoch, move (v.upstream), v.revision); + version = version_type (v.data.epoch, move (v.upstream), v.data.revision); assert (version.canonical_upstream () == v.data.canonical_upstream); } -- cgit v1.1