| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
- <head>
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=11"/>
- <meta name="generator" content="Doxygen 1.18.0"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>tinykernel: tk::Actor< MsgType, QueueSize > Class Template Reference</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="codefolding.js"></script>
- <script type="text/javascript" src="clipboard.js"></script>
- <link href="navtree.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="navtreedata.js"></script>
- <script type="text/javascript" src="navtree.js"></script>
- <script type="text/javascript" src="cookie.js"></script>
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="search/searchdata.js"></script>
- <script type="text/javascript" src="search/search.js"></script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectalign">
- <div id="projectname">tinykernel
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.18.0 -->
- <script type="text/javascript">
- let searchBox = new SearchBox("searchBox", "search/",'.html');
- </script>
- <script type="text/javascript">
- document.addEventListener('DOMContentLoaded', codefold.init);
- </script>
- <script type="application/json" id="doxygen-config">
- {
- "relPath": "",
- "generateTreeView": true,
- "searchEngine": true,
- "serverBasedSearch": false,
- "disableIndex": false,
- "dynamicMenus": true,
- "fullSidebar": false
- }
- </script>
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <div id="main-nav-mobile">
- <div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>
- <label class="main-menu-btn" for="main-menu-state">
- <span class="main-menu-btn-icon"></span> Toggle main menu visibility</label>
- <span id="searchBoxPos1"></span>
- </div>
- </div><!-- main-nav-mobile -->
- <div id="main-nav">
- <ul class="sm sm-dox" id="main-menu">
- <li id="searchBoxPos2">
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <span id="MSearchSelect" class="search-icon"><span class="search-icon-dropdown"></span></span>
- <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><div id="MSearchCloseImg" class="close-icon"></div></a>
- </span>
- </div>
- </li>
- </ul>
- </div><!-- main-nav -->
- </div><!-- top -->
- <div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" class="ui-resizable-handle">
- </div>
- </div>
- <script type="text/javascript">
- document.addEventListener('DOMContentLoaded',() => { initNavTree('classtk_1_1_actor.html','','classtk_1_1_actor-members'); });
- </script>
- <div id="container">
- <div id="doc-content">
- <!-- window showing the filter options -->
- <div id="MSearchSelectWindow">
- </div>
- <!-- iframe showing the search results (closed by default) -->
- <div id="MSearchResultsWindow">
- <div id="MSearchResults">
- <div class="SRPage">
- <div id="SRIndex">
- <div id="SRResults"></div>
- <div class="SRStatus" id="Loading">Loading...</div>
- <div class="SRStatus" id="Searching">Searching...</div>
- <div class="SRStatus" id="NoMatches">No Matches</div>
- </div>
- </div>
- </div>
- </div>
- <div class="header">
- <div class="headertitle"><div class="title">tk::Actor< MsgType, QueueSize > Class Template Reference<span class="mlabels"><span class="mlabel abstract">abstract</span></span></div></div>
- </div><!--header-->
- <div class="contents">
- <p>メッセージ駆動型タスク (アクター) の基底クラス
- <a href="#details">More...</a></p>
- <p><code>#include <<a class="el" href="actor_8hpp_source.html">actor.hpp</a>></code></p>
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 id="header-pub-methods" class="groupheader"><a id="pub-methods" name="pub-methods"></a>
- Public Member Functions</h2></td></tr>
- <tr class="memitem:a776aef8cdcfb4416ef976697eb518ed5" id="r_a776aef8cdcfb4416ef976697eb518ed5"><td class="memItemLeft"> </td><td class="memItemRight"><a class="el" href="#a776aef8cdcfb4416ef976697eb518ed5">Actor</a> ()=default</td></tr>
- <tr class="memitem:abfc63a514a3ae7cdbdf9ceee81c3b0fc" id="r_abfc63a514a3ae7cdbdf9ceee81c3b0fc"><td class="memItemLeft">virtual </td><td class="memItemRight"><a class="el" href="#abfc63a514a3ae7cdbdf9ceee81c3b0fc">~Actor</a> ()</td></tr>
- <tr class="memitem:ac98ec3132f2ded910a6899b030c06f3f" id="r_ac98ec3132f2ded910a6899b030c06f3f"><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="#ac98ec3132f2ded910a6899b030c06f3f">start</a> (uint32_t prio=<a class="el" href="namespacetk.html#a3d47fbd63b95ed3b46bed70c2fa1e50ea0e6779023b97999c2cef66ba1d4d1fca">PRIO_NORMAL</a>)</td></tr>
- <tr class="memdesc:ac98ec3132f2ded910a6899b030c06f3f"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classtk_1_1_actor.html" title="メッセージ駆動型タスク (アクター) の基底クラス">Actor</a> をタスクとして生成し、EventHub へ自動登録します <br /></td></tr>
- <tr class="memitem:a224e6be4dca0d1500f2121e97bd0f92d" id="r_a224e6be4dca0d1500f2121e97bd0f92d"><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="#a224e6be4dca0d1500f2121e97bd0f92d">post</a> (const MsgType &msg)</td></tr>
- <tr class="memdesc:a224e6be4dca0d1500f2121e97bd0f92d"><td class="mdescLeft"> </td><td class="mdescRight">この <a class="el" href="classtk_1_1_actor.html" title="メッセージ駆動型タスク (アクター) の基底クラス">Actor</a> のメッセージキューへ直接メッセージを送信します (コピー渡し) <br /></td></tr>
- <tr class="memitem:a863f28d824aaa78c75789166b1c2a010" id="r_a863f28d824aaa78c75789166b1c2a010"><td class="memItemLeft">bool </td><td class="memItemRight"><a class="el" href="#a863f28d824aaa78c75789166b1c2a010">post</a> (MsgType &&msg)</td></tr>
- <tr class="memdesc:a863f28d824aaa78c75789166b1c2a010"><td class="mdescLeft"> </td><td class="mdescRight">この <a class="el" href="classtk_1_1_actor.html" title="メッセージ駆動型タスク (アクター) の基底クラス">Actor</a> のメッセージキューへ直接メッセージを送信します (ムーブ渡し) <br /></td></tr>
- <tr class="memitem:a5c4f4f2f1b8011a37773617e34218c2d" id="r_a5c4f4f2f1b8011a37773617e34218c2d"><td class="memTemplParams" colspan="2">template<typename U = MsgType> </td></tr>
- <tr class="memitem:a5c4f4f2f1b8011a37773617e34218c2d template"><td class="memItemLeft">std::enable_if< std::is_same< U, <a class="el" href="structtk_1_1_message.html">Message</a> >::value, bool >::type </td><td class="memItemRight"><a class="el" href="#a5c4f4f2f1b8011a37773617e34218c2d">post</a> (uint32_t id, uintptr_t arg=0)</td></tr>
- <tr class="memdesc:a5c4f4f2f1b8011a37773617e34218c2d"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structtk_1_1_message.html" title="デフォルトの軽量メッセージ構造体">tk::Message</a> 型の場合のコンビニエンス送信関数 <br /></td></tr>
- <tr class="memitem:a60a2752360fa7185ec7776f2a6ef766a" id="r_a60a2752360fa7185ec7776f2a6ef766a"><td class="memItemLeft"><a class="el" href="structtk_1_1_task_handle.html">TaskHandle</a> </td><td class="memItemRight"><a class="el" href="#a60a2752360fa7185ec7776f2a6ef766a">handle</a> () const</td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 id="header-pro-methods" class="groupheader"><a id="pro-methods" name="pro-methods"></a>
- Protected Member Functions</h2></td></tr>
- <tr class="memitem:afb31ec0d50d1ac97e6a4ce148a96f78d" id="r_afb31ec0d50d1ac97e6a4ce148a96f78d"><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="#afb31ec0d50d1ac97e6a4ce148a96f78d">on_start</a> ()</td></tr>
- <tr class="memdesc:afb31ec0d50d1ac97e6a4ce148a96f78d"><td class="mdescLeft"> </td><td class="mdescRight">タスク起動時、イベントループ突入直前に1度だけ呼ばれる初期化関数 <br /></td></tr>
- <tr class="memitem:a1147554d6ddb64d822285ca5a03506a4" id="r_a1147554d6ddb64d822285ca5a03506a4"><td class="memItemLeft">virtual void </td><td class="memItemRight"><a class="el" href="#a1147554d6ddb64d822285ca5a03506a4">on_message</a> (const MsgType &msg)=0</td></tr>
- <tr class="memdesc:a1147554d6ddb64d822285ca5a03506a4"><td class="mdescLeft"> </td><td class="mdescRight">メッセージ受信時に呼ばれるハンドラ関数 <br /></td></tr>
- </table>
- <a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
- <div class="textblock"><div class="compoundTemplParams">template<typename MsgType = Message, size_t QueueSize = 8><br />
- class tk::Actor< MsgType, QueueSize ></div><p>メッセージ駆動型タスク (アクター) の基底クラス </p>
- <p>固定長リングバッファ付きのメッセージキューを持ち、メッセージ到着時に自動起床して <span class="tt"><a class="el" href="#a1147554d6ddb64d822285ca5a03506a4" title="メッセージ受信時に呼ばれるハンドラ関数">on_message()</a></span> を実行します。メッセージが無い時は CPU を消費せずブロック待機します。</p>
- <dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">MsgType</td><td>受信するメッセージの型 (デフォルト: <a class="el" href="structtk_1_1_message.html" title="デフォルトの軽量メッセージ構造体">tk::Message</a>) </td></tr>
- <tr><td class="paramname">QueueSize</td><td>メッセージキューの最大保持件数 (デフォルト: 8)</td></tr>
- </table>
- </dd>
- </dl>
- <div class="fragment"><div class="line"><span class="keyword">struct </span>SensorMsg { <span class="keywordtype">float</span> temp; };</div>
- <div class="line"> </div>
- <div class="line"><span class="keyword">class </span>SensorActor : <span class="keyword">public</span> <a class="code hl_class" href="classtk_1_1_actor.html">tk::Actor</a><SensorMsg, 8> {</div>
- <div class="line"><span class="keyword">protected</span>:</div>
- <div class="line"> <span class="keywordtype">void</span> <a class="code hl_function" href="#afb31ec0d50d1ac97e6a4ce148a96f78d">on_start</a>()<span class="keyword"> override </span>{</div>
- <div class="line"> <span class="comment">// デバイスの初期化</span></div>
- <div class="line"> }</div>
- <div class="line"> <span class="keywordtype">void</span> <a class="code hl_function" href="#a1147554d6ddb64d822285ca5a03506a4">on_message</a>(<span class="keyword">const</span> SensorMsg& msg)<span class="keyword"> override </span>{</div>
- <div class="line"> printf(<span class="stringliteral">"Temp: %.1f\n"</span>, msg.temp);</div>
- <div class="line"> }</div>
- <div class="line">};</div>
- <div class="ttc" id="aclasstk_1_1_actor_html"><div class="ttname"><a href="classtk_1_1_actor.html">tk::Actor</a></div><div class="ttdoc">メッセージ駆動型タスク (アクター) の基底クラス</div><div class="ttdef"><b>Definition</b> actor.hpp:174</div></div>
- <div class="ttc" id="aclasstk_1_1_actor_html_a1147554d6ddb64d822285ca5a03506a4"><div class="ttname"><a href="#a1147554d6ddb64d822285ca5a03506a4">tk::Actor::on_message</a></div><div class="ttdeci">virtual void on_message(const MsgType &msg)=0</div><div class="ttdoc">メッセージ受信時に呼ばれるハンドラ関数</div></div>
- <div class="ttc" id="aclasstk_1_1_actor_html_afb31ec0d50d1ac97e6a4ce148a96f78d"><div class="ttname"><a href="#afb31ec0d50d1ac97e6a4ce148a96f78d">tk::Actor::on_start</a></div><div class="ttdeci">virtual void on_start()</div><div class="ttdoc">タスク起動時、イベントループ突入直前に1度だけ呼ばれる初期化関数</div><div class="ttdef"><b>Definition</b> actor.hpp:270</div></div>
- </div><!-- fragment --> </div><a name="doc-constructors" id="doc-constructors"></a><h2 id="header-doc-constructors" class="groupheader">Constructor & Destructor Documentation</h2>
- <a id="a776aef8cdcfb4416ef976697eb518ed5" name="a776aef8cdcfb4416ef976697eb518ed5"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a776aef8cdcfb4416ef976697eb518ed5">◆ </a></span>Actor()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<typename MsgType = Message, size_t QueueSize = 8> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="classtk_1_1_actor.html">tk::Actor</a>< MsgType, QueueSize >::Actor </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel default">default</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="abfc63a514a3ae7cdbdf9ceee81c3b0fc" name="abfc63a514a3ae7cdbdf9ceee81c3b0fc"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#abfc63a514a3ae7cdbdf9ceee81c3b0fc">◆ </a></span>~Actor()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<typename MsgType = Message, size_t QueueSize = 8> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="classtk_1_1_actor.html">tk::Actor</a>< MsgType, QueueSize >::~<a class="el" href="#a776aef8cdcfb4416ef976697eb518ed5">Actor</a> </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel virtual">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Member Function Documentation</h2>
- <a id="a60a2752360fa7185ec7776f2a6ef766a" name="a60a2752360fa7185ec7776f2a6ef766a"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a60a2752360fa7185ec7776f2a6ef766a">◆ </a></span>handle()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<typename MsgType = Message, size_t QueueSize = 8> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structtk_1_1_task_handle.html">TaskHandle</a> <a class="el" href="classtk_1_1_actor.html">tk::Actor</a>< MsgType, QueueSize >::handle </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>この <a class="el" href="classtk_1_1_actor.html" title="メッセージ駆動型タスク (アクター) の基底クラス">Actor</a> のタスクハンドルを取得 </p>
- </div>
- </div>
- <a id="a1147554d6ddb64d822285ca5a03506a4" name="a1147554d6ddb64d822285ca5a03506a4"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a1147554d6ddb64d822285ca5a03506a4">◆ </a></span>on_message()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<typename MsgType = Message, size_t QueueSize = 8> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="classtk_1_1_actor.html">tk::Actor</a>< MsgType, QueueSize >::on_message </td>
- <td>(</td>
- <td class="paramtype">const MsgType &</td> <td class="paramname"><span class="paramname"><em>msg</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel protected">protected</span><span class="mlabel pure-virtual">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>メッセージ受信時に呼ばれるハンドラ関数 </p>
- <p>キューから取り出されたメッセージの実体への参照が渡されます。 派生クラスで必ず実装します。</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">msg</td><td>受信したメッセージ </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="afb31ec0d50d1ac97e6a4ce148a96f78d" name="afb31ec0d50d1ac97e6a4ce148a96f78d"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#afb31ec0d50d1ac97e6a4ce148a96f78d">◆ </a></span>on_start()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<typename MsgType = Message, size_t QueueSize = 8> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="classtk_1_1_actor.html">tk::Actor</a>< MsgType, QueueSize >::on_start </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel protected">protected</span><span class="mlabel virtual">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>タスク起動時、イベントループ突入直前に1度だけ呼ばれる初期化関数 </p>
- <p>タスクコンテキスト内で実行されるため、<span class="tt"><a class="el" href="namespacetk.html#aae83f84121085578a7568437a8dc2447" title="現在のタスクを指定時間スリープさせます">tk::sleep_ms()</a></span> を使った初期化ウェイトも安全に行えます。 必要に応じて派生クラスでオーバーライドします。 </p>
- </div>
- </div>
- <a id="a224e6be4dca0d1500f2121e97bd0f92d" name="a224e6be4dca0d1500f2121e97bd0f92d"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a224e6be4dca0d1500f2121e97bd0f92d">◆ </a></span>post() <span class="overload">[1/3]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<typename MsgType = Message, size_t QueueSize = 8> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool <a class="el" href="classtk_1_1_actor.html">tk::Actor</a>< MsgType, QueueSize >::post </td>
- <td>(</td>
- <td class="paramtype">const MsgType &</td> <td class="paramname"><span class="paramname"><em>msg</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>この <a class="el" href="classtk_1_1_actor.html" title="メッセージ駆動型タスク (アクター) の基底クラス">Actor</a> のメッセージキューへ直接メッセージを送信します (コピー渡し) </p>
- <p>スレッドセーフ・割り込みセーフ・マルチコアセーフです。</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">msg</td><td>送信するメッセージ </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>true 送信成功, false キューが満杯 </dd></dl>
- </div>
- </div>
- <a id="a863f28d824aaa78c75789166b1c2a010" name="a863f28d824aaa78c75789166b1c2a010"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a863f28d824aaa78c75789166b1c2a010">◆ </a></span>post() <span class="overload">[2/3]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<typename MsgType = Message, size_t QueueSize = 8> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool <a class="el" href="classtk_1_1_actor.html">tk::Actor</a>< MsgType, QueueSize >::post </td>
- <td>(</td>
- <td class="paramtype">MsgType &&</td> <td class="paramname"><span class="paramname"><em>msg</em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>この <a class="el" href="classtk_1_1_actor.html" title="メッセージ駆動型タスク (アクター) の基底クラス">Actor</a> のメッセージキューへ直接メッセージを送信します (ムーブ渡し) </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">msg</td><td>送信するメッセージ (ムーブ) </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>true 送信成功, false キューが満杯 </dd></dl>
- </div>
- </div>
- <a id="a5c4f4f2f1b8011a37773617e34218c2d" name="a5c4f4f2f1b8011a37773617e34218c2d"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a5c4f4f2f1b8011a37773617e34218c2d">◆ </a></span>post() <span class="overload">[3/3]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<typename MsgType = Message, size_t QueueSize = 8> </div>
- <div class="memtemplate">
- template<typename U = MsgType> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">std::enable_if< std::is_same< U, <a class="el" href="structtk_1_1_message.html">Message</a> >::value, bool >::type <a class="el" href="classtk_1_1_actor.html">tk::Actor</a>< MsgType, QueueSize >::post </td>
- <td>(</td>
- <td class="paramtype">uint32_t</td> <td class="paramname"><span class="paramname"><em>id</em></span>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uintptr_t</td> <td class="paramname"><span class="paramname"><em>arg</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span> )</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p><a class="el" href="structtk_1_1_message.html" title="デフォルトの軽量メッセージ構造体">tk::Message</a> 型の場合のコンビニエンス送信関数 </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">id</td><td>メッセージID </td></tr>
- <tr><td class="paramname">arg</td><td>引数 (省略時: 0) </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>true 送信成功, false キューが満杯 </dd></dl>
- </div>
- </div>
- <a id="ac98ec3132f2ded910a6899b030c06f3f" name="ac98ec3132f2ded910a6899b030c06f3f"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ac98ec3132f2ded910a6899b030c06f3f">◆ </a></span>start()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<typename MsgType = Message, size_t QueueSize = 8> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool <a class="el" href="classtk_1_1_actor.html">tk::Actor</a>< MsgType, QueueSize >::start </td>
- <td>(</td>
- <td class="paramtype">uint32_t</td> <td class="paramname"><span class="paramname"><em>prio</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="namespacetk.html#a3d47fbd63b95ed3b46bed70c2fa1e50ea0e6779023b97999c2cef66ba1d4d1fca">PRIO_NORMAL</a></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p><a class="el" href="classtk_1_1_actor.html" title="メッセージ駆動型タスク (アクター) の基底クラス">Actor</a> をタスクとして生成し、EventHub へ自動登録します </p>
- <p><span class="tt"><a class="el" href="namespacetk.html#a675f1829b87e2a43239b6f80a526d0ed" title="tinykernel スケジューラを起動します">tk::start()</a></span> を呼び出す前に登録する必要があります。</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">prio</td><td>タスク優先度 (省略時: <a class="el" href="namespacetk.html#a3d47fbd63b95ed3b46bed70c2fa1e50ea0e6779023b97999c2cef66ba1d4d1fca" title="通常優先度 (デフォルト)">tk::PRIO_NORMAL</a>) </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>true 登録成功, false 登録失敗 (タスク枠上限など) </dd></dl>
- </div>
- </div>
- <hr/>The documentation for this class was generated from the following file:<ul>
- <li>C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/<a class="el" href="actor_8hpp_source.html">actor.hpp</a></li>
- </ul>
- </div><!-- contents -->
- </div><!-- doc-content -->
- <div id="page-nav" class="page-nav-panel">
- <div id="page-nav-resize-handle"></div>
- <div id="page-nav-tree">
- <div id="page-nav-contents">
- </div><!-- page-nav-contents -->
- </div><!-- page-nav-tree -->
- </div><!-- page-nav -->
- </div><!-- container -->
- <!-- start footer part -->
- <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a href="namespacetk.html">tk</a></li><li class="navelem"><a href="classtk_1_1_actor.html">Actor</a></li>
- <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.18.0 </li>
- </ul>
- </div>
- </body>
- </html>
|