⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classctask.html

📁 采用 ACE 开发的 radius 应用
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>ace-radius: CTask Class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.7-20040704 --><div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div><h1>CTask Class Reference</h1>Implementation of generic task that supports messages and timers.  <a href="#_details">More...</a><p><code>#include &lt;<a class="el" href="CTask_8h-source.html">CTask.h</a>&gt;</code><p><p>Inheritance diagram for CTask:<p><center><img src="classCTask.png" usemap="#CTask_map" border="0" alt=""></center><map name="CTask_map"><area href="classCRadiusClientConnection.html" alt="CRadiusClientConnection" shape="rect" coords="0,56,155,80"></map><a href="classCTask-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCTask.html#a0">CTask</a> (int p_maxTimers=0, ACE_Allocator *p_allocator=NULL)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor.  <a href="#a0"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a1" doxytag="CTask::~CTask" ></a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCTask.html#a1">~CTask</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCTask.html#a2">start</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start task callback.  <a href="#a2"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCTask.html#a3">handleMessage</a> (ACE_Message_Block *p_msg)=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Message handler.  <a href="#a3"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCTask.html#a4">handleTimeout</a> (<a class="el" href="classCTimer.html">CTimer</a> *p_timer)=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Timeout handler.  <a href="#a4"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCTask.html#a5">svcHandler</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">task-specific svc handler  <a href="#a5"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>ACE_Message_Block *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCTask.html#a6">seizeMb</a> (int p_length)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Seize message block.  <a href="#a6"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCTask.html#a7">startTimer</a> (<a class="el" href="classCTimer.html">CTimer</a> *p_timer)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start timer.  <a href="#a7"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCTask.html#a8">stopTimer</a> (<a class="el" href="classCTimer.html">CTimer</a> *p_timer)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop timer.  <a href="#a8"></a><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a9" doxytag="CTask::abort" ></a>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classCTask.html#a9">abort</a> (void)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Abort task. <br></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>Implementation of generic task that supports messages and timers. <p>CTask extends ACE_Task class by providing timers support.<p>Timers are managed either by ACE_Timer_Heap (more suitable for real-time applications, but requires preprovisioning of max number of timers) or by ACE_Timer_List (slower but does not require any preprovisioning).<p>Both messages and timers dispatching is performed in a single thread. The dispatching algorithm is much simpler than the one provided by ACE_Reactor, however in this specific case it is both much faster and easier to track. <p><hr><h2>Constructor &amp; Destructor Documentation</h2><a class="anchor" name="a0" doxytag="CTask::CTask" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> CTask::CTask           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">int&nbsp;</td>          <td class="mdname" nowrap> <em>p_maxTimers</em> = <code>0</code>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td></td>          <td class="md" nowrap>ACE_Allocator *&nbsp;</td>          <td class="mdname" nowrap> <em>p_allocator</em> = <code>NULL</code></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Default constructor. <p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td><tt>[in]</tt>&nbsp;</td><td valign=top><em>p_maxTimers</em>&nbsp;</td><td>- max number of timers; when equals 0 ACE_Timer_List will be used for managing timers; otherwise ACE_Timer_Heap (more efficient structure) will be used </td></tr>    <tr><td><tt>[in]</tt>&nbsp;</td><td valign=top><em>p_allocator</em>&nbsp;</td><td>- allocator to be used for ACE_Message_Block allocation </td></tr>  </table></dl>    </td>  </tr></table><hr><h2>Member Function Documentation</h2><a class="anchor" name="a3" doxytag="CTask::handleMessage" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> virtual int CTask::handleMessage           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">ACE_Message_Block *&nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>p_msg</em>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap><code> [pure virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Message handler. <p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td><tt>[in]</tt>&nbsp;</td><td valign=top><em>p_msg</em>&nbsp;</td><td>- incoming message </td></tr>  </table></dl><dl compact><dt><b>Returns:</b></dt><dd>RC_SUCCESS if message was properly handled and should be released; RC_FAIL if message should not be released (application takes responsibility on message release in this case) </dd></dl><p>Implemented in <a class="el" href="classCRadiusClientConnection.html#a3">CRadiusClientConnection</a>.<p>    </td>  </tr></table><a class="anchor" name="a4" doxytag="CTask::handleTimeout" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> virtual int CTask::handleTimeout           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="classCTimer.html">CTimer</a> *&nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>p_timer</em>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap><code> [pure virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Timeout handler. <p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td><tt>[in]</tt>&nbsp;</td><td valign=top><em>p_timer</em>&nbsp;</td><td>- expired timer </td></tr>  </table></dl><dl compact><dt><b>Returns:</b></dt><dd>RC_SUCCESS if timeout was properly handled; RC_FAIL otherwise </dd></dl><p>Implemented in <a class="el" href="classCRadiusClientConnection.html#a4">CRadiusClientConnection</a>.<p>    </td>  </tr>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -