5 #define __STDC_FORMAT_MACROS
15 const std::string &rdonly_path,
16 const std::string &union_path,
17 const std::string &scratch_path)
18 : rdonly_path_(rdonly_path),
19 scratch_path_(scratch_path),
20 union_path_(union_path),
22 initialized_(false) {}
31 const std::string &relative_parent_path,
const std::string &filename,
34 new SyncItemNative(relative_parent_path, filename,
this, entry_type));
40 if (!(entry->IsValidGraft() && entry->HasCompressionAlgorithm())) {
53 entry->MarkAsOpaqueDirectory();
58 const std::string &filename) {
63 const string &dir_name) {
65 parent_dir.c_str(), dir_name.c_str());
77 if (entry->IsOpaqueDirectory()) {
100 const string &filename) {
102 parent_dir.c_str(), filename.c_str());
108 const string &link_name) {
110 parent_dir.c_str(), link_name.c_str());
118 entry->filename().c_str());
119 if (entry->IsWhiteout()) {
122 if (entry->IsNew()) {
124 entry->filename().c_str());
128 "processing file [%s] as existing (touch)",
129 entry->filename().c_str());
136 const string &dir_name) {
142 const string &dir_name) {
148 const std::string &filename) {
150 "SyncUnionOverlayfs::ProcessCharacterDevice(%s, %s)",
151 parent_dir.c_str(), filename.c_str());
158 const std::string &filename) {
160 "SyncUnionOverlayfs::ProcessBlockDevice(%s, %s)", parent_dir.c_str(),
168 const std::string &filename) {
170 parent_dir.c_str(), filename.c_str());
176 const std::string &filename) {
178 parent_dir.c_str(), filename.c_str());
virtual void LeaveDirectory(const std::string &parent_dir, const std::string &dir_name)
virtual bool ProcessUnmaterializedDirectory(SharedPtr< SyncItem > entry)
virtual bool Initialize()
virtual void PreprocessSyncItem(SharedPtr< SyncItem > entry) const
virtual bool IsOpaqueDirectory(SharedPtr< SyncItem > directory) const =0
virtual std::string UnwindWhiteoutFilename(SharedPtr< SyncItem > entry) const =0
SharedPtr< SyncItem > CreateSyncItem(const std::string &relative_parent_path, const std::string &filename, const SyncItemType entry_type) const
virtual void ProcessSymlink(const std::string &parent_dir, const std::string &link_name)
AbstractSyncMediator * mediator_
void ProcessBlockDevice(const std::string &parent_dir, const std::string &filename)
virtual bool IgnoreFilePredicate(const std::string &parent_dir, const std::string &filename)
void ProcessSocket(const std::string &parent_dir, const std::string &filename)
virtual void ProcessRegularFile(const std::string &parent_dir, const std::string &filename)
SyncUnion(AbstractSyncMediator *mediator, const std::string &rdonly_path, const std::string &union_path, const std::string &scratch_path)
void ProcessFile(SharedPtr< SyncItem > entry)
virtual bool IsWhiteoutEntry(SharedPtr< SyncItem > entry) const =0
virtual bool ProcessDirectory(const std::string &parent_dir, const std::string &dir_name)
virtual void EnterDirectory(const std::string &parent_dir, const std::string &dir_name)
void ProcessFifo(const std::string &parent_dir, const std::string &filename)
void ProcessCharacterDevice(const std::string &parent_dir, const std::string &filename)
CVMFS_EXPORT void LogCvmfs(const LogSource source, const int mask, const char *format,...)