GCC Code Coverage Report
Directory: cvmfs/ Exec Total Coverage
File: cvmfs/sync_union_aufs.h Lines: 0 2 0.0 %
Date: 2019-02-03 02:48:13 Branches: 0 2 0.0 %

Line Branch Exec Source
1
/**
2
 * This file is part of the CernVM File System
3
 *
4
 * This file defines a class which derives `SyncUnion`
5
 * to provide support for AUFS
6
 *
7
 */
8
9
#ifndef CVMFS_SYNC_UNION_AUFS_H_
10
#define CVMFS_SYNC_UNION_AUFS_H_
11
12
#include "sync_union.h"
13
14
#include <set>
15
#include <string>
16
17
namespace publish {
18
/**
19
 * Syncing a cvmfs repository by the help of an overlayed AUFS
20
 * read-write volume.
21
 */
22
class SyncUnionAufs : public SyncUnion {
23
 public:
24
  SyncUnionAufs(SyncMediator *mediator, const std::string &rdonly_path,
25
                const std::string &union_path, const std::string &scratch_path);
26
27
  void Traverse();
28
  bool SupportsHardlinks() const { return true; }
29
30
 protected:
31
  bool IsWhiteoutEntry(SharedPtr<SyncItem> entry) const;
32
  bool IsOpaqueDirectory(SharedPtr<SyncItem> directory) const;
33
  bool IgnoreFilePredicate(const std::string &parent_dir,
34
                           const std::string &filename);
35
  std::string UnwindWhiteoutFilename(SharedPtr<SyncItem> entry) const;
36
37
 private:
38
  std::set<std::string> ignore_filenames_;
39
  std::string whiteout_prefix_;
40
};  // class SyncUnionAufs
41
}  // namespace publish
42
#endif  // CVMFS_SYNC_UNION_AUFS_H_