CernVM-FS
2.12.0
|
#include <sync_union_aufs.h>
Public Member Functions | |
SyncUnionAufs (SyncMediator *mediator, const std::string &rdonly_path, const std::string &union_path, const std::string &scratch_path) | |
void | Traverse () |
bool | SupportsHardlinks () const |
Public Member Functions inherited from publish::SyncUnion | |
SyncUnion (AbstractSyncMediator *mediator, const std::string &rdonly_path, const std::string &union_path, const std::string &scratch_path) | |
virtual | ~SyncUnion () |
virtual bool | Initialize () |
virtual void | PostUpload () |
SharedPtr< SyncItem > | CreateSyncItem (const std::string &relative_parent_path, const std::string &filename, const SyncItemType entry_type) const |
std::string | rdonly_path () const |
std::string | union_path () const |
std::string | scratch_path () const |
bool | IsInitialized () const |
Protected Member Functions | |
bool | IsWhiteoutEntry (SharedPtr< SyncItem > entry) const |
bool | IsOpaqueDirectory (SharedPtr< SyncItem > directory) const |
bool | IgnoreFilePredicate (const std::string &parent_dir, const std::string &filename) |
std::string | UnwindWhiteoutFilename (SharedPtr< SyncItem > entry) const |
Protected Member Functions inherited from publish::SyncUnion | |
virtual void | PreprocessSyncItem (SharedPtr< SyncItem > entry) const |
virtual void | ProcessRegularFile (const std::string &parent_dir, const std::string &filename) |
virtual bool | ProcessDirectory (const std::string &parent_dir, const std::string &dir_name) |
virtual bool | ProcessDirectory (SharedPtr< SyncItem > entry) |
virtual bool | ProcessUnmaterializedDirectory (SharedPtr< SyncItem > entry) |
virtual void | ProcessSymlink (const std::string &parent_dir, const std::string &link_name) |
virtual void | EnterDirectory (const std::string &parent_dir, const std::string &dir_name) |
virtual void | LeaveDirectory (const std::string &parent_dir, const std::string &dir_name) |
void | ProcessCharacterDevice (const std::string &parent_dir, const std::string &filename) |
void | ProcessBlockDevice (const std::string &parent_dir, const std::string &filename) |
void | ProcessFifo (const std::string &parent_dir, const std::string &filename) |
void | ProcessSocket (const std::string &parent_dir, const std::string &filename) |
void | ProcessFile (SharedPtr< SyncItem > entry) |
Private Attributes | |
std::set< std::string > | ignore_filenames_ |
std::string | whiteout_prefix_ |
Additional Inherited Members | |
Protected Attributes inherited from publish::SyncUnion | |
std::string | rdonly_path_ |
std::string | scratch_path_ |
std::string | union_path_ |
AbstractSyncMediator * | mediator_ |
Syncing a cvmfs repository by the help of an overlaid AUFS read-write volume.
Definition at line 22 of file sync_union_aufs.h.
publish::SyncUnionAufs::SyncUnionAufs | ( | SyncMediator * | mediator, |
const std::string & | rdonly_path, | ||
const std::string & | union_path, | ||
const std::string & | scratch_path | ||
) |
Definition at line 17 of file sync_union_aufs.cc.
|
protectedvirtual |
Union file systems may use some special files for bookkeeping. They must not show up in to repository and are ignored by the recursion. Note: This needs to be up-called!
parent | directory in which file resides |
filename | to decide whether to ignore or not |
Reimplemented from publish::SyncUnion.
Definition at line 70 of file sync_union_aufs.cc.
Referenced by Traverse().
|
protectedvirtual |
Union file systems use opaque directories to fully support rmdir e.g: $ rm -rf directory $ mkdir directory This would produce an opaque directory whose contents are NOT merged with the underlying directory in the read-only branch
directory | the directory to check for opacity |
Implements publish::SyncUnion.
Definition at line 61 of file sync_union_aufs.cc.
Checks if given file is supposed to be whiteout. These files indicate that a specific file has been deleted.
filename | the filename to check |
Implements publish::SyncUnion.
Definition at line 56 of file sync_union_aufs.cc.
|
inlinevirtual |
Reimplemented from publish::SyncUnion.
Definition at line 28 of file sync_union_aufs.h.
|
virtual |
Main routine, process scratch space
Implements publish::SyncUnion.
Definition at line 33 of file sync_union_aufs.cc.
|
protectedvirtual |
Whiteout files may have special naming conventions. This method "unmangles" them and retrieves the original file name
filename | the filename as in the scratch directory |
Implements publish::SyncUnion.
Definition at line 65 of file sync_union_aufs.cc.
|
private |
Definition at line 38 of file sync_union_aufs.h.
Referenced by IgnoreFilePredicate(), and SyncUnionAufs().
|
private |
Definition at line 39 of file sync_union_aufs.h.
Referenced by IsWhiteoutEntry(), SyncUnionAufs(), and UnwindWhiteoutFilename().