From e9db91b3351cd65da67681d313a745fdf50e7fc0 Mon Sep 17 00:00:00 2001 From: Matthew Fioravante Date: Thu, 7 Oct 2021 23:12:35 -0400 Subject: [PATCH] Allow changing Transaction key (#93) * Allow changing Transaction key * Fixes the compilation errors. Signed-off-by: Matthew Fioravante Co-authored-by: Tao He --- etcd/v3/Transaction.hpp | 4 ++++ src/v3/Transaction.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/etcd/v3/Transaction.hpp b/etcd/v3/Transaction.hpp index bc561b8..8dd4218 100644 --- a/etcd/v3/Transaction.hpp +++ b/etcd/v3/Transaction.hpp @@ -30,6 +30,10 @@ public: Transaction(); Transaction(std::string const&); virtual ~Transaction(); + + // Set a new key for different comparisons and /put/get/delete requests. + void reset_key(std::string const& newkey); + void init_compare(CompareResult, CompareTarget); void init_compare(std::string const &old_value, CompareResult, CompareTarget); void init_compare(int old_value, CompareResult, CompareTarget); diff --git a/src/v3/Transaction.cpp b/src/v3/Transaction.cpp index 52aba99..7596708 100644 --- a/src/v3/Transaction.cpp +++ b/src/v3/Transaction.cpp @@ -32,6 +32,10 @@ etcdv3::Transaction::Transaction(const std::string& key) : key(key) { txn_request.reset(new etcdserverpb::TxnRequest{}); } +void etcdv3::Transaction::reset_key(std::string const& newkey) { + key = newkey; +} + void etcdv3::Transaction::init_compare(CompareResult result, CompareTarget target){ Compare* compare = txn_request->add_compare(); compare->set_result(detail::to_compare_result(result));