GCC Code Coverage Report
Directory: cvmfs/ Exec Total Coverage
File: cvmfs/catalog_counters.cc Lines: 47 49 95.9 %
Date: 2019-02-03 02:48:13 Branches: 12 14 85.7 %

Line Branch Exec Source
1
/**
2
 * This file is part of the CernVM File System.
3
 */
4
5
#include "catalog_counters.h"
6
7
#include "directory_entry.h"
8
9
namespace catalog {
10
11
242
void DeltaCounters::ApplyDelta(const DirectoryEntry &dirent, const int delta) {
12
242
  if (dirent.IsRegular()) {
13
128
    self.regular_files += delta;
14
128
    self.file_size     += delta * dirent.size();
15
128
    if (dirent.IsChunkedFile()) {
16
18
      self.chunked_files     += delta;
17
18
      self.chunked_file_size += delta * dirent.size();
18
    }
19
128
    if (dirent.IsExternalFile()) {
20
3
      self.externals += delta;
21
3
      self.external_file_size += delta * dirent.size();
22
    }
23
114
  } else if (dirent.IsLink()) {
24
18
    self.symlinks += delta;
25
96
  } else if (dirent.IsSpecial()) {
26
4
    self.specials += delta;
27
92
  } else if (dirent.IsDirectory()) {
28
92
    self.directories += delta;
29
  } else {
30
    assert(false);
31
  }
32
242
  if (dirent.HasXattrs()) {
33
    self.xattrs += delta;
34
  }
35
242
}
36
37
38
9
void DeltaCounters::PopulateToParent(DeltaCounters *parent) const {
39
9
  parent->subtree.Add(self);
40
9
  parent->subtree.Add(subtree);
41
9
}
42
43
44
1
void Counters::ApplyDelta(const DeltaCounters &delta) {
45
1
  self.Add(delta.self);
46
1
  subtree.Add(delta.subtree);
47
1
}
48
49
50
1
void Counters::AddAsSubtree(DeltaCounters *delta) const {
51
1
  delta->subtree.Add(self);
52
1
  delta->subtree.Add(subtree);
53
1
}
54
55
56
1
void Counters::MergeIntoParent(DeltaCounters *parent_delta) const {
57
1
  parent_delta->self.Add(self);
58
1
  parent_delta->subtree.Subtract(self);
59
1
}
60
61
62
88
Counters_t Counters::GetSelfEntries() const {
63
88
  return self.regular_files + self.symlinks + self.specials + self.directories;
64
}
65
66
67
44
Counters_t Counters::GetSubtreeEntries() const {
68
  return subtree.regular_files + subtree.symlinks + subtree.specials +
69
44
         subtree.directories;
70
}
71
72
73
42
Counters_t Counters::GetAllEntries() const {
74
42
  return GetSelfEntries() + GetSubtreeEntries();
75
}
76
77
78
3
DeltaCounters Counters::Diff(const Counters &from, const Counters &to) {
79
3
  DeltaCounters result;
80
3
  result.self.Add(to.self);
81
3
  result.subtree.Add(to.subtree);
82
3
  result.self.Subtract(from.self);
83
3
  result.subtree.Subtract(from.subtree);
84
3
  return result;
85
}
86
87
}  // namespace catalog