From 16e927034e9f69a9fbb2212c7936a7b6b77672c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wo=CC=81jcik?= <3044353+pwojcikdev@users.noreply.github.com> Date: Fri, 23 Aug 2024 10:05:18 +0200 Subject: [PATCH] Transaction timestamp accessor --- nano/secure/transaction.hpp | 10 ++++++++++ nano/store/transaction.cpp | 5 +++++ nano/store/transaction.hpp | 5 +++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/nano/secure/transaction.hpp b/nano/secure/transaction.hpp index eedb7653..6c4acde3 100644 --- a/nano/secure/transaction.hpp +++ b/nano/secure/transaction.hpp @@ -79,6 +79,11 @@ public: return false; } + auto timestamp () const + { + return txn.timestamp (); + } + // Conversion operator to const nano::store::transaction& operator const nano::store::transaction & () const override { @@ -118,6 +123,11 @@ public: txn.refresh_if_needed (max_age); } + auto timestamp () const + { + return txn.timestamp (); + } + // Conversion operator to const nano::store::transaction& operator const nano::store::transaction & () const override { diff --git a/nano/store/transaction.cpp b/nano/store/transaction.cpp index 2609c231..dcfc3d7e 100644 --- a/nano/store/transaction.cpp +++ b/nano/store/transaction.cpp @@ -38,6 +38,11 @@ auto nano::store::transaction::epoch () const -> epoch_t return current_epoch; } +std::chrono::steady_clock::time_point nano::store::transaction::timestamp () const +{ + return start; +} + /* * read_transaction */ diff --git a/nano/store/transaction.hpp b/nano/store/transaction.hpp index 79e96cdc..23459a92 100644 --- a/nano/store/transaction.hpp +++ b/nano/store/transaction.hpp @@ -43,10 +43,13 @@ public: virtual ~transaction () = default; virtual void * get_handle () const = 0; virtual nano::id_dispenser::id_t store_id () const = 0; + epoch_t epoch () const; + std::chrono::steady_clock::time_point timestamp () const; protected: epoch_t current_epoch{ 0 }; + std::chrono::steady_clock::time_point start{}; }; /** @@ -67,7 +70,6 @@ public: private: std::unique_ptr impl; - std::chrono::steady_clock::time_point start; }; /** @@ -89,6 +91,5 @@ public: private: std::unique_ptr impl; - std::chrono::steady_clock::time_point start; }; } // namespace nano::store