Line data Source code
1 : /**
2 : * @file
3 : *
4 : * @brief
5 : *
6 : * @copyright BSD License (see LICENSE.md or https://www.libelektra.org)
7 : */
8 :
9 : #ifndef ONESIDEVALUESTRATEGY_HPP_
10 : #define ONESIDEVALUESTRATEGY_HPP_
11 :
12 : #include <merging/mergeconflictstrategy.hpp>
13 :
14 : namespace kdb
15 : {
16 :
17 : namespace tools
18 : {
19 :
20 : namespace merging
21 : {
22 : // This strategy is a subset of the OneSideStrategy. It also uses
23 : // the key of the winning side in case of a conflict. However, different
24 : // than the OneSideStrategy it only resolves conflicts where no new keys are
25 : // introduced or old ones deleted.
26 0 : class OneSideValueStrategy : public MergeConflictStrategy
27 : {
28 :
29 : public:
30 : ConflictResolutionSide winningSide;
31 :
32 0 : explicit OneSideValueStrategy (ConflictResolutionSide _winningSide) : winningSide (_winningSide)
33 : {
34 : }
35 :
36 : virtual void resolveConflict (const MergeTask & task, Key & conflictKey, MergeResult & result) override;
37 : };
38 : } // namespace merging
39 : } // namespace tools
40 : } // namespace kdb
41 :
42 : #endif /* ONESIDEVALUESTRATEGY_HPP_ */
|