classtk_1_1_actor.xml 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441
  1. <?xml version='1.0' encoding='UTF-8' standalone='no'?>
  2. <doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.18.0" xml:lang="ja">
  3. <compounddef id="classtk_1_1_actor" kind="class" language="C++" prot="public" abstract="yes">
  4. <compoundname>tk::Actor</compoundname>
  5. <includes refid="actor_8hpp" local="no">actor.hpp</includes>
  6. <templateparamlist>
  7. <param>
  8. <type>typename MsgType</type>
  9. <defval><ref refid="structtk_1_1_message" kindref="compound">Message</ref></defval>
  10. </param>
  11. <param>
  12. <type>size_t</type>
  13. <declname>QueueSize</declname>
  14. <defname>QueueSize</defname>
  15. <defval>8</defval>
  16. </param>
  17. </templateparamlist>
  18. <sectiondef kind="private-attrib">
  19. <memberdef kind="variable" id="classtk_1_1_actor_1abf56f692a06334a14197605042b3b786" prot="private" static="no" mutable="no">
  20. <type>MsgType</type>
  21. <definition>MsgType tk::Actor&lt; MsgType, QueueSize &gt;::queue_[QueueSize]</definition>
  22. <argsstring>[QueueSize]</argsstring>
  23. <name>queue_</name>
  24. <qualifiedname>tk::Actor::queue_</qualifiedname>
  25. <initializer>{}</initializer>
  26. <briefdescription>
  27. </briefdescription>
  28. <detaileddescription>
  29. </detaileddescription>
  30. <inbodydescription>
  31. </inbodydescription>
  32. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="311" column="13" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="311" bodyend="311"/>
  33. </memberdef>
  34. <memberdef kind="variable" id="classtk_1_1_actor_1a25817f7222356d11b2e70264e79a05a3" prot="private" static="no" mutable="no">
  35. <type>size_t</type>
  36. <definition>size_t tk::Actor&lt; MsgType, QueueSize &gt;::head_</definition>
  37. <argsstring></argsstring>
  38. <name>head_</name>
  39. <qualifiedname>tk::Actor::head_</qualifiedname>
  40. <initializer>{0}</initializer>
  41. <briefdescription>
  42. </briefdescription>
  43. <detaileddescription>
  44. </detaileddescription>
  45. <inbodydescription>
  46. </inbodydescription>
  47. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="312" column="12" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="312" bodyend="312"/>
  48. </memberdef>
  49. <memberdef kind="variable" id="classtk_1_1_actor_1a546e611f32ce2e89e9bae88ef2cf1cc6" prot="private" static="no" mutable="no">
  50. <type>size_t</type>
  51. <definition>size_t tk::Actor&lt; MsgType, QueueSize &gt;::tail_</definition>
  52. <argsstring></argsstring>
  53. <name>tail_</name>
  54. <qualifiedname>tk::Actor::tail_</qualifiedname>
  55. <initializer>{0}</initializer>
  56. <briefdescription>
  57. </briefdescription>
  58. <detaileddescription>
  59. </detaileddescription>
  60. <inbodydescription>
  61. </inbodydescription>
  62. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="313" column="12" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="313" bodyend="313"/>
  63. </memberdef>
  64. <memberdef kind="variable" id="classtk_1_1_actor_1ad829bfd39086109fd32fc6ca389d5f92" prot="private" static="no" mutable="no">
  65. <type>size_t</type>
  66. <definition>size_t tk::Actor&lt; MsgType, QueueSize &gt;::count_</definition>
  67. <argsstring></argsstring>
  68. <name>count_</name>
  69. <qualifiedname>tk::Actor::count_</qualifiedname>
  70. <initializer>{0}</initializer>
  71. <briefdescription>
  72. </briefdescription>
  73. <detaileddescription>
  74. </detaileddescription>
  75. <inbodydescription>
  76. </inbodydescription>
  77. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="314" column="12" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="314" bodyend="314"/>
  78. </memberdef>
  79. <memberdef kind="variable" id="classtk_1_1_actor_1a48192d156c2b4c884f5400858ebbbbf8" prot="private" static="no" mutable="no">
  80. <type>bool</type>
  81. <definition>bool tk::Actor&lt; MsgType, QueueSize &gt;::waiting_</definition>
  82. <argsstring></argsstring>
  83. <name>waiting_</name>
  84. <qualifiedname>tk::Actor::waiting_</qualifiedname>
  85. <initializer>{false}</initializer>
  86. <briefdescription>
  87. </briefdescription>
  88. <detaileddescription>
  89. </detaileddescription>
  90. <inbodydescription>
  91. </inbodydescription>
  92. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="315" column="10" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="315" bodyend="315"/>
  93. </memberdef>
  94. <memberdef kind="variable" id="classtk_1_1_actor_1a995adffb1431a4173f7fc892e4fc5efa" prot="private" static="no" mutable="no">
  95. <type><ref refid="structtk_1_1_task_handle" kindref="compound">TaskHandle</ref></type>
  96. <definition>TaskHandle tk::Actor&lt; MsgType, QueueSize &gt;::handle_</definition>
  97. <argsstring></argsstring>
  98. <name>handle_</name>
  99. <qualifiedname>tk::Actor::handle_</qualifiedname>
  100. <initializer>{}</initializer>
  101. <briefdescription>
  102. </briefdescription>
  103. <detaileddescription>
  104. </detaileddescription>
  105. <inbodydescription>
  106. </inbodydescription>
  107. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="316" column="16" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="316" bodyend="316"/>
  108. </memberdef>
  109. </sectiondef>
  110. <sectiondef kind="public-func">
  111. <memberdef kind="function" id="classtk_1_1_actor_1a776aef8cdcfb4416ef976697eb518ed5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
  112. <type></type>
  113. <definition>tk::Actor&lt; MsgType, QueueSize &gt;::Actor</definition>
  114. <argsstring>()=default</argsstring>
  115. <name>Actor</name>
  116. <qualifiedname>tk::Actor::Actor</qualifiedname>
  117. <briefdescription>
  118. </briefdescription>
  119. <detaileddescription>
  120. </detaileddescription>
  121. <inbodydescription>
  122. </inbodydescription>
  123. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="178" column="5"/>
  124. </memberdef>
  125. <memberdef kind="function" id="classtk_1_1_actor_1abfc63a514a3ae7cdbdf9ceee81c3b0fc" prot="public" static="no" const="no" explicit="no" inline="yes" virt="virtual">
  126. <type></type>
  127. <definition>virtual tk::Actor&lt; MsgType, QueueSize &gt;::~Actor</definition>
  128. <argsstring>()</argsstring>
  129. <name>~Actor</name>
  130. <qualifiedname>tk::Actor::~Actor</qualifiedname>
  131. <briefdescription>
  132. </briefdescription>
  133. <detaileddescription>
  134. </detaileddescription>
  135. <inbodydescription>
  136. </inbodydescription>
  137. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="179" column="13" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="179" bodyend="181"/>
  138. </memberdef>
  139. <memberdef kind="function" id="classtk_1_1_actor_1ac98ec3132f2ded910a6899b030c06f3f" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
  140. <type>bool</type>
  141. <definition>bool tk::Actor&lt; MsgType, QueueSize &gt;::start</definition>
  142. <argsstring>(uint32_t prio=PRIO_NORMAL)</argsstring>
  143. <name>start</name>
  144. <qualifiedname>tk::Actor::start</qualifiedname>
  145. <param>
  146. <type>uint32_t</type>
  147. <declname>prio</declname>
  148. <defval><ref refid="namespacetk_1a3d47fbd63b95ed3b46bed70c2fa1e50ea0e6779023b97999c2cef66ba1d4d1fca" kindref="member">PRIO_NORMAL</ref></defval>
  149. </param>
  150. <briefdescription>
  151. <para><ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> をタスクとして生成し、EventHub へ自動登録します </para>
  152. </briefdescription>
  153. <detaileddescription>
  154. <para><computeroutput><ref refid="namespacetk_1a675f1829b87e2a43239b6f80a526d0ed" kindref="member">tk::start()</ref></computeroutput> を呼び出す前に登録する必要があります。</para>
  155. <para><parameterlist kind="param"><parameteritem>
  156. <parameternamelist>
  157. <parametername>prio</parametername>
  158. </parameternamelist>
  159. <parameterdescription>
  160. <para>タスク優先度 (省略時: <ref refid="namespacetk_1a3d47fbd63b95ed3b46bed70c2fa1e50ea0e6779023b97999c2cef66ba1d4d1fca" kindref="member">tk::PRIO_NORMAL</ref>) </para>
  161. </parameterdescription>
  162. </parameteritem>
  163. </parameterlist>
  164. <simplesect kind="return"><para>true 登録成功, false 登録失敗 (タスク枠上限など) </para>
  165. </simplesect>
  166. </para>
  167. </detaileddescription>
  168. <inbodydescription>
  169. </inbodydescription>
  170. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="191" column="10" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="191" bodyend="197"/>
  171. </memberdef>
  172. <memberdef kind="function" id="classtk_1_1_actor_1a224e6be4dca0d1500f2121e97bd0f92d" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
  173. <type>bool</type>
  174. <definition>bool tk::Actor&lt; MsgType, QueueSize &gt;::post</definition>
  175. <argsstring>(const MsgType &amp;msg)</argsstring>
  176. <name>post</name>
  177. <qualifiedname>tk::Actor::post</qualifiedname>
  178. <param>
  179. <type>const MsgType &amp;</type>
  180. <declname>msg</declname>
  181. </param>
  182. <briefdescription>
  183. <para>この <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> のメッセージキューへ直接メッセージを送信します (コピー渡し) </para>
  184. </briefdescription>
  185. <detaileddescription>
  186. <para>スレッドセーフ・割り込みセーフ・マルチコアセーフです。</para>
  187. <para><parameterlist kind="param"><parameteritem>
  188. <parameternamelist>
  189. <parametername>msg</parametername>
  190. </parameternamelist>
  191. <parameterdescription>
  192. <para>送信するメッセージ </para>
  193. </parameterdescription>
  194. </parameteritem>
  195. </parameterlist>
  196. <simplesect kind="return"><para>true 送信成功, false キューが満杯 </para>
  197. </simplesect>
  198. </para>
  199. </detaileddescription>
  200. <inbodydescription>
  201. </inbodydescription>
  202. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="207" column="10" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="207" bodyend="222"/>
  203. </memberdef>
  204. <memberdef kind="function" id="classtk_1_1_actor_1a863f28d824aaa78c75789166b1c2a010" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
  205. <type>bool</type>
  206. <definition>bool tk::Actor&lt; MsgType, QueueSize &gt;::post</definition>
  207. <argsstring>(MsgType &amp;&amp;msg)</argsstring>
  208. <name>post</name>
  209. <qualifiedname>tk::Actor::post</qualifiedname>
  210. <param>
  211. <type>MsgType &amp;&amp;</type>
  212. <declname>msg</declname>
  213. </param>
  214. <briefdescription>
  215. <para>この <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> のメッセージキューへ直接メッセージを送信します (ムーブ渡し) </para>
  216. </briefdescription>
  217. <detaileddescription>
  218. <para><parameterlist kind="param"><parameteritem>
  219. <parameternamelist>
  220. <parametername>msg</parametername>
  221. </parameternamelist>
  222. <parameterdescription>
  223. <para>送信するメッセージ (ムーブ) </para>
  224. </parameterdescription>
  225. </parameteritem>
  226. </parameterlist>
  227. <simplesect kind="return"><para>true 送信成功, false キューが満杯 </para>
  228. </simplesect>
  229. </para>
  230. </detaileddescription>
  231. <inbodydescription>
  232. </inbodydescription>
  233. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="230" column="10" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="230" bodyend="245"/>
  234. </memberdef>
  235. <memberdef kind="function" id="classtk_1_1_actor_1a5c4f4f2f1b8011a37773617e34218c2d" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
  236. <templateparamlist>
  237. <param>
  238. <type>typename U</type>
  239. <defval>MsgType</defval>
  240. </param>
  241. </templateparamlist>
  242. <type>std::enable_if&lt; std::is_same&lt; U, <ref refid="structtk_1_1_message" kindref="compound">Message</ref> &gt;::value, bool &gt;::type</type>
  243. <definition>std::enable_if&lt; std::is_same&lt; U, Message &gt;::value, bool &gt;::type tk::Actor&lt; MsgType, QueueSize &gt;::post</definition>
  244. <argsstring>(uint32_t id, uintptr_t arg=0)</argsstring>
  245. <name>post</name>
  246. <qualifiedname>tk::Actor::post</qualifiedname>
  247. <param>
  248. <type>uint32_t</type>
  249. <declname>id</declname>
  250. </param>
  251. <param>
  252. <type>uintptr_t</type>
  253. <declname>arg</declname>
  254. <defval>0</defval>
  255. </param>
  256. <briefdescription>
  257. <para><ref refid="structtk_1_1_message" kindref="compound">tk::Message</ref> 型の場合のコンビニエンス送信関数 </para>
  258. </briefdescription>
  259. <detaileddescription>
  260. <para><parameterlist kind="param"><parameteritem>
  261. <parameternamelist>
  262. <parametername>id</parametername>
  263. </parameternamelist>
  264. <parameterdescription>
  265. <para>メッセージID </para>
  266. </parameterdescription>
  267. </parameteritem>
  268. <parameteritem>
  269. <parameternamelist>
  270. <parametername>arg</parametername>
  271. </parameternamelist>
  272. <parameterdescription>
  273. <para>引数 (省略時: 0) </para>
  274. </parameterdescription>
  275. </parameteritem>
  276. </parameterlist>
  277. <simplesect kind="return"><para>true 送信成功, false キューが満杯 </para>
  278. </simplesect>
  279. </para>
  280. </detaileddescription>
  281. <inbodydescription>
  282. </inbodydescription>
  283. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="256" column="5" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="256" bodyend="258"/>
  284. </memberdef>
  285. <memberdef kind="function" id="classtk_1_1_actor_1a60a2752360fa7185ec7776f2a6ef766a" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
  286. <type><ref refid="structtk_1_1_task_handle" kindref="compound">TaskHandle</ref></type>
  287. <definition>TaskHandle tk::Actor&lt; MsgType, QueueSize &gt;::handle</definition>
  288. <argsstring>() const</argsstring>
  289. <name>handle</name>
  290. <qualifiedname>tk::Actor::handle</qualifiedname>
  291. <briefdescription>
  292. </briefdescription>
  293. <detaileddescription>
  294. <para>この <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> のタスクハンドルを取得 </para>
  295. </detaileddescription>
  296. <inbodydescription>
  297. </inbodydescription>
  298. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="261" column="16" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="261" bodyend="261"/>
  299. </memberdef>
  300. </sectiondef>
  301. <sectiondef kind="protected-func">
  302. <memberdef kind="function" id="classtk_1_1_actor_1afb31ec0d50d1ac97e6a4ce148a96f78d" prot="protected" static="no" const="no" explicit="no" inline="yes" virt="virtual">
  303. <type>void</type>
  304. <definition>virtual void tk::Actor&lt; MsgType, QueueSize &gt;::on_start</definition>
  305. <argsstring>()</argsstring>
  306. <name>on_start</name>
  307. <qualifiedname>tk::Actor::on_start</qualifiedname>
  308. <briefdescription>
  309. <para>タスク起動時、イベントループ突入直前に1度だけ呼ばれる初期化関数 </para>
  310. </briefdescription>
  311. <detaileddescription>
  312. <para>タスクコンテキスト内で実行されるため、<computeroutput><ref refid="namespacetk_1aae83f84121085578a7568437a8dc2447" kindref="member">tk::sleep_ms()</ref></computeroutput> を使った初期化ウェイトも安全に行えます。 必要に応じて派生クラスでオーバーライドします。 </para>
  313. </detaileddescription>
  314. <inbodydescription>
  315. </inbodydescription>
  316. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="270" column="18" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="270" bodyend="270"/>
  317. </memberdef>
  318. <memberdef kind="function" id="classtk_1_1_actor_1a1147554d6ddb64d822285ca5a03506a4" prot="protected" static="no" const="no" explicit="no" inline="no" virt="pure-virtual">
  319. <type>void</type>
  320. <definition>virtual void tk::Actor&lt; MsgType, QueueSize &gt;::on_message</definition>
  321. <argsstring>(const MsgType &amp;msg)=0</argsstring>
  322. <name>on_message</name>
  323. <qualifiedname>tk::Actor::on_message</qualifiedname>
  324. <param>
  325. <type>const MsgType &amp;</type>
  326. <declname>msg</declname>
  327. </param>
  328. <briefdescription>
  329. <para>メッセージ受信時に呼ばれるハンドラ関数 </para>
  330. </briefdescription>
  331. <detaileddescription>
  332. <para>キューから取り出されたメッセージの実体への参照が渡されます。 派生クラスで必ず実装します。</para>
  333. <para><parameterlist kind="param"><parameteritem>
  334. <parameternamelist>
  335. <parametername>msg</parametername>
  336. </parameternamelist>
  337. <parameterdescription>
  338. <para>受信したメッセージ </para>
  339. </parameterdescription>
  340. </parameteritem>
  341. </parameterlist>
  342. </para>
  343. </detaileddescription>
  344. <inbodydescription>
  345. </inbodydescription>
  346. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="280" column="18"/>
  347. </memberdef>
  348. </sectiondef>
  349. <sectiondef kind="private-static-func">
  350. <memberdef kind="function" id="classtk_1_1_actor_1ab733fa2f27a477b08ef42c269ee543a5" prot="private" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
  351. <type>void</type>
  352. <definition>static void tk::Actor&lt; MsgType, QueueSize &gt;::task_entry</definition>
  353. <argsstring>(void *arg)</argsstring>
  354. <name>task_entry</name>
  355. <qualifiedname>tk::Actor::task_entry</qualifiedname>
  356. <param>
  357. <type>void *</type>
  358. <declname>arg</declname>
  359. </param>
  360. <briefdescription>
  361. </briefdescription>
  362. <detaileddescription>
  363. </detaileddescription>
  364. <inbodydescription>
  365. </inbodydescription>
  366. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="283" column="17" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="283" bodyend="285"/>
  367. </memberdef>
  368. </sectiondef>
  369. <sectiondef kind="private-func">
  370. <memberdef kind="function" id="classtk_1_1_actor_1aa1f824e793d168aca7af65d1254c97f6" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
  371. <type>void</type>
  372. <definition>void tk::Actor&lt; MsgType, QueueSize &gt;::event_loop</definition>
  373. <argsstring>()</argsstring>
  374. <name>event_loop</name>
  375. <qualifiedname>tk::Actor::event_loop</qualifiedname>
  376. <briefdescription>
  377. </briefdescription>
  378. <detaileddescription>
  379. </detaileddescription>
  380. <inbodydescription>
  381. </inbodydescription>
  382. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="287" column="10" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="287" bodyend="309"/>
  383. </memberdef>
  384. </sectiondef>
  385. <briefdescription>
  386. <para>メッセージ駆動型タスク (アクター) の基底クラス </para>
  387. </briefdescription>
  388. <detaileddescription>
  389. <para>固定長リングバッファ付きのメッセージキューを持ち、メッセージ到着時に自動起床して <computeroutput><ref refid="classtk_1_1_actor_1a1147554d6ddb64d822285ca5a03506a4" kindref="member">on_message()</ref></computeroutput> を実行します。メッセージが無い時は CPU を消費せずブロック待機します。</para>
  390. <para><parameterlist kind="templateparam"><parameteritem>
  391. <parameternamelist>
  392. <parametername>MsgType</parametername>
  393. </parameternamelist>
  394. <parameterdescription>
  395. <para>受信するメッセージの型 (デフォルト: <ref refid="structtk_1_1_message" kindref="compound">tk::Message</ref>) </para>
  396. </parameterdescription>
  397. </parameteritem>
  398. <parameteritem>
  399. <parameternamelist>
  400. <parametername>QueueSize</parametername>
  401. </parameternamelist>
  402. <parameterdescription>
  403. <para>メッセージキューの最大保持件数 (デフォルト: 8)</para>
  404. </parameterdescription>
  405. </parameteritem>
  406. </parameterlist>
  407. <programlisting><codeline><highlight class="keyword">struct<sp/></highlight><highlight class="normal">SensorMsg<sp/>{<sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>temp;<sp/>};</highlight></codeline>
  408. <codeline><highlight class="normal"></highlight></codeline>
  409. <codeline><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">SensorActor<sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/>tk::Actor&lt;SensorMsg,<sp/>8&gt;<sp/>{</highlight></codeline>
  410. <codeline><highlight class="normal"></highlight><highlight class="keyword">protected</highlight><highlight class="normal">:</highlight></codeline>
  411. <codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="classtk_1_1_actor_1afb31ec0d50d1ac97e6a4ce148a96f78d" kindref="member">on_start</ref>()</highlight><highlight class="keyword"><sp/>override<sp/></highlight><highlight class="normal">{</highlight></codeline>
  412. <codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>デバイスの初期化</highlight><highlight class="normal"></highlight></codeline>
  413. <codeline><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
  414. <codeline><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="classtk_1_1_actor_1a1147554d6ddb64d822285ca5a03506a4" kindref="member">on_message</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>SensorMsg&amp;<sp/>msg)</highlight><highlight class="keyword"><sp/>override<sp/></highlight><highlight class="normal">{</highlight></codeline>
  415. <codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>printf(</highlight><highlight class="stringliteral">&quot;Temp:<sp/>%.1f\n&quot;</highlight><highlight class="normal">,<sp/>msg.temp);</highlight></codeline>
  416. <codeline><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
  417. <codeline><highlight class="normal">};</highlight></codeline>
  418. </programlisting> </para>
  419. </detaileddescription>
  420. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="174" column="1" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="174" bodyend="317"/>
  421. <listofallmembers>
  422. <member refid="classtk_1_1_actor_1a776aef8cdcfb4416ef976697eb518ed5" prot="public" virt="non-virtual"><scope>tk::Actor</scope><name>Actor</name></member>
  423. <member refid="classtk_1_1_actor_1ad829bfd39086109fd32fc6ca389d5f92" prot="private" virt="non-virtual"><scope>tk::Actor</scope><name>count_</name></member>
  424. <member refid="classtk_1_1_actor_1aa1f824e793d168aca7af65d1254c97f6" prot="private" virt="non-virtual"><scope>tk::Actor</scope><name>event_loop</name></member>
  425. <member refid="classtk_1_1_actor_1a60a2752360fa7185ec7776f2a6ef766a" prot="public" virt="non-virtual"><scope>tk::Actor</scope><name>handle</name></member>
  426. <member refid="classtk_1_1_actor_1a995adffb1431a4173f7fc892e4fc5efa" prot="private" virt="non-virtual"><scope>tk::Actor</scope><name>handle_</name></member>
  427. <member refid="classtk_1_1_actor_1a25817f7222356d11b2e70264e79a05a3" prot="private" virt="non-virtual"><scope>tk::Actor</scope><name>head_</name></member>
  428. <member refid="classtk_1_1_actor_1a1147554d6ddb64d822285ca5a03506a4" prot="protected" virt="pure-virtual"><scope>tk::Actor</scope><name>on_message</name></member>
  429. <member refid="classtk_1_1_actor_1afb31ec0d50d1ac97e6a4ce148a96f78d" prot="protected" virt="virtual"><scope>tk::Actor</scope><name>on_start</name></member>
  430. <member refid="classtk_1_1_actor_1a224e6be4dca0d1500f2121e97bd0f92d" prot="public" virt="non-virtual"><scope>tk::Actor</scope><name>post</name></member>
  431. <member refid="classtk_1_1_actor_1a863f28d824aaa78c75789166b1c2a010" prot="public" virt="non-virtual"><scope>tk::Actor</scope><name>post</name></member>
  432. <member refid="classtk_1_1_actor_1a5c4f4f2f1b8011a37773617e34218c2d" prot="public" virt="non-virtual"><scope>tk::Actor</scope><name>post</name></member>
  433. <member refid="classtk_1_1_actor_1abf56f692a06334a14197605042b3b786" prot="private" virt="non-virtual"><scope>tk::Actor</scope><name>queue_</name></member>
  434. <member refid="classtk_1_1_actor_1ac98ec3132f2ded910a6899b030c06f3f" prot="public" virt="non-virtual"><scope>tk::Actor</scope><name>start</name></member>
  435. <member refid="classtk_1_1_actor_1a546e611f32ce2e89e9bae88ef2cf1cc6" prot="private" virt="non-virtual"><scope>tk::Actor</scope><name>tail_</name></member>
  436. <member refid="classtk_1_1_actor_1ab733fa2f27a477b08ef42c269ee543a5" prot="private" virt="non-virtual"><scope>tk::Actor</scope><name>task_entry</name></member>
  437. <member refid="classtk_1_1_actor_1a48192d156c2b4c884f5400858ebbbbf8" prot="private" virt="non-virtual"><scope>tk::Actor</scope><name>waiting_</name></member>
  438. <member refid="classtk_1_1_actor_1abfc63a514a3ae7cdbdf9ceee81c3b0fc" prot="public" virt="virtual"><scope>tk::Actor</scope><name>~Actor</name></member>
  439. </listofallmembers>
  440. </compounddef>
  441. </doxygen>