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));