diff options
Diffstat (limited to 'bpkg/types.hxx')
-rw-r--r-- | bpkg/types.hxx | 70 |
1 files changed, 49 insertions, 21 deletions
diff --git a/bpkg/types.hxx b/bpkg/types.hxx index d8ffa79..80e5a7d 100644 --- a/bpkg/types.hxx +++ b/bpkg/types.hxx @@ -21,18 +21,20 @@ #include <odb/lazy-ptr.hxx> -#include <libbutl/b.mxx> -#include <libbutl/url.mxx> -#include <libbutl/path.mxx> +#include <libbutl/b.hxx> +#include <libbutl/url.hxx> +#include <libbutl/path.hxx> #include <libbutl/uuid.hxx> #include <libbutl/uuid-io.hxx> -#include <libbutl/process.mxx> -#include <libbutl/utility.mxx> // icase_compare_string, +#include <libbutl/sha256.hxx> +#include <libbutl/process.hxx> +#include <libbutl/utility.hxx> // icase_compare_string, // compare_reference_target -#include <libbutl/optional.mxx> -#include <libbutl/fdstream.mxx> -#include <libbutl/small-vector.mxx> -#include <libbutl/default-options.mxx> +#include <libbutl/optional.hxx> +#include <libbutl/fdstream.hxx> +#include <libbutl/small-vector.hxx> +#include <libbutl/target-triplet.hxx> +#include <libbutl/default-options.hxx> namespace bpkg { @@ -56,7 +58,7 @@ namespace bpkg using std::weak_ptr; using std::vector; - using butl::small_vector; // <libbutl/small-vector.mxx> + using butl::small_vector; // <libbutl/small-vector.hxx> using strings = vector<string>; using cstrings = vector<const char*>; @@ -73,19 +75,21 @@ namespace bpkg using std::system_error; using io_error = std::ios_base::failure; - // <libbutl/utility.mxx> + // <libbutl/utility.hxx> // using butl::icase_compare_string; using butl::compare_reference_target; - // <libbutl/optional.mxx> + // <libbutl/optional.hxx> // using butl::optional; using butl::nullopt; - // <libbutl/path.mxx> + // <libbutl/path.hxx> // using butl::path; + using butl::path_name; + using butl::path_name_view; using butl::dir_path; using butl::basic_path; using butl::invalid_path; @@ -95,15 +99,21 @@ namespace bpkg using paths = vector<path>; using dir_paths = vector<dir_path>; - // <libbutl/uuid.mxx> + // <libbutl/uuid.hxx> // using butl::uuid; - // <libbutl/url.mxx> + // <libbutl/url.hxx> // using butl::url; - // <libbutl/process.mxx> + // <libbutl/sha256.hxx> + // + using butl::sha256; + using butl::sha256_to_fingerprint; + using butl::fingerprint_to_sha256; + + // <libbutl/process.hxx> // using butl::process; using butl::process_env; @@ -111,7 +121,7 @@ namespace bpkg using butl::process_exit; using butl::process_error; - // <libbutl/fdstream.mxx> + // <libbutl/fdstream.hxx> // using butl::auto_fd; using butl::nullfd; @@ -120,13 +130,17 @@ namespace bpkg using butl::ofdstream; using butl::fdstream_mode; - // <libbutl/default-options.mxx> + // <libbutl/target-triplet.hxx> + // + using butl::target_triplet; + + // <libbutl/default-options.hxx> // using butl::default_options_files; using butl::default_options_entry; using butl::default_options; - // <libbutl/b.mxx> + // <libbutl/b.hxx> // using package_info = butl::b_project_info; @@ -180,9 +194,15 @@ namespace bpkg // return x.object_id () != y.object_id () ? (x.object_id () < y.object_id ()) - : (&static_cast<typename P::base_type> (x).database () < - &static_cast<typename P::base_type> (y).database ()); + : less (static_cast<typename P::base_type> (x).database (), + static_cast<typename P::base_type> (y).database ()); } + + private: + // Defined in database.cxx. + // + bool + less (const odb::database&, const odb::database&) const; }; // Compare two lazy pointers via the pointed-to object ids. @@ -215,6 +235,14 @@ namespace std ::butl::path::traits_type::canonicalize (r); return os << r; } + + inline ostream& + operator<< (ostream& os, const ::butl::path_name_view& v) + { + assert (!v.empty ()); + + return v.name != nullptr && *v.name ? (os << **v.name) : (os << *v.path); + } } #endif // BPKG_TYPES_HXX |