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 6 #pragma once 7 #ifndef ROCKSDB_LITE 8 9 #include "rocksdb/utilities/transaction_db_mutex.h" 10 11 namespace ROCKSDB_NAMESPACE { 12 13 class TransactionDBMutex; 14 class TransactionDBCondVar; 15 16 // Default implementation of TransactionDBMutexFactory. May be overridden 17 // by TransactionDBOptions.custom_mutex_factory. 18 class TransactionDBMutexFactoryImpl : public TransactionDBMutexFactory { 19 public: 20 std::shared_ptr<TransactionDBMutex> AllocateMutex() override; 21 std::shared_ptr<TransactionDBCondVar> AllocateCondVar() override; 22 }; 23 24 } // namespace ROCKSDB_NAMESPACE 25 26 #endif // ROCKSDB_LITE 27