OmniSciDB  a5dc49c757
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LockMgrImpl.h File Reference
#include <atomic>
#include <map>
#include <memory>
#include <string>
#include <type_traits>
#include "Catalog/Catalog.h"
#include "OSDependent/heavyai_locks.h"
#include "Shared/heavyai_shared_mutex.h"
#include "Shared/types.h"
+ Include dependency graph for LockMgrImpl.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  lockmgr::MutexTracker
 
class  lockmgr::TrackedRefLock< LOCK >
 
class  lockmgr::AbstractLockContainer< T >
 
class  lockmgr::LockContainerImpl< T, LOCK >
 
class  lockmgr::TableLockMgrImpl< T >
 

Namespaces

 lockmgr
 
 lockmgr::helpers
 

Typedefs

using lockmgr::MutexTypeBase = heavyai::shared_mutex
 
using lockmgr::WriteLockBase = heavyai::unique_lock< MutexTracker >
 
using lockmgr::ReadLockBase = heavyai::shared_lock< MutexTracker >
 
using lockmgr::WriteLock = TrackedRefLock< WriteLockBase >
 
using lockmgr::ReadLock = TrackedRefLock< ReadLockBase >
 

Functions

ChunkKey lockmgr::helpers::chunk_key_for_table (const Catalog_Namespace::Catalog &cat, const std::string &tableName)
 
template<typename LOCK_TYPE , typename LOCK_MGR_TYPE >
LOCK_TYPE lockmgr::helpers::getLockForKeyImpl (const ChunkKey &chunk_key)
 
template<typename LOCK_TYPE , typename LOCK_MGR_TYPE >
LOCK_TYPE lockmgr::helpers::getLockForTableImpl (const Catalog_Namespace::Catalog &cat, const std::string &table_name)
 
template<typename T >
std::ostream & lockmgr::operator<< (std::ostream &os, const TableLockMgrImpl< T > &lock_mgr)