Return zxid in TestKeeper responses

This commit is contained in:
Alexander Gololobov 2023-07-26 14:08:08 +02:00
parent 19c95d0f9b
commit b80a334eb7
3 changed files with 17 additions and 7 deletions

View File

@ -136,6 +136,8 @@ using ResponseCallback = std::function<void(const Response &)>;
struct Response struct Response
{ {
Error error = Error::ZOK; Error error = Error::ZOK;
int64_t zxid = 0;
Response() = default; Response() = default;
Response(const Response &) = default; Response(const Response &) = default;
Response & operator=(const Response &) = default; Response & operator=(const Response &) = default;

View File

@ -195,6 +195,7 @@ struct TestKeeperMultiRequest final : MultiRequest, TestKeeperRequest
std::pair<ResponsePtr, Undo> TestKeeperCreateRequest::process(TestKeeper::Container & container, int64_t zxid) const std::pair<ResponsePtr, Undo> TestKeeperCreateRequest::process(TestKeeper::Container & container, int64_t zxid) const
{ {
CreateResponse response; CreateResponse response;
response.zxid = zxid;
Undo undo; Undo undo;
if (container.contains(path)) if (container.contains(path))
@ -257,9 +258,10 @@ std::pair<ResponsePtr, Undo> TestKeeperCreateRequest::process(TestKeeper::Contai
return { std::make_shared<CreateResponse>(response), undo }; return { std::make_shared<CreateResponse>(response), undo };
} }
std::pair<ResponsePtr, Undo> TestKeeperRemoveRequest::process(TestKeeper::Container & container, int64_t) const std::pair<ResponsePtr, Undo> TestKeeperRemoveRequest::process(TestKeeper::Container & container, int64_t zxid) const
{ {
RemoveResponse response; RemoveResponse response;
response.zxid = zxid;
Undo undo; Undo undo;
auto it = container.find(path); auto it = container.find(path);
@ -296,9 +298,10 @@ std::pair<ResponsePtr, Undo> TestKeeperRemoveRequest::process(TestKeeper::Contai
return { std::make_shared<RemoveResponse>(response), undo }; return { std::make_shared<RemoveResponse>(response), undo };
} }
std::pair<ResponsePtr, Undo> TestKeeperExistsRequest::process(TestKeeper::Container & container, int64_t) const std::pair<ResponsePtr, Undo> TestKeeperExistsRequest::process(TestKeeper::Container & container, int64_t zxid) const
{ {
ExistsResponse response; ExistsResponse response;
response.zxid = zxid;
auto it = container.find(path); auto it = container.find(path);
if (it != container.end()) if (it != container.end())
@ -314,9 +317,10 @@ std::pair<ResponsePtr, Undo> TestKeeperExistsRequest::process(TestKeeper::Contai
return { std::make_shared<ExistsResponse>(response), {} }; return { std::make_shared<ExistsResponse>(response), {} };
} }
std::pair<ResponsePtr, Undo> TestKeeperGetRequest::process(TestKeeper::Container & container, int64_t) const std::pair<ResponsePtr, Undo> TestKeeperGetRequest::process(TestKeeper::Container & container, int64_t zxid) const
{ {
GetResponse response; GetResponse response;
response.zxid = zxid;
auto it = container.find(path); auto it = container.find(path);
if (it == container.end()) if (it == container.end())
@ -336,6 +340,7 @@ std::pair<ResponsePtr, Undo> TestKeeperGetRequest::process(TestKeeper::Container
std::pair<ResponsePtr, Undo> TestKeeperSetRequest::process(TestKeeper::Container & container, int64_t zxid) const std::pair<ResponsePtr, Undo> TestKeeperSetRequest::process(TestKeeper::Container & container, int64_t zxid) const
{ {
SetResponse response; SetResponse response;
response.zxid = zxid;
Undo undo; Undo undo;
auto it = container.find(path); auto it = container.find(path);
@ -370,9 +375,10 @@ std::pair<ResponsePtr, Undo> TestKeeperSetRequest::process(TestKeeper::Container
return { std::make_shared<SetResponse>(response), undo }; return { std::make_shared<SetResponse>(response), undo };
} }
std::pair<ResponsePtr, Undo> TestKeeperListRequest::process(TestKeeper::Container & container, int64_t) const std::pair<ResponsePtr, Undo> TestKeeperListRequest::process(TestKeeper::Container & container, int64_t zxid) const
{ {
ListResponse response; ListResponse response;
response.zxid = zxid;
auto it = container.find(path); auto it = container.find(path);
if (it == container.end()) if (it == container.end())
@ -414,9 +420,10 @@ std::pair<ResponsePtr, Undo> TestKeeperListRequest::process(TestKeeper::Containe
return { std::make_shared<ListResponse>(response), {} }; return { std::make_shared<ListResponse>(response), {} };
} }
std::pair<ResponsePtr, Undo> TestKeeperCheckRequest::process(TestKeeper::Container & container, int64_t) const std::pair<ResponsePtr, Undo> TestKeeperCheckRequest::process(TestKeeper::Container & container, int64_t zxid) const
{ {
CheckResponse response; CheckResponse response;
response.zxid = zxid;
auto it = container.find(path); auto it = container.find(path);
if (it == container.end()) if (it == container.end())
{ {
@ -434,10 +441,11 @@ std::pair<ResponsePtr, Undo> TestKeeperCheckRequest::process(TestKeeper::Contain
return { std::make_shared<CheckResponse>(response), {} }; return { std::make_shared<CheckResponse>(response), {} };
} }
std::pair<ResponsePtr, Undo> TestKeeperSyncRequest::process(TestKeeper::Container & /*container*/, int64_t) const std::pair<ResponsePtr, Undo> TestKeeperSyncRequest::process(TestKeeper::Container & /*container*/, int64_t zxid) const
{ {
SyncResponse response; SyncResponse response;
response.path = path; response.path = path;
response.zxid = zxid;
return { std::make_shared<SyncResponse>(std::move(response)), {} }; return { std::make_shared<SyncResponse>(std::move(response)), {} };
} }
@ -456,6 +464,7 @@ std::pair<ResponsePtr, Undo> TestKeeperReconfigRequest::process(TestKeeper::Cont
std::pair<ResponsePtr, Undo> TestKeeperMultiRequest::process(TestKeeper::Container & container, int64_t zxid) const std::pair<ResponsePtr, Undo> TestKeeperMultiRequest::process(TestKeeper::Container & container, int64_t zxid) const
{ {
MultiResponse response; MultiResponse response;
response.zxid = zxid;
response.responses.reserve(requests.size()); response.responses.reserve(requests.size());
std::vector<Undo> undo_actions; std::vector<Undo> undo_actions;

View File

@ -28,7 +28,6 @@ using LogElements = std::vector<ZooKeeperLogElement>;
struct ZooKeeperResponse : virtual Response struct ZooKeeperResponse : virtual Response
{ {
XID xid = 0; XID xid = 0;
int64_t zxid = 0;
UInt64 response_created_time_ns = 0; UInt64 response_created_time_ns = 0;