| 12345678910111213141516171819202122232425262728293031323334353637 |
- // 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 "rocksdb/options.h"
- #include "rocksdb/status.h"
- namespace ROCKSDB_NAMESPACE {
- class Version;
- class Slice;
- class FilePrefetchBuffer;
- class PinnableSlice;
- class BlobIndex;
- // A thin wrapper around the blob retrieval functionality of Version.
- class BlobFetcher {
- public:
- BlobFetcher(const Version* version, const ReadOptions& read_options)
- : version_(version), read_options_(read_options) {}
- Status FetchBlob(const Slice& user_key, const Slice& blob_index_slice,
- FilePrefetchBuffer* prefetch_buffer,
- PinnableSlice* blob_value, uint64_t* bytes_read) const;
- Status FetchBlob(const Slice& user_key, const BlobIndex& blob_index,
- FilePrefetchBuffer* prefetch_buffer,
- PinnableSlice* blob_value, uint64_t* bytes_read) const;
- private:
- const Version* version_;
- ReadOptions read_options_;
- };
- } // namespace ROCKSDB_NAMESPACE
|