YSTest: ystdex::single_thread::unique_lock< _tMutex > 模板类 参考

YSTest PreAlpha_b700_20160611 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

Public 类型 | Public 成员函数 | Private 成员函数 | Private 属性 | 相关函数 | 所有成员列表
ystdex::single_thread::unique_lock< _tMutex > 模板类 参考

`#include <pseudo_mutex.h>`

类 ystdex::single_thread::unique_lock< _tMutex > 继承关系图:
[图例]
ystdex::single_thread::unique_lock< _tMutex > 的协作图:
[图例]

## Public 类型

using | mutex_type = _tMutex

## Public 成员函数

| unique_lock ()
| unique_lock (unique_lock &&u)
| ~unique_lock ()
unique_lock & | operator= (unique_lock &&u)
| operator bool () const
void | lock ()
bool | owns_lock () const
mutex_type * | release ()
void | swap (unique_lock &u)
bool | try_lock ()
void | unlock ()
mutex_type * | mutex () const
| unique_lock (mutex_type &m)
| unique_lock (mutex_type &m, defer_lock_t)
| unique_lock (mutex_type &m, try_to_lock_t)
| unique_lock (mutex_type &m, adopt_lock_t)
template<typename _tClock , typename _tDuration >
| unique_lock (mutex_type &m, const std::chrono::time_point< _tClock, _tDuration > &abs_time)
template<typename _tRep , typename _tPeriod >
| unique_lock (mutex_type &m, const std::chrono::duration< _tRep, _tPeriod > &rel_time)
template<typename _tRep , typename _tPeriod >
bool | try_lock_for (const std::chrono::duration< _tRep, _tPeriod > &rel_time)
template<typename _tClock , typename _tDuration >
bool | try_lock_until (const std::chrono::time_point< _tClock, _tDuration > &abs_time)

## Private 成员函数

void | check_lock ()
void | clear_members ()
Private 成员函数 继承自 ystdex::noncopyable
| noncopyable (const noncopyable &)=delete
| 禁止复制构造。 更多...
| noncopyable (noncopyable &&)=default
| 允许转移构造。 更多...
noncopyable & | operator= (const noncopyable &)=delete
| 禁止复制赋值。 更多...
noncopyable & | operator= (noncopyable &&)=default
| 允许转移赋值。 更多...
| noncopyable ()=default
| `protected` 构造：默认实现。 更多...
| ~noncopyable ()=default
| `protected` 析构：默认实现。 更多...

## Private 属性

mutex_type * | pm
bool | owns

## 相关函数

(请注意: 这些不是成员函数.)
template<class _tMutex >
void | swap (unique_lock< _tMutex > &x, unique_lock< _tMutex > &y)

## 详细描述

### template<class _tMutex>
class ystdex::single_thread::unique_lock< _tMutex >

注解
  定义宏 `NDEBUG` 时不进行检查，优化实现为空操作。

在文件 pseudo_mutex.h 第 242 行定义.

## 成员类型定义说明

template<class _tMutex>

using ystdex::single_thread::unique_lock< _tMutex >::mutex_type = _tMutex

在文件 pseudo_mutex.h 第 245 行定义.

## 构造及析构函数说明

template<class _tMutex>

ystdex::single_thread::unique_lock< _tMutex >::unique_lock | ( |  | ) |

inline

在文件 pseudo_mutex.h 第 334 行定义.

参考自 ystdex::single_thread::unique_lock< _tMutex >::operator=().

这是这个函数的调用关系图:
template<class _tMutex>

ystdex::single_thread::unique_lock< _tMutex >::unique_lock | ( | mutex_type & | m | ) |

inlineexplicit

后置条件
  `pm == &m` 。

在文件 pseudo_mutex.h 第 341 行定义.

参考 ystdex::single_thread::unique_lock< _tMutex >::lock().

函数调用图:
template<class _tMutex>

ystdex::single_thread::unique_lock< _tMutex >::unique_lock | ( | mutex_type & | m,
|  | defer_lock_t |
| ) |  |

inline

在文件 pseudo_mutex.h 第 347 行定义.

template<class _tMutex>

