File tree 8 files changed +40
-61
lines changed
8 files changed +40
-61
lines changed Original file line number Diff line number Diff line change @@ -192,19 +192,9 @@ namespace NKikimr {
192
192
193
193
template <>
194
194
struct TChangeRecordContainer <NBackup::NImpl::TChangeRecord>
195
- : public TBaseChangeRecordContainer
195
+ : public TBaseChangeRecordContainer<NBackup::NImpl::TChangeRecord>
196
196
{
197
- TChangeRecordContainer () = default ;
198
-
199
- explicit TChangeRecordContainer (TVector<NBackup::NImpl::TChangeRecord::TPtr>&& records)
200
- : Records(std::move(records))
201
- {}
202
-
203
- TVector<NBackup::NImpl::TChangeRecord::TPtr> Records;
204
-
205
- TString Out () override {
206
- return TStringBuilder () << " [" << JoinSeq (" ," , Records) << " ]" ;
207
- }
197
+ using TBaseChangeRecordContainer<NBackup::NImpl::TChangeRecord>::TBaseChangeRecordContainer;
208
198
};
209
199
210
200
template <>
Original file line number Diff line number Diff line change 1
1
#include " change_exchange.h"
2
2
3
- #include < util/string/builder.h>
4
- #include < util/string/join.h>
5
-
6
3
namespace NKikimr ::NChangeExchange {
7
4
8
5
// / TEvEnqueueRecords
@@ -99,15 +96,14 @@ TEvChangeExchange::TEvRecords::TEvRecords(TChangeRecordVector&& records)
99
96
{
100
97
}
101
98
102
-
103
99
TString TEvChangeExchange::TEvRecords::ToString () const {
104
- return std::visit (
105
- [&]( auto & records){
106
- return TStringBuilder () << ToStringHeader () << " { "
107
- << " Records " << ((TBaseChangeRecordContainer*)records. get ())-> Out ()
108
- << " } " ;
109
- },
110
- Records);
100
+ auto visitor = [&]( auto & records){
101
+ return TStringBuilder () << ToStringHeader () << " { "
102
+ << " Records " << reinterpret_cast <IChangeRecordContainer*>(records. get ())-> Out ()
103
+ << " } " ;
104
+ } ;
105
+
106
+ return std::visit (visitor, Records);
111
107
}
112
108
113
109
// / TEvForgetRecords
Original file line number Diff line number Diff line change 7
7
#include < ydb/core/scheme/scheme_pathid.h>
8
8
9
9
#include < util/generic/vector.h>
10
+ #include < util/string/builder.h>
11
+ #include < util/string/join.h>
10
12
11
13
namespace NKikimr {
12
14
@@ -22,12 +24,27 @@ namespace NBackup::NImpl {
22
24
class TChangeRecord ;
23
25
}
24
26
25
- struct TBaseChangeRecordContainer {
26
- virtual ~TBaseChangeRecordContainer () = default ;
27
- virtual TString Out () = 0;
27
+ struct IChangeRecordContainer {
28
+ virtual ~IChangeRecordContainer () = default ;
29
+ virtual TString Out () const = 0;
28
30
};
29
31
30
- template <class T >
32
+ template <typename T>
33
+ struct TBaseChangeRecordContainer : public IChangeRecordContainer {
34
+ TVector<typename T::TPtr> Records;
35
+
36
+ TBaseChangeRecordContainer () = default ;
37
+
38
+ explicit TBaseChangeRecordContainer (TVector<typename T::TPtr>&& records)
39
+ : Records(std::move(records))
40
+ {}
41
+
42
+ TString Out () const override {
43
+ return TStringBuilder () << " [" << JoinSeq (" ," , Records) << " ]" ;
44
+ }
45
+ };
46
+
47
+ template <typename T>
31
48
struct TChangeRecordContainer {};
32
49
33
50
}
Original file line number Diff line number Diff line change 6
6
7
7
namespace NKikimr {
8
8
9
- template <class TChangeRecord >
9
+ template <typename TChangeRecord>
10
10
struct TChangeRecordBuilderTrait ;
11
11
12
- template <class TChangeRecord >
12
+ template <typename TChangeRecord>
13
13
struct TChangeRecordBuilderContextTrait {};
14
14
15
15
} // namespace NKikimr
@@ -45,9 +45,11 @@ class IChangeRecord: public TThrRefBase {
45
45
46
46
virtual TString ToString () const = 0;
47
47
virtual void Out (IOutputStream& out) const = 0;
48
+
48
49
}; // IChangeRecord
49
50
50
- template <typename T, typename TDerived> class TChangeRecordBuilder ;
51
+ template <typename T, typename TDerived>
52
+ class TChangeRecordBuilder ;
51
53
52
54
class TChangeRecordBase : public IChangeRecord {
53
55
template <typename T, typename TDerived> friend class TChangeRecordBuilder ;
Original file line number Diff line number Diff line change @@ -76,7 +76,7 @@ template <class TChangeRecord>
76
76
class TBaseChangeSender {
77
77
using TIncompleteRecord = TEvChangeExchange::TEvRequestRecords::TRecordInfo;
78
78
// we need this to safely cast and call Out on a container
79
- static_assert (std::derived_from<TChangeRecordContainer<TChangeRecord>, TBaseChangeRecordContainer >);
79
+ static_assert (std::derived_from<TChangeRecordContainer<TChangeRecord>, IChangeRecordContainer >);
80
80
81
81
struct TEnqueuedRecord : TIncompleteRecord {
82
82
bool ReEnqueued = false ;
Original file line number Diff line number Diff line change @@ -129,19 +129,9 @@ namespace NKikimr {
129
129
130
130
template <>
131
131
struct TChangeRecordContainer <NDataShard::TChangeRecord>
132
- : public TBaseChangeRecordContainer
132
+ : public TBaseChangeRecordContainer<NDataShard::TChangeRecord>
133
133
{
134
- TChangeRecordContainer () = default ;
135
-
136
- explicit TChangeRecordContainer (TVector<NDataShard::TChangeRecord::TPtr>&& records)
137
- : Records(std::move(records))
138
- {}
139
-
140
- TVector<NDataShard::TChangeRecord::TPtr> Records;
141
-
142
- TString Out () override {
143
- return TStringBuilder () << " [" << JoinSeq (" ," , Records) << " ]" ;
144
- }
134
+ using TBaseChangeRecordContainer<NDataShard::TChangeRecord>::TBaseChangeRecordContainer;
145
135
};
146
136
147
137
}
Original file line number Diff line number Diff line change @@ -107,11 +107,6 @@ void TChangeRecord::Serialize(NKikimrTxDataShard::TEvApplyReplicationChanges_TCh
107
107
}
108
108
}
109
109
110
- void TChangeRecord::Serialize (NKikimrTxDataShard::TEvApplyReplicationChanges_TChange& record) const {
111
- TSerializationContext ctx;
112
- Serialize (record, ctx);
113
- }
114
-
115
110
TConstArrayRef<TCell> TChangeRecord::GetKey (TMemoryPool& pool) const {
116
111
if (!Key) {
117
112
TString error;
Original file line number Diff line number Diff line change @@ -41,7 +41,6 @@ class TChangeRecord: public NChangeExchange::TChangeRecordBase {
41
41
TString GetSourceId () const ;
42
42
43
43
void Serialize (NKikimrTxDataShard::TEvApplyReplicationChanges_TChange& record, TSerializationContext& ctx) const ;
44
- void Serialize (NKikimrTxDataShard::TEvApplyReplicationChanges_TChange& record) const ;
45
44
46
45
TConstArrayRef<TCell> GetKey (TMemoryPool& pool) const ;
47
46
TConstArrayRef<TCell> GetKey () const ;
@@ -84,19 +83,9 @@ namespace NKikimr {
84
83
85
84
template <>
86
85
struct TChangeRecordContainer <NReplication::NService::TChangeRecord>
87
- : public TBaseChangeRecordContainer
86
+ : public TBaseChangeRecordContainer<NReplication::NService::TChangeRecord>
88
87
{
89
- TChangeRecordContainer () = default ;
90
-
91
- explicit TChangeRecordContainer (TVector<NReplication::NService::TChangeRecord::TPtr>&& records)
92
- : Records(std::move(records))
93
- {}
94
-
95
- TVector<NReplication::NService::TChangeRecord::TPtr> Records;
96
-
97
- TString Out () override {
98
- return TStringBuilder () << " [" << JoinSeq (" ," , Records) << " ]" ;
99
- }
88
+ using TBaseChangeRecordContainer<NReplication::NService::TChangeRecord>::TBaseChangeRecordContainer;
100
89
};
101
90
102
91
template <>
You can’t perform that action at this time.
0 commit comments