classtk_1_1_preempt_guard.tex 4.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. \doxysection{tk::Preempt\+Guard Class Reference}
  2. \hypertarget{classtk_1_1_preempt_guard}{}\label{classtk_1_1_preempt_guard}\index{tk::PreemptGuard@{tk::PreemptGuard}}
  3. プリエンプション禁止をスコープ単位で安全に管理する RAII クラス
  4. {\ttfamily \+\#include $<$kernel.\+hpp$>$}
  5. \doxysubsubsection*{Public Member Functions}
  6. \begin{DoxyCompactItemize}
  7. \item
  8. \doxymbox{\hyperlink{classtk_1_1_preempt_guard_a39e396ce51420c942e7d6549ec63f88e}{Preempt\+Guard}} ()
  9. \item
  10. \doxymbox{\hyperlink{classtk_1_1_preempt_guard_a329ea4d806861d9455168aeb01f41f86}{\texorpdfstring{$\sim$}{\string~}\+Preempt\+Guard}} ()
  11. \item
  12. \doxymbox{\hyperlink{classtk_1_1_preempt_guard_a360ac2b073064abc0f21db3127e7f389}{Preempt\+Guard}} (const Preempt\+Guard \&)=delete
  13. \item
  14. \doxymbox{\hyperlink{classtk_1_1_preempt_guard_a39e396ce51420c942e7d6549ec63f88e}{Preempt\+Guard}} \& \doxymbox{\hyperlink{classtk_1_1_preempt_guard_ad651c301bd81f95866e1cd380c2a2417}{operator=}} (const \doxymbox{\hyperlink{classtk_1_1_preempt_guard_a39e396ce51420c942e7d6549ec63f88e}{Preempt\+Guard}} \&)=delete
  15. \end{DoxyCompactItemize}
  16. \doxysubsection{Detailed Description}
  17. プリエンプション禁止をスコープ単位で安全に管理する RAII クラス
  18. 生成時に自動で {\ttfamily \doxylink{namespacetk_a3254a7e2a9f5ed3abe44e8cf62a8dcfe}{tk::\+preempt\+\_\+disable()}} を呼び、スコープを抜けた際に自動で {\ttfamily \doxylink{namespacetk_a70e6ee5f456e67a24ce13ff0fd04e4d9}{tk::\+preempt\+\_\+enable()}} を呼びます。
  19. \begin{DoxyCode}{0}
  20. \DoxyCodeLine{\{}
  21. \DoxyCodeLine{\ \ \ \ tk::PreemptGuard\ guard;}
  22. \DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ この区間はタスクスイッチが発生しない\ (I2C/SPI通信などに最適)}}
  23. \DoxyCodeLine{\ \ \ \ i2c\_write\_blocking(...);}
  24. \DoxyCodeLine{\}\ \textcolor{comment}{//\ 自動でタスクスイッチが再開}}
  25. \end{DoxyCode}
  26. \label{classtk_1_1_preempt_guard_doc-constructors}
  27. \Hypertarget{classtk_1_1_preempt_guard_doc-constructors}
  28. \doxysubsection{Constructor \& Destructor Documentation}
  29. \Hypertarget{classtk_1_1_preempt_guard_a39e396ce51420c942e7d6549ec63f88e}\index{tk::PreemptGuard@{tk::PreemptGuard}!PreemptGuard@{PreemptGuard}}
  30. \index{PreemptGuard@{PreemptGuard}!tk::PreemptGuard@{tk::PreemptGuard}}
  31. \doxysubsubsection{\texorpdfstring{PreemptGuard()}{PreemptGuard()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  32. {\footnotesize\ttfamily \label{classtk_1_1_preempt_guard_a39e396ce51420c942e7d6549ec63f88e}
  33. tk::\+\+Preempt\+Guard::\+\+Preempt\+Guard (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  34. \Hypertarget{classtk_1_1_preempt_guard_a329ea4d806861d9455168aeb01f41f86}\index{tk::PreemptGuard@{tk::PreemptGuard}!````~PreemptGuard@{\texorpdfstring{$\sim$}{\string~}PreemptGuard}}
  35. \index{````~PreemptGuard@{\texorpdfstring{$\sim$}{\string~}PreemptGuard}!tk::PreemptGuard@{tk::PreemptGuard}}
  36. \doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}PreemptGuard()}{\string~PreemptGuard()}}
  37. {\footnotesize\ttfamily \label{classtk_1_1_preempt_guard_a329ea4d806861d9455168aeb01f41f86}
  38. tk::\+\+Preempt\+Guard::\+\texorpdfstring{$\sim$}{\string~}\+Preempt\+Guard (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  39. \Hypertarget{classtk_1_1_preempt_guard_a360ac2b073064abc0f21db3127e7f389}\index{tk::PreemptGuard@{tk::PreemptGuard}!PreemptGuard@{PreemptGuard}}
  40. \index{PreemptGuard@{PreemptGuard}!tk::PreemptGuard@{tk::PreemptGuard}}
  41. \doxysubsubsection{\texorpdfstring{PreemptGuard()}{PreemptGuard()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  42. {\footnotesize\ttfamily \label{classtk_1_1_preempt_guard_a360ac2b073064abc0f21db3127e7f389}
  43. tk::\+\+Preempt\+Guard::\+\+Preempt\+Guard (\begin{DoxyParamCaption}\item[{const Preempt\+Guard \&}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
  44. \label{classtk_1_1_preempt_guard_doc-func-members}
  45. \Hypertarget{classtk_1_1_preempt_guard_doc-func-members}
  46. \doxysubsection{Member Function Documentation}
  47. \Hypertarget{classtk_1_1_preempt_guard_ad651c301bd81f95866e1cd380c2a2417}\index{tk::PreemptGuard@{tk::PreemptGuard}!operator=@{operator=}}
  48. \index{operator=@{operator=}!tk::PreemptGuard@{tk::PreemptGuard}}
  49. \doxysubsubsection{\texorpdfstring{operator=()}{operator=()}}
  50. {\footnotesize\ttfamily \label{classtk_1_1_preempt_guard_ad651c301bd81f95866e1cd380c2a2417}
  51. \doxymbox{\hyperlink{classtk_1_1_preempt_guard_a39e396ce51420c942e7d6549ec63f88e}{Preempt\+Guard}} \& tk::\+\+Preempt\+Guard::\+operator= (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classtk_1_1_preempt_guard_a39e396ce51420c942e7d6549ec63f88e}{Preempt\+Guard}} \&}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
  52. The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
  53. \item
  54. C:\+/\+\+Users/\+yoneda/\+\+Documents/\+\+Pico\+\_\+\+Projects/\+tinykernel/\+tinykernel/\+include/\+tinykernel/\doxymbox{\hyperlink{kernel_8hpp}{kernel.\+hpp}}\end{DoxyCompactItemize}