classtk_1_1_lock_guard.tex 4.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. \doxysection{tk::Lock\+Guard$<$ Lockable $>$ クラステンプレート}
  2. \label{classtk_1_1_lock_guard}\index{tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}}
  3. ミューテックスのロックをスコープ単位で安全に管理する RAII クラス (std::\+lock\+\_\+guard 相当)
  4. {\ttfamily \+\#include $<$sync.\+hpp$>$}
  5. \doxysubsubsection*{公開メンバ関数}
  6. \begin{DoxyCompactItemize}
  7. \item
  8. \textbf{ Lock\+Guard} (Lockable \&m)
  9. \begin{DoxyCompactList}\small\item\em ロック対象を受け取り、即座に \doxyref{lock()}{p.}{namespacetk_a6540aa25eb8562f6d6c8b37977d6cfe8} します \end{DoxyCompactList}\item
  10. \textbf{ $\sim$\+Lock\+Guard} ()
  11. \item
  12. \textbf{ Lock\+Guard} (const Lock\+Guard \&)=delete
  13. \item
  14. \textbf{ Lock\+Guard} \& \textbf{ operator=} (const \textbf{ Lock\+Guard} \&)=delete
  15. \end{DoxyCompactItemize}
  16. \doxysubsection{詳解}
  17. \subsubsection*{template$<$typename Lockable$>$\newline
  18. class tk::\+\+Lock\+Guard$<$ Lockable $>$}
  19. ミューテックスのロックをスコープ単位で安全に管理する RAII クラス (std::\+lock\+\_\+guard 相当)
  20. 構築時に {\ttfamily \doxyref{lock()}{p.}{namespacetk_a6540aa25eb8562f6d6c8b37977d6cfe8}} を呼び、デストラクタで自動的に {\ttfamily \doxyref{unlock()}{p.}{namespacetk_a752b12f6862815c94a52347af52578b7}} を呼び出します。 途中で return や例外が発生しても確実にロックが解放されます。
  21. \begin{DoxyTemplParams}{テンプレート引数}
  22. {\em Lockable} & \doxyref{lock()}{p.}{namespacetk_a6540aa25eb8562f6d6c8b37977d6cfe8} と \doxyref{unlock()}{p.}{namespacetk_a752b12f6862815c94a52347af52578b7} を持つ型 (例: \doxyref{tk::\+\+Mutex}{p.}{classtk_1_1_mutex}) \\
  23. \hline
  24. \end{DoxyTemplParams}
  25. \label{classtk_1_1_lock_guard_doc-constructors}
  26. \doxysubsection{構築子と解体子}
  27. \index{tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}!LockGuard@{LockGuard}}
  28. \index{LockGuard@{LockGuard}!tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}}
  29. \doxysubsubsection{LockGuard()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  30. {\footnotesize\ttfamily \label{classtk_1_1_lock_guard_a3a922c7edf84ce25ef67151c322bb0eb}
  31. template$<$typename Lockable$>$ \\
  32. \textbf{ tk::\+\+Lock\+Guard}$<$ Lockable $>$::\+\+Lock\+Guard (\begin{DoxyParamCaption}\item[{Lockable \&}]{m}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}
  33. ロック対象を受け取り、即座に \doxyref{lock()}{p.}{namespacetk_a6540aa25eb8562f6d6c8b37977d6cfe8} します
  34. \begin{DoxyParams}{引数}
  35. {\em m} & ロック対象のミューテックス参照 \\
  36. \hline
  37. \end{DoxyParams}
  38. \index{tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}!````~LockGuard@{$\sim$LockGuard}}
  39. \index{````~LockGuard@{$\sim$LockGuard}!tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}}
  40. \doxysubsubsection{$\sim$LockGuard()}
  41. {\footnotesize\ttfamily \label{classtk_1_1_lock_guard_a52eeb50abee00bd0ed16cfa6618ce40f}
  42. template$<$typename Lockable$>$ \\
  43. \textbf{ tk::\+\+Lock\+Guard}$<$ Lockable $>$::\+$\sim$\textbf{ Lock\+Guard} (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  44. スコープ終了時に自動的に \doxyref{unlock()}{p.}{namespacetk_a752b12f6862815c94a52347af52578b7} します \index{tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}!LockGuard@{LockGuard}}
  45. \index{LockGuard@{LockGuard}!tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}}
  46. \doxysubsubsection{LockGuard()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  47. {\footnotesize\ttfamily \label{classtk_1_1_lock_guard_af9bc86bc2036c4b8e54633ddee811604}
  48. template$<$typename Lockable$>$ \\
  49. \textbf{ tk::\+\+Lock\+Guard}$<$ Lockable $>$::\+\+Lock\+Guard (\begin{DoxyParamCaption}\item[{const Lock\+Guard$<$ Lockable $>$ \&}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
  50. \label{classtk_1_1_lock_guard_doc-func-members}
  51. \doxysubsection{関数詳解}
  52. \index{tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}!operator=@{operator=}}
  53. \index{operator=@{operator=}!tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}}
  54. \doxysubsubsection{operator=()}
  55. {\footnotesize\ttfamily \label{classtk_1_1_lock_guard_a3f121f8aa1307f0f6e6e608cf138340c}
  56. template$<$typename Lockable$>$ \\
  57. \textbf{ Lock\+Guard} \& \textbf{ tk::\+\+Lock\+Guard}$<$ Lockable $>$::\+operator= (\begin{DoxyParamCaption}\item[{const \textbf{ Lock\+Guard}$<$ Lockable $>$ \&}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
  58. このクラス詳解は次のファイルから抽出されました:\begin{DoxyCompactItemize}
  59. \item
  60. C:\+/\+\+Users/\+yoneda/\+\+Documents/\+\+Pico\+\_\+\+Projects/\+tinykernel/\+tinykernel/\+include/\+tinykernel/\textbf{ sync.\+hpp}\end{DoxyCompactItemize}