20#ifndef PALUDIS_GUARD_PALUDIS_MERGER_HH
21#define PALUDIS_GUARD_PALUDIS_MERGER_HH 1
23#include <paludis/merger-fwd.hh>
24#include <paludis/util/named_value.hh>
26#include <paludis/util/timestamp.hh>
27#include <paludis/util/fs_path.hh>
31#include <paludis/output_manager-fwd.hh>
37 typedef Name<struct name_environment> environment;
38 typedef Name<struct name_fix_mtimes_before> fix_mtimes_before;
39 typedef Name<struct name_get_new_ids_or_minus_one> get_new_ids_or_minus_one;
40 typedef Name<struct name_image> image;
41 typedef Name<struct name_install_under> install_under;
42 typedef Name<struct name_maybe_output_manager> maybe_output_manager;
43 typedef Name<struct name_merged_entries> merged_entries;
44 typedef Name<struct name_no_chown> no_chown;
45 typedef Name<struct name_options> options;
46 typedef Name<struct name_permit_destination> permit_destination;
47 typedef Name<struct name_root> root;
80 MergerError(
const std::string &)
noexcept;
89 bool symlink_needs_rewriting(
const FSPath &);
90 void rewrite_symlink_as_needed(
const FSPath &,
const FSPath &);
91 void set_skipped_dir(
const bool);
92 void do_ownership_fixes_recursive(
const FSPath &);
93 bool fixed_ownership_for(
const FSPath &);
140 virtual void on_error(
bool is_check,
const std::string &) = 0;
145 virtual void on_warn(
bool is_check,
const std::string &) = 0;
147 virtual void display_override(
const std::string &)
const = 0;
149 virtual void on_misc(
bool is_check,
const FSPath &,
const FSPath &);
150 virtual void on_file(
bool is_check,
const FSPath &,
const FSPath &);
151 virtual void on_dir(
bool is_check,
const FSPath &,
const FSPath &);
152 virtual void on_sym(
bool is_check,
const FSPath &,
const FSPath &);
154 virtual void on_file_main(
bool is_check,
const FSPath &,
const FSPath &) = 0;
155 virtual void on_dir_main(
bool is_check,
const FSPath &,
const FSPath &) = 0;
156 virtual void on_sym_main(
bool is_check,
const FSPath &,
const FSPath &) = 0;
158 virtual void prepare_install_under() = 0;
160 virtual FSPath canonicalise_root_path(
const FSPath &) = 0;
166 Merger(
const Merger &) =
delete;
167 Merger & operator= (
const Merger &) =
delete;
virtual void on_warn(bool is_check, const std::string &)=0
virtual EntryType entry_type(const FSPath &)
virtual void do_dir_recursive(bool is_check, const FSPath &, const FSPath &)
virtual void on_done_merge()
virtual void on_enter_dir(bool is_check, const FSPath)
virtual void on_begin_merge()
virtual void on_leave_dir(bool is_check, const FSPath)
virtual Hook extend_hook(const Hook &)
virtual bool check() PALUDIS_ATTRIBUTE((warn_unused_result))
virtual void on_error(bool is_check, const std::string &)=0
Definition named_value.hh:51
#define PALUDIS_ATTRIBUTE(x)
Definition attributes.hh:53
#define PALUDIS_VISIBLE
Definition attributes.hh:59
Definition about_metadata-fwd.hh:24
NamedValue< n::permit_destination, PermitDestinationFn > permit_destination
Definition merger.hh:71