]> git-server-git.apps.pok.os.sepia.ceph.com Git - rocksdb.git/commitdiff
Move blob_db/ttl_extractor.h into blob_db/blob_db.h
authorYi Wu <yiwu@fb.com>
Fri, 28 Jul 2017 21:21:38 +0000 (14:21 -0700)
committerYi Wu <yiwu@fb.com>
Fri, 28 Jul 2017 21:39:11 +0000 (14:39 -0700)
Summary:
Move blob_db/ttl_extractor.h into blob_db/blob_db.h
Also exclude TTLExtractor from LITE build.
Closes https://github.com/facebook/rocksdb/pull/2665

Differential Revision: D5520009

Pulled By: yiwu-arbug

fbshipit-source-id: 4813dcc272c7cc4bf2cdac285256d9a17d78c7b7

utilities/blob_db/blob_db.h
utilities/blob_db/ttl_extractor.cc
utilities/blob_db/ttl_extractor.h [deleted file]

index dfb21383dda65d9b4426aa5250e7166b5e4fbed0..e68b40a0ac7c7846afe05f8a6329f98ef5c00ea3 100644 (file)
 #include "rocksdb/db.h"
 #include "rocksdb/status.h"
 #include "rocksdb/utilities/stackable_db.h"
-#include "utilities/blob_db/ttl_extractor.h"
 
 namespace rocksdb {
 
 namespace blob_db {
 
+class TTLExtractor;
+
 // A wrapped database which puts values of KV pairs in a separate log
 // and store location to the log in the underlying DB.
 // It lacks lots of importatant functionalities, e.g. DB restarts,
@@ -188,6 +189,33 @@ class BlobDB : public StackableDB {
 Status DestroyBlobDB(const std::string& dbname, const Options& options,
                      const BlobDBOptions& bdb_options);
 
+// TTLExtractor allow applications to extract TTL from key-value pairs.
+// This useful for applications using Put or WriteBatch to write keys and
+// don't intend to migrate to PutWithTTL or PutUntil.
+//
+// Applications can implement either ExtractTTL or ExtractExpiration. If both
+// are implemented, ExtractExpiration will take precedence.
+class TTLExtractor {
+ public:
+  // Extract TTL from key-value pair.
+  // Return true if the key has TTL, false otherwise. If key has TTL,
+  // TTL is pass back through ttl. The method can optionally modify the value,
+  // pass the result back through new_value, and also set value_changed to true.
+  virtual bool ExtractTTL(const Slice& key, const Slice& value, uint64_t* ttl,
+                          std::string* new_value, bool* value_changed);
+
+  // Extract expiration time from key-value pair.
+  // Return true if the key has expiration time, false otherwise. If key has
+  // expiration time, it is pass back through expiration. The method can
+  // optionally modify the value, pass the result back through new_value,
+  // and also set value_changed to true.
+  virtual bool ExtractExpiration(const Slice& key, const Slice& value,
+                                 uint64_t now, uint64_t* expiration,
+                                 std::string* new_value, bool* value_changed);
+
+  virtual ~TTLExtractor() = default;
+};
+
 }  // namespace blob_db
 }  // namespace rocksdb
 #endif  // ROCKSDB_LITE
index 735b2f30fb78307ec0099624e4d647fa4a157425..267f904b67580e66515d599d5bffaa0291d84759 100644 (file)
@@ -2,8 +2,9 @@
 //  This source code is licensed under both the GPLv2 (found in the
 //  COPYING file in the root directory) and Apache 2.0 License
 //  (found in the LICENSE.Apache file in the root directory).
-#include "ttl_extractor.h"
+#ifndef ROCKSDB_LITE
 
+#include "utilities/blob_db/blob_db.h"
 #include "util/coding.h"
 
 namespace rocksdb {
@@ -29,3 +30,5 @@ bool TTLExtractor::ExtractExpiration(const Slice& key, const Slice& value,
 
 }  // namespace blob_db
 }  // namespace rocksdb
+
+#endif  // ROCKSDB_LITE
diff --git a/utilities/blob_db/ttl_extractor.h b/utilities/blob_db/ttl_extractor.h
deleted file mode 100644 (file)
index 51df944..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//  Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.
-//  This source code is licensed under both the GPLv2 (found in the
-//  COPYING file in the root directory) and Apache 2.0 License
-//  (found in the LICENSE.Apache file in the root directory).
-#pragma once
-
-#include <memory>
-#include <string>
-
-#include "rocksdb/slice.h"
-
-namespace rocksdb {
-namespace blob_db {
-
-// TTLExtractor allow applications to extract TTL from key-value pairs.
-// This useful for applications using Put or WriteBatch to write keys and
-// don't intend to migrate to PutWithTTL or PutUntil.
-//
-// Applications can implement either ExtractTTL or ExtractExpiration. If both
-// are implemented, ExtractExpiration will take precedence.
-class TTLExtractor {
- public:
-  // Extract TTL from key-value pair.
-  // Return true if the key has TTL, false otherwise. If key has TTL,
-  // TTL is pass back through ttl. The method can optionally modify the value,
-  // pass the result back through new_value, and also set value_changed to true.
-  virtual bool ExtractTTL(const Slice& key, const Slice& value, uint64_t* ttl,
-                          std::string* new_value, bool* value_changed);
-
-  // Extract expiration time from key-value pair.
-  // Return true if the key has expiration time, false otherwise. If key has
-  // expiration time, it is pass back through expiration. The method can
-  // optionally modify the value, pass the result back through new_value,
-  // and also set value_changed to true.
-  virtual bool ExtractExpiration(const Slice& key, const Slice& value,
-                                 uint64_t now, uint64_t* expiration,
-                                 std::string* new_value, bool* value_changed);
-
-  virtual ~TTLExtractor() = default;
-};
-
-}  // namespace blob_db
-}  // namespace rocksdb