classtk_1_1_event_hub.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  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_event_hub" kind="class" language="C++" prot="public">
  4. <compoundname>tk::EventHub</compoundname>
  5. <includes refid="actor_8hpp" local="no">actor.hpp</includes>
  6. <innerclass refid="structtk_1_1_event_hub_1_1_subscriber" prot="private">tk::EventHub::Subscriber</innerclass>
  7. <templateparamlist>
  8. <param>
  9. <type>typename MsgType</type>
  10. </param>
  11. <param>
  12. <type>size_t</type>
  13. <declname>MaxSubscribers</declname>
  14. <defname>MaxSubscribers</defname>
  15. <defval>4</defval>
  16. </param>
  17. </templateparamlist>
  18. <sectiondef kind="private-static-attrib">
  19. <memberdef kind="variable" id="classtk_1_1_event_hub_1a48a7c13cc13e36ea8440b8729a3f731e" prot="private" static="yes" mutable="no">
  20. <type>Subscriber</type>
  21. <definition>Subscriber tk::EventHub&lt; MsgType, MaxSubscribers &gt;::subs_[MaxSubscribers]</definition>
  22. <argsstring>[MaxSubscribers]</argsstring>
  23. <name>subs_</name>
  24. <qualifiedname>tk::EventHub::subs_</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="35" column="30" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="35" bodyend="35"/>
  33. </memberdef>
  34. <memberdef kind="variable" id="classtk_1_1_event_hub_1a14777e37000a8151f2edec5956ec6993" prot="private" static="yes" mutable="no">
  35. <type>size_t</type>
  36. <definition>size_t tk::EventHub&lt; MsgType, MaxSubscribers &gt;::count_</definition>
  37. <argsstring></argsstring>
  38. <name>count_</name>
  39. <qualifiedname>tk::EventHub::count_</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="36" column="26" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="36" bodyend="36"/>
  48. </memberdef>
  49. </sectiondef>
  50. <sectiondef kind="public-static-func">
  51. <memberdef kind="function" id="classtk_1_1_event_hub_1a50ebe29eaa2657604a1c85bf5125d490" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
  52. <type>bool</type>
  53. <definition>static bool tk::EventHub&lt; MsgType, MaxSubscribers &gt;::subscribe</definition>
  54. <argsstring>(void *actor, bool(*post_fn)(void *, const MsgType &amp;))</argsstring>
  55. <name>subscribe</name>
  56. <qualifiedname>tk::EventHub::subscribe</qualifiedname>
  57. <param>
  58. <type>void *</type>
  59. <declname>actor</declname>
  60. </param>
  61. <param>
  62. <type>bool(*)(void *, const MsgType &amp;)</type>
  63. <declname>post_fn</declname>
  64. </param>
  65. <briefdescription>
  66. <para><ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> をこのメッセージ型の購読者として登録します </para>
  67. </briefdescription>
  68. <detaileddescription>
  69. <para><parameterlist kind="param"><parameteritem>
  70. <parameternamelist>
  71. <parametername>actor</parametername>
  72. </parameternamelist>
  73. <parameterdescription>
  74. <para><ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> インスタンスポインタ </para>
  75. </parameterdescription>
  76. </parameteritem>
  77. <parameteritem>
  78. <parameternamelist>
  79. <parametername>post_fn</parametername>
  80. </parameternamelist>
  81. <parameterdescription>
  82. <para>メッセージ投入関数ポインタ </para>
  83. </parameterdescription>
  84. </parameteritem>
  85. </parameterlist>
  86. <simplesect kind="return"><para>true 登録成功, false 購読者上限に達した </para>
  87. </simplesect>
  88. </para>
  89. </detaileddescription>
  90. <inbodydescription>
  91. </inbodydescription>
  92. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="45" column="17" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="45" bodyend="60"/>
  93. </memberdef>
  94. <memberdef kind="function" id="classtk_1_1_event_hub_1a09c779ce8c594ea44c831adfd7e287f8" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
  95. <type>bool</type>
  96. <definition>static bool tk::EventHub&lt; MsgType, MaxSubscribers &gt;::unsubscribe</definition>
  97. <argsstring>(void *actor)</argsstring>
  98. <name>unsubscribe</name>
  99. <qualifiedname>tk::EventHub::unsubscribe</qualifiedname>
  100. <param>
  101. <type>void *</type>
  102. <declname>actor</declname>
  103. </param>
  104. <briefdescription>
  105. <para><ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> の購読登録を解除します </para>
  106. </briefdescription>
  107. <detaileddescription>
  108. <para><parameterlist kind="param"><parameteritem>
  109. <parameternamelist>
  110. <parametername>actor</parametername>
  111. </parameternamelist>
  112. <parameterdescription>
  113. <para>解除する <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> インスタンスポインタ </para>
  114. </parameterdescription>
  115. </parameteritem>
  116. </parameterlist>
  117. <simplesect kind="return"><para>true 解除成功, false 未登録 </para>
  118. </simplesect>
  119. </para>
  120. </detaileddescription>
  121. <inbodydescription>
  122. </inbodydescription>
  123. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="67" column="17" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="67" bodyend="81"/>
  124. </memberdef>
  125. <memberdef kind="function" id="classtk_1_1_event_hub_1a3a59a641ad3fe121c0da7e1c81dc300b" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
  126. <type>size_t</type>
  127. <definition>static size_t tk::EventHub&lt; MsgType, MaxSubscribers &gt;::publish</definition>
  128. <argsstring>(const MsgType &amp;msg)</argsstring>
  129. <name>publish</name>
  130. <qualifiedname>tk::EventHub::publish</qualifiedname>
  131. <param>
  132. <type>const MsgType &amp;</type>
  133. <declname>msg</declname>
  134. </param>
  135. <briefdescription>
  136. <para>このメッセージ型を購読しているすべての <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> へ同報配信します </para>
  137. </briefdescription>
  138. <detaileddescription>
  139. <para><parameterlist kind="param"><parameteritem>
  140. <parameternamelist>
  141. <parametername>msg</parametername>
  142. </parameternamelist>
  143. <parameterdescription>
  144. <para>配信するメッセージ実体 (各 <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> のキューへ値コピー) </para>
  145. </parameterdescription>
  146. </parameteritem>
  147. </parameterlist>
  148. <simplesect kind="return"><para>size_t 配信に成功した <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> の数 </para>
  149. </simplesect>
  150. </para>
  151. </detaileddescription>
  152. <inbodydescription>
  153. </inbodydescription>
  154. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="89" column="19" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="89" bodyend="108"/>
  155. </memberdef>
  156. <memberdef kind="function" id="classtk_1_1_event_hub_1ac4cd6ce4e37b74385c7f4352a5516930" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
  157. <type>size_t</type>
  158. <definition>static size_t tk::EventHub&lt; MsgType, MaxSubscribers &gt;::subscriber_count</definition>
  159. <argsstring>()</argsstring>
  160. <name>subscriber_count</name>
  161. <qualifiedname>tk::EventHub::subscriber_count</qualifiedname>
  162. <briefdescription>
  163. </briefdescription>
  164. <detaileddescription>
  165. <para>現在の購読者数を取得 </para>
  166. </detaileddescription>
  167. <inbodydescription>
  168. </inbodydescription>
  169. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="111" column="19" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="111" bodyend="116"/>
  170. </memberdef>
  171. </sectiondef>
  172. <briefdescription>
  173. <para>メッセージ型ごとの超軽量 Pub/Sub ディスパッチャ </para>
  174. </briefdescription>
  175. <detaileddescription>
  176. <para>テンプレート引数 <computeroutput>MsgType</computeroutput> ごとにコンパイル時解決される静的レジストリです。 実行時の型検索オーバーヘッドゼロ、動的メモリ確保ゼロで動作します。</para>
  177. <para><parameterlist kind="templateparam"><parameteritem>
  178. <parameternamelist>
  179. <parametername>MsgType</parametername>
  180. </parameternamelist>
  181. <parameterdescription>
  182. <para>配信するメッセージの型 </para>
  183. </parameterdescription>
  184. </parameteritem>
  185. <parameteritem>
  186. <parameternamelist>
  187. <parametername>MaxSubscribers</parametername>
  188. </parameternamelist>
  189. <parameterdescription>
  190. <para>同一メッセージ型を購読できる最大 <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> 数 (デフォルト: 4) </para>
  191. </parameterdescription>
  192. </parameteritem>
  193. </parameterlist>
  194. </para>
  195. </detaileddescription>
  196. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="29" column="1" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="29" bodyend="117"/>
  197. <listofallmembers>
  198. <member refid="classtk_1_1_event_hub_1a14777e37000a8151f2edec5956ec6993" prot="private" virt="non-virtual"><scope>tk::EventHub</scope><name>count_</name></member>
  199. <member refid="classtk_1_1_event_hub_1a3a59a641ad3fe121c0da7e1c81dc300b" prot="public" virt="non-virtual"><scope>tk::EventHub</scope><name>publish</name></member>
  200. <member refid="classtk_1_1_event_hub_1a48a7c13cc13e36ea8440b8729a3f731e" prot="private" virt="non-virtual"><scope>tk::EventHub</scope><name>subs_</name></member>
  201. <member refid="classtk_1_1_event_hub_1a50ebe29eaa2657604a1c85bf5125d490" prot="public" virt="non-virtual"><scope>tk::EventHub</scope><name>subscribe</name></member>
  202. <member refid="classtk_1_1_event_hub_1ac4cd6ce4e37b74385c7f4352a5516930" prot="public" virt="non-virtual"><scope>tk::EventHub</scope><name>subscriber_count</name></member>
  203. <member refid="classtk_1_1_event_hub_1a09c779ce8c594ea44c831adfd7e287f8" prot="public" virt="non-virtual"><scope>tk::EventHub</scope><name>unsubscribe</name></member>
  204. </listofallmembers>
  205. </compounddef>
  206. </doxygen>