| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> |
| <title>oscl_socket_stats.h Source File</title> |
| <link href="doxygen.css" rel="stylesheet" type="text/css"> |
| </head><body> |
| <!-- Generated by Doxygen 1.2.18 --> |
| <center> |
| <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> </center> |
| <hr><h1>oscl_socket_stats.h</h1><a href="oscl__socket__stats_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 |
| 00002 |
| 00003 <span class="preprocessor">#ifndef OSCL_SOCKET_STATS_H_INCLUDED</span> |
| 00004 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_SOCKET_STATS_H_INCLUDED</span> |
| 00005 <span class="preprocessor"></span> |
| 00009 <span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span> |
| 00010 <span class="preprocessor">#include "<a class="code" href="oscl__vector_8h.html">oscl_vector.h</a>"</span> |
| 00011 <span class="preprocessor">#include "<a class="code" href="oscl__mem_8h.html">oscl_mem.h</a>"</span> |
| 00012 <span class="preprocessor">#include "<a class="code" href="oscl__mutex_8h.html">oscl_mutex.h</a>"</span> |
| 00013 |
| <a name="l00014"></a><a class="code" href="oscl__socket__stats_8h.html#a23">00014</a> <span class="keyword">enum</span> <a class="code" href="oscl__socket__stats_8h.html#a23">TOsclSocketStatEvent</a> |
| 00015 { |
| 00016 <span class="comment">//Request/Method AO events</span> |
| 00017 <a class="code" href="oscl__socket__stats_8h.html#a23a2">EOsclSocket_RequestAO_Success</a> |
| 00018 , <a class="code" href="oscl__socket__stats_8h.html#a23a3">EOsclSocket_RequestAO_Canceled</a> |
| 00019 , <a class="code" href="oscl__socket__stats_8h.html#a23a4">EOsclSocket_RequestAO_Error</a> |
| 00020 , <a class="code" href="oscl__socket__stats_8h.html#a23a5">EOsclSocket_RequestAO_Timeout</a> |
| 00021 <span class="comment">//Server events</span> |
| 00022 , <a class="code" href="oscl__socket__stats_8h.html#a23a6">EOsclSocket_ServRequestIssued</a> |
| 00023 , <a class="code" href="oscl__socket__stats_8h.html#a23a7">EOsclSocket_ServPoll</a> |
| 00024 , <a class="code" href="oscl__socket__stats_8h.html#a23a8">EOsclSocket_OS</a> |
| 00025 , <a class="code" href="oscl__socket__stats_8h.html#a23a9">EOsclSocket_Readable</a> |
| 00026 , <a class="code" href="oscl__socket__stats_8h.html#a23a10">EOsclSocket_Writable</a> |
| 00027 , <a class="code" href="oscl__socket__stats_8h.html#a23a11">EOsclSocket_Except</a> |
| 00028 , <a class="code" href="oscl__socket__stats_8h.html#a23a12">EOsclSocket_DataRecv</a> |
| 00029 , <a class="code" href="oscl__socket__stats_8h.html#a23a13">EOsclSocket_DataSent</a> |
| 00030 , <a class="code" href="oscl__socket__stats_8h.html#a23a14">EOsclSocket_ServRequestComplete</a> |
| 00031 , <a class="code" href="oscl__socket__stats_8h.html#a23a15">EOsclSocket_ServRequestCancelIssued</a> |
| 00032 <span class="comment">//loop socket events</span> |
| 00033 , <a class="code" href="oscl__socket__stats_8h.html#a23a16">EOsclSocketServ_LoopsockOk</a> |
| 00034 , <a class="code" href="oscl__socket__stats_8h.html#a23a17">EOsclSocketServ_LoopsockError</a> |
| 00035 }; |
| 00036 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> TPVSocketStatStr[] = |
| 00037 { |
| 00038 <span class="comment">//Request/Method AO events</span> |
| 00039 <span class="stringliteral">"AO_Success"</span> |
| 00040 , <span class="stringliteral">"AO_Canceled"</span> |
| 00041 , <span class="stringliteral">"AO_Error"</span> |
| 00042 , <span class="stringliteral">"AO_Timeout"</span> |
| 00043 <span class="comment">//Server events</span> |
| 00044 , <span class="stringliteral">"Serv_ReqIssued"</span> |
| 00045 , <span class="stringliteral">"Serv_Poll"</span> |
| 00046 , <span class="stringliteral">"Serv_OS_Op"</span> |
| 00047 , <span class="stringliteral">"Serv_Readable"</span> |
| 00048 , <span class="stringliteral">"Serv_Writeable"</span> |
| 00049 , <span class="stringliteral">"Serv_Except!"</span> |
| 00050 , <span class="stringliteral">"Serv_DataRecv'd"</span> |
| 00051 , <span class="stringliteral">"Serv_DataSent"</span> |
| 00052 , <span class="stringliteral">"Serv_ReqComplete"</span> |
| 00053 , <span class="stringliteral">"Serv_ReqCancel"</span> |
| 00054 <span class="comment">//loop socket events</span> |
| 00055 , <span class="stringliteral">"Loopsock_OK"</span> |
| 00056 , <span class="stringliteral">"Loopsock_Err"</span> |
| 00057 } ; |
| 00058 |
| <a name="l00059"></a><a class="code" href="oscl__socket__stats_8h.html#a24">00059</a> <span class="keyword">enum</span> <a class="code" href="oscl__socket__stats_8h.html#a24">TOsclSocketServStatEvent</a> |
| 00060 { |
| 00061 <span class="comment">//select loop events</span> |
| 00062 <a class="code" href="oscl__socket__stats_8h.html#a24a18">EOsclSocketServ_SelectNoActivity</a> = 0 |
| 00063 , <a class="code" href="oscl__socket__stats_8h.html#a24a19">EOsclSocketServ_SelectActivity</a> |
| 00064 , <a class="code" href="oscl__socket__stats_8h.html#a24a20">EOsclSocketServ_SelectRescheduleAsap</a> |
| 00065 , <a class="code" href="oscl__socket__stats_8h.html#a24a21">EOsclSocketServ_SelectReschedulePoll</a> |
| 00066 , <a class="code" href="oscl__socket__stats_8h.html#a24a22">EOsclSocketServ_LastEvent</a> |
| 00067 }; |
| 00068 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> TPVSocketServStatStr[] = |
| 00069 { |
| 00070 <span class="stringliteral">"Select_No"</span> |
| 00071 , <span class="stringliteral">"Select_Yes"</span> |
| 00072 , <span class="stringliteral">"Select_Resched_Asap"</span> |
| 00073 , <span class="stringliteral">"Select_Resched_Poll"</span> |
| 00074 } ; |
| 00075 |
| 00076 <span class="preprocessor">#include "<a class="code" href="oscl__socket__tuneables_8h.html">oscl_socket_tuneables.h</a>"</span> |
| 00077 <span class="preprocessor">#if(PV_OSCL_SOCKET_STATS_LOGGING)</span> |
| 00078 <span class="preprocessor"></span> |
| 00079 <span class="keyword">class </span><a class="code" href="classPVLogger.html">PVLogger</a>; |
| 00080 <span class="keyword">class </span>OsclSocketStatEventEntry |
| 00081 { |
| 00082 <span class="keyword">public</span>: |
| 00083 OsclSocketStatEventEntry(<a class="code" href="oscl__socket__stats_8h.html#a23">TOsclSocketStatEvent</a> aEvent, uint32 aTime, int32 aParam) |
| 00084 : iEvent(aEvent) |
| 00085 , iTicks(aTime) |
| 00086 , iParam(aParam) |
| 00087 {} |
| 00088 <a class="code" href="oscl__socket__stats_8h.html#a23">TOsclSocketStatEvent</a> iEvent; |
| 00089 uint32 iTicks; |
| 00090 int32 iParam; |
| 00091 }; |
| 00092 |
| 00093 <span class="preprocessor">#include "<a class="code" href="oscl__socket__types_8h.html">oscl_socket_types.h</a>"</span> |
| 00094 |
| 00095 <span class="preprocessor">#define OsclSocketStats_NUM_ACTIVE_REQUESTS EPVSocket_Last</span> |
| 00096 <span class="preprocessor"></span> |
| 00097 <span class="comment">//Define the maximum number of polling events that will be logged.</span> |
| 00098 <span class="comment">//Additional poll events will be counted but not logged individually.</span> |
| 00099 <span class="preprocessor">#define OsclSocketStats_MAX_POLL_EVENTS 100</span> |
| 00100 <span class="preprocessor"></span> |
| 00101 <span class="keyword">class </span>OsclSocketStats |
| 00102 { |
| 00103 <span class="keyword">public</span>: |
| 00104 OsclSocketStats(); |
| 00105 ~OsclSocketStats(); |
| 00106 <span class="keywordtype">void</span> ShowTuneables(); |
| 00107 <span class="keywordtype">void</span> Add(<a class="code" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a>, <a class="code" href="oscl__socket__stats_8h.html#a23">TOsclSocketStatEvent</a>, int32 aParam = (-1)); |
| 00108 <span class="keywordtype">void</span> Log(<a class="code" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a>); |
| 00109 <span class="keywordtype">void</span> Log(); |
| 00110 <span class="keywordtype">void</span> Clear(<a class="code" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a>); |
| 00111 <span class="keywordtype">void</span> Construct(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* aContainer, <a class="code" href="group__osclbase.html#a25">OsclAny</a>*aServ); |
| 00112 <span class="keywordtype">void</span> LogAndDump(); |
| 00113 <span class="keyword">private</span>: |
| 00114 <a class="code" href="classOscl__Vector.html">Oscl_Vector<OsclSocketStatEventEntry, OsclMemAllocator></a> iEvents[OsclSocketStats_NUM_ACTIVE_REQUESTS]; |
| 00115 <a class="code" href="classOscl__Vector.html">Oscl_Vector<OsclSocketStatEventEntry, OsclMemAllocator></a> iPollEvents[OsclSocketStats_NUM_ACTIVE_REQUESTS]; |
| 00116 int32 iExcessPollEvents[OsclSocketStats_NUM_ACTIVE_REQUESTS]; |
| 00117 int32 iLastCompletionTime[OsclSocketStats_NUM_ACTIVE_REQUESTS]; |
| 00118 <a class="code" href="classOsclThreadLock.html">OsclThreadLock</a> iLock; |
| 00119 <span class="keywordtype">char</span>* iLogStr; |
| 00120 <a class="code" href="classPVLogger.html">PVLogger</a>* iLogger; |
| 00121 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* iSock; |
| 00122 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* iServ; |
| 00123 }; |
| 00124 |
| 00125 <span class="keyword">class </span>OsclSocketServStats |
| 00126 { |
| 00127 <span class="keyword">public</span>: |
| 00128 OsclSocketServStats(); |
| 00129 ~OsclSocketServStats(); |
| 00130 <span class="keywordtype">void</span> Add(<a class="code" href="oscl__socket__stats_8h.html#a24">TOsclSocketServStatEvent</a>); |
| 00131 <span class="keywordtype">void</span> Construct(<a class="code" href="group__osclbase.html#a25">OsclAny</a>*aServ); |
| 00132 <span class="keywordtype">void</span> LogAndDump(); |
| 00133 <span class="keyword">private</span>: |
| 00134 <span class="keywordtype">void</span> Log(<a class="code" href="oscl__socket__stats_8h.html#a24">TOsclSocketServStatEvent</a>); |
| 00135 <span class="keywordtype">void</span> Clear(); |
| 00136 <span class="keywordtype">void</span> ShowTuneables(); |
| 00137 uint32 iEvents[<a class="code" href="oscl__socket__stats_8h.html#a24a22">EOsclSocketServ_LastEvent</a>]; |
| 00138 <a class="code" href="classPVLogger.html">PVLogger</a>* iLogger; |
| 00139 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* iServ; |
| 00140 }; |
| 00141 |
| 00142 <span class="preprocessor">#endif</span> |
| 00143 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00144 <span class="preprocessor"></span> |
| 00145 |
| 00146 |
| </pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small> |
| <address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small> |
| </small></address> |
| </body> |
| </html> |