ystdex::single_thread::unique_lock< _tMutex >::unique_lock | ( | mutex_type & | m,
|  | try_to_lock_t |
| ) |  |

inline

前置条件
  mutex_type 满足 Lockable 要求。
  若 mutex_type 非递归锁，调用线程不持有锁。

在文件 pseudo_mutex.h 第 354 行定义.

template<class _tMutex>

ystdex::single_thread::unique_lock< _tMutex >::unique_lock | ( | mutex_type & | m,
|  | adopt_lock_t |
| ) |  |

inline

前置条件
  调用线程持有锁。

在文件 pseudo_mutex.h 第 358 行定义.

template<class _tMutex>
template<typename _tClock , typename _tDuration >

ystdex::single_thread::unique_lock< _tMutex >::unique_lock | ( | mutex_type & | m,
|  | const std::chrono::time_point< _tClock, _tDuration > & | abs_time
| ) |  |

inline

前置条件
  mutex_type 满足 TimedLockable 要求。
  若 mutex_type 非递归锁，调用线程不持有锁。

在文件 pseudo_mutex.h 第 367 行定义.

template<class _tMutex>
template<typename _tRep , typename _tPeriod >

ystdex::single_thread::unique_lock< _tMutex >::unique_lock | ( | mutex_type & | m,
|  | const std::chrono::duration< _tRep, _tPeriod > & | rel_time
| ) |  |

inline

在文件 pseudo_mutex.h 第 372 行定义.

template<class _tMutex>

ystdex::single_thread::unique_lock< _tMutex >::unique_lock | ( | unique_lock< _tMutex > && | u | ) |

inline

后置条件
  `pm == u_p.pm && owns == u_p.owns` 当 `u_p` 是 u 之前的状态。
  `!u.pm && !u.owns` 。

在文件 pseudo_mutex.h 第 382 行定义.

参考 yunseq.

template<class _tMutex>

ystdex::single_thread::unique_lock< _tMutex >::~unique_lock | ( |  | ) |

inline

在文件 pseudo_mutex.h 第 387 行定义.

参考 ystdex::single_thread::unique_lock< _tMutex >::unlock().

函数调用图:

## 成员函数说明

template<class _tMutex>

void ystdex::single_thread::unique_lock< _tMutex >::check_lock | ( |  | ) |

inlineprivate

在文件 pseudo_mutex.h 第 416 行定义.

参考 ystdex::throw_error().

参考自 ystdex::single_thread::unique_lock< _tMutex >::lock(), ystdex::single_thread::unique_lock< _tMutex >::try_lock(), ystdex::single_thread::unique_lock< _tMutex >::try_lock_for() , 以及 ystdex::single_thread::unique_lock< _tMutex >::try_lock_until().

函数调用图:

这是这个函数的调用关系图:
template<class _tMutex>

void ystdex::single_thread::unique_lock< _tMutex >::clear_members | ( |  | ) |

inlineprivate

在文件 pseudo_mutex.h 第 427 行定义.

参考 yunseq.

参考自 ystdex::single_thread::unique_lock< _tMutex >::release().

这是这个函数的调用关系图:
template<class _tMutex>

void ystdex::single_thread::unique_lock< _tMutex >::lock | ( |  | ) |

inline

在文件 pseudo_mutex.h 第 434 行定义.

参考 ystdex::single_thread::unique_lock< _tMutex >::check_lock().

参考自 ystdex::single_thread::unique_lock< _tMutex >::unique_lock().

函数调用图:

这是这个函数的调用关系图:
template<class _tMutex>

mutex_type* ystdex::single_thread::unique_lock< _tMutex >::mutex | ( |  | ) | const

inline

在文件 pseudo_mutex.h 第 505 行定义.

参考 ystdex::single_thread::unique_lock< _tMutex >::pm.

template<class _tMutex>

ystdex::single_thread::unique_lock< _tMutex >::operator bool | ( |  | ) | const

inlineexplicit

在文件 pseudo_mutex.h 第 409 行定义.

参考 ystdex::single_thread::unique_lock< _tMutex >::owns.

template<class _tMutex>

