#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,
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
// 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 {
} // namespace blob_db
} // namespace rocksdb
+
+#endif // ROCKSDB_LITE
+++ /dev/null
-// 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