1 // Copyright (c) 2011-present, Facebook, Inc. All rights reserved. 2 // This source code is licensed under both the GPLv2 (found in the 3 // COPYING file in the root directory) and Apache 2.0 License 4 // (found in the LICENSE.Apache file in the root directory). 5 #pragma once 6 7 #include <string> 8 9 #include "monitoring/statistics.h" 10 #include "rocksdb/persistent_cache.h" 11 12 namespace ROCKSDB_NAMESPACE { 13 14 // PersistentCacheOptions 15 // 16 // This describe the caching behavior for page cache 17 // This is used to pass the context for caching and the cache handle 18 struct PersistentCacheOptions { PersistentCacheOptionsPersistentCacheOptions19 PersistentCacheOptions() {} PersistentCacheOptionsPersistentCacheOptions20 explicit PersistentCacheOptions( 21 const std::shared_ptr<PersistentCache>& _persistent_cache, 22 const std::string _key_prefix, Statistics* const _statistics) 23 : persistent_cache(_persistent_cache), 24 key_prefix(_key_prefix), 25 statistics(_statistics) {} 26 ~PersistentCacheOptionsPersistentCacheOptions27 virtual ~PersistentCacheOptions() {} 28 29 std::shared_ptr<PersistentCache> persistent_cache; 30 std::string key_prefix; 31 Statistics* statistics = nullptr; 32 }; 33 34 } // namespace ROCKSDB_NAMESPACE 35