unique_lock& ystdex::single_thread::unique_lock< _tMutex >::operator= | ( | unique_lock< _tMutex > && | u | ) |

inline

后置条件
  `pm == u_p.pm && owns == u_p.owns` 当 `u_p` 是 u 之前的状态。
  `!u.pm && !u.owns` 。

参见
  http://wg21.cmeerw.net/lwg/issue2104 。

在文件 pseudo_mutex.h 第 399 行定义.

参考 ystdex::single_thread::unique_lock< _tMutex >::unique_lock() , 以及 ystdex::single_thread::unique_lock< _tMutex >::unlock().

函数调用图:
template<class _tMutex>

bool ystdex::single_thread::unique_lock< _tMutex >::owns_lock | ( |  | ) | const

inline

在文件 pseudo_mutex.h 第 442 行定义.

参考 ystdex::single_thread::unique_lock< _tMutex >::owns.

template<class _tMutex>

mutex_type* ystdex::single_thread::unique_lock< _tMutex >::release | ( |  | ) |

inline

在文件 pseudo_mutex.h 第 448 行定义.

参考 ystdex::single_thread::unique_lock< _tMutex >::clear_members().

函数调用图:
template<class _tMutex>

void ystdex::single_thread::unique_lock< _tMutex >::swap | ( | unique_lock< _tMutex > & | u | ) |

inline

在文件 pseudo_mutex.h 第 457 行定义.

参考 ystdex::swap().

函数调用图:
template<class _tMutex>

bool ystdex::single_thread::unique_lock< _tMutex >::try_lock | ( |  | ) |

inline

前置条件
  mutex_type 满足 Lockable 要求。

在文件 pseudo_mutex.h 第 465 行定义.

参考 ystdex::single_thread::unique_lock< _tMutex >::check_lock().

函数调用图:
template<class _tMutex>
template<typename _tRep , typename _tPeriod >

bool ystdex::single_thread::unique_lock< _tMutex >::try_lock_for | ( | const std::chrono::duration< _tRep, _tPeriod > & | rel_time | ) |

inline

前置条件
  mutex_type 满足 TimedLockable 要求。

在文件 pseudo_mutex.h 第 475 行定义.

参考 ystdex::single_thread::unique_lock< _tMutex >::check_lock().

函数调用图:
template<class _tMutex>
template<typename _tClock , typename _tDuration >

bool ystdex::single_thread::unique_lock< _tMutex >::try_lock_until | ( | const std::chrono::time_point< _tClock, _tDuration > & | abs_time | ) |

inline

在文件 pseudo_mutex.h 第 484 行定义.

参考 ystdex::single_thread::unique_lock< _tMutex >::check_lock().

函数调用图:
template<class _tMutex>

void ystdex::single_thread::unique_lock< _tMutex >::unlock | ( |  | ) |

inline

在文件 pseudo_mutex.h 第 493 行定义.

参考 ystdex::throw_error().

参考自 ystdex::single_thread::unique_lock< _tMutex >::operator=() , 以及 ystdex::single_thread::unique_lock< _tMutex >::~unique_lock().

函数调用图:

这是这个函数的调用关系图:

## 友元及相关函数文档

template<class _tMutex >

void swap | ( | unique_lock< _tMutex > & | x,
|  | unique_lock< _tMutex > & | y
| ) |  |

related

在文件 pseudo_mutex.h 第 550 行定义.

参考 YSLib::Drawing::x , 以及 YSLib::UI::y.

## 类成员变量说明

template<class _tMutex>

bool ystdex::single_thread::unique_lock< _tMutex >::owns

private

在文件 pseudo_mutex.h 第 331 行定义.

参考自 ystdex::single_thread::unique_lock< _tMutex >::operator bool() , 以及 ystdex::single_thread::unique_lock< _tMutex >::owns_lock().

template<class _tMutex>

mutex_type* ystdex::single_thread::unique_lock< _tMutex >::pm

private

在文件 pseudo_mutex.h 第 330 行定义.

参考自 ystdex::single_thread::unique_lock< _tMutex >::mutex().

该类的文档由以下文件生成:

- pseudo_mutex.h