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