classtk_1_1_lock_guard.tex 6.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. \doxysection{tk::Lock\+Guard\texorpdfstring{$<$}{<} Lockable \texorpdfstring{$>$}{>} Class Template Reference}
  2. \hypertarget{classtk_1_1_lock_guard}{}\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*{Public Member Functions}
  6. \begin{DoxyCompactItemize}
  7. \item
  8. \doxymbox{\hyperlink{classtk_1_1_lock_guard_a3a922c7edf84ce25ef67151c322bb0eb}{Lock\+Guard}} (Lockable \&m)
  9. \begin{DoxyCompactList}\small\item\em ロック対象を受け取り、即座に \doxylink{namespacetk_a6540aa25eb8562f6d6c8b37977d6cfe8}{lock()} します \end{DoxyCompactList}\item
  10. \doxymbox{\hyperlink{classtk_1_1_lock_guard_a52eeb50abee00bd0ed16cfa6618ce40f}{\texorpdfstring{$\sim$}{\string~}\+Lock\+Guard}} ()
  11. \item
  12. \doxymbox{\hyperlink{classtk_1_1_lock_guard_af9bc86bc2036c4b8e54633ddee811604}{Lock\+Guard}} (const Lock\+Guard \&)=delete
  13. \item
  14. \doxymbox{\hyperlink{classtk_1_1_lock_guard_a3a922c7edf84ce25ef67151c322bb0eb}{Lock\+Guard}} \& \doxymbox{\hyperlink{classtk_1_1_lock_guard_a3f121f8aa1307f0f6e6e608cf138340c}{operator=}} (const \doxymbox{\hyperlink{classtk_1_1_lock_guard_a3a922c7edf84ce25ef67151c322bb0eb}{Lock\+Guard}} \&)=delete
  15. \end{DoxyCompactItemize}
  16. \doxysubsection{Detailed Description}
  17. \subsubsection*{template$<$typename Lockable$>$\newline
  18. class tk::\+\+Lock\+Guard$<$ Lockable $>$}
  19. ミューテックスのロックをスコープ単位で安全に管理する RAII クラス (std::\+lock\+\_\+guard 相当)
  20. 構築時に {\ttfamily \doxylink{namespacetk_a6540aa25eb8562f6d6c8b37977d6cfe8}{lock()}} を呼び、デストラクタで自動的に {\ttfamily \doxylink{namespacetk_a752b12f6862815c94a52347af52578b7}{unlock()}} を呼び出します。 途中で return や例外が発生しても確実にロックが解放されます。
  21. \begin{DoxyTemplParams}{Template Parameters}
  22. {\em Lockable} & \doxylink{namespacetk_a6540aa25eb8562f6d6c8b37977d6cfe8}{lock()} と \doxylink{namespacetk_a752b12f6862815c94a52347af52578b7}{unlock()} を持つ型 (例: \doxylink{classtk_1_1_mutex}{tk::\+\+Mutex}) \\
  23. \hline
  24. \end{DoxyTemplParams}
  25. \label{classtk_1_1_lock_guard_doc-constructors}
  26. \Hypertarget{classtk_1_1_lock_guard_doc-constructors}
  27. \doxysubsection{Constructor \& Destructor Documentation}
  28. \Hypertarget{classtk_1_1_lock_guard_a3a922c7edf84ce25ef67151c322bb0eb}\index{tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}!LockGuard@{LockGuard}}
  29. \index{LockGuard@{LockGuard}!tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}}
  30. \doxysubsubsection{\texorpdfstring{LockGuard()}{LockGuard()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  31. {\footnotesize\ttfamily \label{classtk_1_1_lock_guard_a3a922c7edf84ce25ef67151c322bb0eb}
  32. template$<$typename Lockable$>$ \\
  33. \doxymbox{\hyperlink{classtk_1_1_lock_guard}{tk::\+\+Lock\+Guard}}$<$ Lockable $>$::\+\+Lock\+Guard (\begin{DoxyParamCaption}\item[{Lockable \&}]{m}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}
  34. ロック対象を受け取り、即座に \doxylink{namespacetk_a6540aa25eb8562f6d6c8b37977d6cfe8}{lock()} します
  35. \begin{DoxyParams}{Parameters}
  36. {\em m} & ロック対象のミューテックス参照 \\
  37. \hline
  38. \end{DoxyParams}
  39. \Hypertarget{classtk_1_1_lock_guard_a52eeb50abee00bd0ed16cfa6618ce40f}\index{tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}!````~LockGuard@{\texorpdfstring{$\sim$}{\string~}LockGuard}}
  40. \index{````~LockGuard@{\texorpdfstring{$\sim$}{\string~}LockGuard}!tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}}
  41. \doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}LockGuard()}{\string~LockGuard()}}
  42. {\footnotesize\ttfamily \label{classtk_1_1_lock_guard_a52eeb50abee00bd0ed16cfa6618ce40f}
  43. template$<$typename Lockable$>$ \\
  44. \doxymbox{\hyperlink{classtk_1_1_lock_guard}{tk::\+\+Lock\+Guard}}$<$ Lockable $>$::\+\texorpdfstring{$\sim$}{\string~}\doxymbox{\hyperlink{classtk_1_1_lock_guard_a3a922c7edf84ce25ef67151c322bb0eb}{Lock\+Guard}} (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  45. スコープ終了時に自動的に \doxylink{namespacetk_a752b12f6862815c94a52347af52578b7}{unlock()} します \Hypertarget{classtk_1_1_lock_guard_af9bc86bc2036c4b8e54633ddee811604}\index{tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}!LockGuard@{LockGuard}}
  46. \index{LockGuard@{LockGuard}!tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}}
  47. \doxysubsubsection{\texorpdfstring{LockGuard()}{LockGuard()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  48. {\footnotesize\ttfamily \label{classtk_1_1_lock_guard_af9bc86bc2036c4b8e54633ddee811604}
  49. template$<$typename Lockable$>$ \\
  50. \doxymbox{\hyperlink{classtk_1_1_lock_guard}{tk::\+\+Lock\+Guard}}$<$ Lockable $>$::\+\+Lock\+Guard (\begin{DoxyParamCaption}\item[{const Lock\+Guard$<$ Lockable $>$ \&}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
  51. \label{classtk_1_1_lock_guard_doc-func-members}
  52. \Hypertarget{classtk_1_1_lock_guard_doc-func-members}
  53. \doxysubsection{Member Function Documentation}
  54. \Hypertarget{classtk_1_1_lock_guard_a3f121f8aa1307f0f6e6e608cf138340c}\index{tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}!operator=@{operator=}}
  55. \index{operator=@{operator=}!tk::LockGuard$<$ Lockable $>$@{tk::LockGuard$<$ Lockable $>$}}
  56. \doxysubsubsection{\texorpdfstring{operator=()}{operator=()}}
  57. {\footnotesize\ttfamily \label{classtk_1_1_lock_guard_a3f121f8aa1307f0f6e6e608cf138340c}
  58. template$<$typename Lockable$>$ \\
  59. \doxymbox{\hyperlink{classtk_1_1_lock_guard_a3a922c7edf84ce25ef67151c322bb0eb}{Lock\+Guard}} \& \doxymbox{\hyperlink{classtk_1_1_lock_guard}{tk::\+\+Lock\+Guard}}$<$ Lockable $>$::\+operator= (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classtk_1_1_lock_guard_a3a922c7edf84ce25ef67151c322bb0eb}{Lock\+Guard}}$<$ Lockable $>$ \&}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
  60. The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
  61. \item
  62. C:\+/\+\+Users/\+yoneda/\+\+Documents/\+\+Pico\+\_\+\+Projects/\+tinykernel/\+tinykernel/\+include/\+tinykernel/\doxymbox{\hyperlink{sync_8hpp}{sync.\+hpp}}\end{DoxyCompactItemize}