[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [ksecrets] src/runtime/ksecrets_store: Put the timestamp handling base class in the private impl
From:       Valentin Rusu <kde () rusu ! info>
Date:       2015-08-12 11:26:26
Message-ID: E1ZPUAs-0007H7-3y () scm ! kde ! org
[Download RAW message or body]

Git commit 0fb1506ca9f8a4e0fbe53162f33795c1ac566405 by Valentin Rusu.
Committed on 11/08/2015 at 14:08.
Pushed by vrusu into branch 'master'.

Put the timestamp handling base class in the private impl

M  +32   -4    src/runtime/ksecrets_store/ksecrets_backend_p.h

http://commits.kde.org/ksecrets/0fb1506ca9f8a4e0fbe53162f33795c1ac566405

diff --git a/src/runtime/ksecrets_store/ksecrets_backend_p.h b/src/runtime/ksecrets_store/ksecrets_backend_p.h
index a1c65eb..dbbad7c 100644
--- a/src/runtime/ksecrets_store/ksecrets_backend_p.h
+++ b/src/runtime/ksecrets_store/ksecrets_backend_p.h
@@ -23,6 +23,36 @@
 
 #include "ksecrets_backend.h"
 
+class TimeStamped {
+
+protected:
+    TimeStamped()
+        : createdTime_(std::time(nullptr))
+        , modifiedTime_(std::time(nullptr))
+    {
+    }
+    virtual ~TimeStamped() = default;
+    TimeStamped(const TimeStamped&) = default;
+    TimeStamped& operator=(const TimeStamped&) = default;
+
+    template <class FUNC> void modify(FUNC func)
+    {
+        // FIXME func may return some value so modify this to take that into account
+        func();
+        modifiedTime = std::time(nullptr);
+    };
+
+private:
+    std::time_t createdTime_;
+    std::time_t modifiedTime_;
+};
+
+class KSecretsItemPrivate : public TimeStamped {
+};
+
+class KSecretsCollectionPrivate : public TimeStamped {
+};
+
 class KSecretsBackendPrivate {
 public:
     KSecretsBackendPrivate() = delete;
@@ -30,10 +60,8 @@ public:
 
     KSecretsBackend::OpenResult lock_open(const std::string&);
     KSecretsBackend::OpenResult open(const std::string&);
-    using open_action
-        = std::function<KSecretsBackend::OpenResult(const std::string&)>;
-    KSecretsBackend::OpenResult createFileIfNeededThenDo(
-        const std::string&, bool, open_action);
+    using open_action = std::function<KSecretsBackend::OpenResult(const std::string&)>;
+    KSecretsBackend::OpenResult createFileIfNeededThenDo(const std::string&, bool, open_action);
     int createFile(const std::string&);
     const char* salt() const;
 

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic