19 #include <rapidjson/document.h> 20 #include <boost/variant.hpp> 34 template <
typename MutexType,
typename KeyType>
37 static std::shared_ptr<MutexType>
getMutex(
const LockType lockType,
const KeyType& key);
41 static std::map<std::tuple<LockType, KeyType>, std::shared_ptr<MutexType>>
mutexMap_;
44 template <
typename MutexType,
typename KeyType>
46 template <
typename MutexType,
typename KeyType>
47 std::map<std::tuple<LockType, KeyType>, std::shared_ptr<MutexType>>
50 template <
typename MutexType,
typename KeyType>
53 auto lock_key = std::make_tuple(lock_type, key);
55 std::unique_lock<std::mutex> lck(
aMutex_);
61 auto tMutex = std::make_shared<MutexType>();
This file contains the class specification and related data structures for Catalog.
static std::mutex aMutex_
static std::shared_ptr< MutexType > getMutex(const LockType lockType, const KeyType &key)
static std::map< std::tuple< LockType, KeyType >, std::shared_ptr< MutexType > > mutexMap_