Skip to content

Commit 7583345

Browse files
authored
(refactoring) Generic base classes for ydb_proxy & scheme results (#4687)
1 parent f935518 commit 7583345

File tree

2 files changed

+63
-96
lines changed

2 files changed

+63
-96
lines changed

ydb/core/tx/replication/controller/private_events.cpp

Lines changed: 5 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -43,95 +43,30 @@ TString TEvPrivate::TEvAssignStreamName::ToString() const {
4343
<< " }";
4444
}
4545

46-
TEvPrivate::TEvCreateStreamResult::TEvCreateStreamResult(ui64 rid, ui64 tid, NYdb::TStatus&& status)
47-
: ReplicationId(rid)
48-
, TargetId(tid)
49-
, Status(std::move(status))
50-
{
51-
}
52-
53-
TString TEvPrivate::TEvCreateStreamResult::ToString() const {
54-
return TStringBuilder() << ToStringHeader() << " {"
55-
<< " ReplicationId: " << ReplicationId
56-
<< " TargetId: " << TargetId
57-
<< " Status: " << Status.GetStatus()
58-
<< " Issues: " << Status.GetIssues().ToOneLineString()
59-
<< " }";
60-
}
61-
62-
bool TEvPrivate::TEvCreateStreamResult::IsSuccess() const {
63-
return Status.IsSuccess();
64-
}
65-
6646
TEvPrivate::TEvCreateDstResult::TEvCreateDstResult(ui64 rid, ui64 tid, const TPathId& dstPathId)
67-
: ReplicationId(rid)
68-
, TargetId(tid)
47+
: TBase(rid, tid, NKikimrScheme::StatusSuccess)
6948
, DstPathId(dstPathId)
70-
, Status(NKikimrScheme::StatusSuccess)
7149
{
7250
}
7351

7452
TEvPrivate::TEvCreateDstResult::TEvCreateDstResult(ui64 rid, ui64 tid, NKikimrScheme::EStatus status, const TString& error)
75-
: ReplicationId(rid)
76-
, TargetId(tid)
77-
, Status(status)
78-
, Error(error)
53+
: TBase(rid, tid, status, error)
7954
{
8055
}
8156

8257
TString TEvPrivate::TEvCreateDstResult::ToString() const {
83-
return TStringBuilder() << ToStringHeader() << " {"
84-
<< " ReplicationId: " << ReplicationId
85-
<< " TargetId: " << TargetId
58+
return TStringBuilder() << ToStringHeader() << " {" << ToStringBody()
8659
<< " DstPathId: " << DstPathId
87-
<< " Status: " << NKikimrScheme::EStatus_Name(Status)
88-
<< " Error: " << Error
8960
<< " }";
9061
}
9162

92-
bool TEvPrivate::TEvCreateDstResult::IsSuccess() const {
93-
return Status == NKikimrScheme::StatusSuccess;
94-
}
95-
96-
TEvPrivate::TEvDropStreamResult::TEvDropStreamResult(ui64 rid, ui64 tid, NYdb::TStatus&& status)
97-
: ReplicationId(rid)
98-
, TargetId(tid)
99-
, Status(std::move(status))
100-
{
101-
}
102-
103-
TString TEvPrivate::TEvDropStreamResult::ToString() const {
104-
return TStringBuilder() << ToStringHeader() << " {"
105-
<< " ReplicationId: " << ReplicationId
106-
<< " TargetId: " << TargetId
107-
<< " Status: " << Status.GetStatus()
108-
<< " Issues: " << Status.GetIssues().ToOneLineString()
109-
<< " }";
110-
}
111-
112-
bool TEvPrivate::TEvDropStreamResult::IsSuccess() const {
113-
return Status.IsSuccess();
114-
}
115-
11663
TEvPrivate::TEvDropDstResult::TEvDropDstResult(ui64 rid, ui64 tid, NKikimrScheme::EStatus status, const TString& error)
117-
: ReplicationId(rid)
118-
, TargetId(tid)
119-
, Status(status)
120-
, Error(error)
64+
: TBase(rid, tid, status, error)
12165
{
12266
}
12367

12468
TString TEvPrivate::TEvDropDstResult::ToString() const {
125-
return TStringBuilder() << ToStringHeader() << " {"
126-
<< " ReplicationId: " << ReplicationId
127-
<< " TargetId: " << TargetId
128-
<< " Status: " << NKikimrScheme::EStatus_Name(Status)
129-
<< " Error: " << Error
130-
<< " }";
131-
}
132-
133-
bool TEvPrivate::TEvDropDstResult::IsSuccess() const {
134-
return Status == NKikimrScheme::StatusSuccess;
69+
return TStringBuilder() << ToStringHeader() << " {" << ToStringBody() << " }";
13570
}
13671

13772
TEvPrivate::TEvDropReplication::TEvDropReplication(ui64 rid)

ydb/core/tx/replication/controller/private_events.h

Lines changed: 58 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -52,53 +52,85 @@ struct TEvPrivate {
5252
TString ToString() const override;
5353
};
5454

55-
struct TEvCreateStreamResult: public TEventLocal<TEvCreateStreamResult, EvCreateStreamResult> {
55+
template <typename TDerived, ui32 EventType>
56+
struct TGenericYdbProxyResult: public TEventLocal<TDerived, EventType> {
57+
using TBase = TGenericYdbProxyResult<TDerived, EventType>;
58+
5659
const ui64 ReplicationId;
5760
const ui64 TargetId;
5861
const NYdb::TStatus Status;
5962

60-
explicit TEvCreateStreamResult(ui64 rid, ui64 tid, NYdb::TStatus&& status);
61-
TString ToString() const override;
63+
explicit TGenericYdbProxyResult(ui64 rid, ui64 tid, NYdb::TStatus&& status)
64+
: ReplicationId(rid)
65+
, TargetId(tid)
66+
, Status(std::move(status))
67+
{
68+
}
69+
70+
TString ToString() const override {
71+
return TStringBuilder() << this->ToStringHeader() << " {"
72+
<< " ReplicationId: " << ReplicationId
73+
<< " TargetId: " << TargetId
74+
<< " Status: " << Status.GetStatus()
75+
<< " Issues: " << Status.GetIssues().ToOneLineString()
76+
<< " }";
77+
}
78+
79+
bool IsSuccess() const {
80+
return Status.IsSuccess();
81+
}
82+
};
6283

63-
bool IsSuccess() const;
84+
struct TEvCreateStreamResult: public TGenericYdbProxyResult<TEvCreateStreamResult, EvCreateStreamResult> {
85+
using TBase::TBase;
6486
};
6587

66-
struct TEvCreateDstResult: public TEventLocal<TEvCreateDstResult, EvCreateDstResult> {
88+
struct TEvDropStreamResult: public TGenericYdbProxyResult<TEvDropStreamResult, EvDropStreamResult> {
89+
using TBase::TBase;
90+
};
91+
92+
template <typename TDerived, ui32 EventType>
93+
struct TGenericSchemeResult: public TEventLocal<TDerived, EventType> {
94+
using TBase = TGenericSchemeResult<TDerived, EventType>;
95+
6796
const ui64 ReplicationId;
6897
const ui64 TargetId;
69-
const TPathId DstPathId;
7098
const NKikimrScheme::EStatus Status;
7199
const TString Error;
72100

73-
explicit TEvCreateDstResult(ui64 rid, ui64 tid, const TPathId& dstPathId);
74-
explicit TEvCreateDstResult(ui64 rid, ui64 tid, NKikimrScheme::EStatus status, const TString& error);
75-
TString ToString() const override;
76-
77-
bool IsSuccess() const;
101+
explicit TGenericSchemeResult(ui64 rid, ui64 tid, NKikimrScheme::EStatus status, const TString& error = {})
102+
: ReplicationId(rid)
103+
, TargetId(tid)
104+
, Status(status)
105+
, Error(error)
106+
{
107+
}
108+
109+
TString ToStringBody() const {
110+
return TStringBuilder()
111+
<< " ReplicationId: " << ReplicationId
112+
<< " TargetId: " << TargetId
113+
<< " Status: " << NKikimrScheme::EStatus_Name(Status)
114+
<< " Error: " << Error;
115+
}
116+
117+
bool IsSuccess() const {
118+
return Status == NKikimrScheme::StatusSuccess;
119+
}
78120
};
79121

80-
struct TEvDropStreamResult: public TEventLocal<TEvDropStreamResult, EvDropStreamResult> {
81-
const ui64 ReplicationId;
82-
const ui64 TargetId;
83-
const NYdb::TStatus Status;
122+
struct TEvCreateDstResult: public TGenericSchemeResult<TEvCreateDstResult, EvCreateDstResult> {
123+
const TPathId DstPathId;
84124

85-
explicit TEvDropStreamResult(ui64 rid, ui64 tid, NYdb::TStatus&& status);
125+
explicit TEvCreateDstResult(ui64 rid, ui64 tid, const TPathId& dstPathId);
126+
explicit TEvCreateDstResult(ui64 rid, ui64 tid, NKikimrScheme::EStatus status, const TString& error);
86127
TString ToString() const override;
87-
88-
bool IsSuccess() const;
89128
};
90129

91-
struct TEvDropDstResult: public TEventLocal<TEvDropDstResult, EvDropDstResult> {
92-
const ui64 ReplicationId;
93-
const ui64 TargetId;
94-
const NKikimrScheme::EStatus Status;
95-
const TString Error;
96-
130+
struct TEvDropDstResult: public TGenericSchemeResult<TEvDropDstResult, EvDropDstResult> {
97131
explicit TEvDropDstResult(ui64 rid, ui64 tid,
98132
NKikimrScheme::EStatus status = NKikimrScheme::StatusSuccess, const TString& error = {});
99133
TString ToString() const override;
100-
101-
bool IsSuccess() const;
102134
};
103135

104136
struct TEvDropReplication: public TEventLocal<TEvDropReplication, EvDropReplication> {

0 commit comments

Comments
 (0)