1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> 3<title>oscl_socket_stats.h Source File</title> 4<link href="doxygen.css" rel="stylesheet" type="text/css"> 5</head><body> 6<!-- Generated by Doxygen 1.2.18 --> 7<center> 8<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> 9<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 1000002 1100003 <span class="preprocessor">#ifndef OSCL_SOCKET_STATS_H_INCLUDED</span> 1200004 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_SOCKET_STATS_H_INCLUDED</span> 1300005 <span class="preprocessor"></span> 1400009 <span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span> 1500010 <span class="preprocessor">#include "<a class="code" href="oscl__vector_8h.html">oscl_vector.h</a>"</span> 1600011 <span class="preprocessor">#include "<a class="code" href="oscl__mem_8h.html">oscl_mem.h</a>"</span> 1700012 <span class="preprocessor">#include "<a class="code" href="oscl__mutex_8h.html">oscl_mutex.h</a>"</span> 1800013 19<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> 2000015 { 2100016 <span class="comment">//Request/Method AO events</span> 2200017 <a class="code" href="oscl__socket__stats_8h.html#a23a2">EOsclSocket_RequestAO_Success</a> 2300018 , <a class="code" href="oscl__socket__stats_8h.html#a23a3">EOsclSocket_RequestAO_Canceled</a> 2400019 , <a class="code" href="oscl__socket__stats_8h.html#a23a4">EOsclSocket_RequestAO_Error</a> 2500020 , <a class="code" href="oscl__socket__stats_8h.html#a23a5">EOsclSocket_RequestAO_Timeout</a> 2600021 <span class="comment">//Server events</span> 2700022 , <a class="code" href="oscl__socket__stats_8h.html#a23a6">EOsclSocket_ServRequestIssued</a> 2800023 , <a class="code" href="oscl__socket__stats_8h.html#a23a7">EOsclSocket_ServPoll</a> 2900024 , <a class="code" href="oscl__socket__stats_8h.html#a23a8">EOsclSocket_OS</a> 3000025 , <a class="code" href="oscl__socket__stats_8h.html#a23a9">EOsclSocket_Readable</a> 3100026 , <a class="code" href="oscl__socket__stats_8h.html#a23a10">EOsclSocket_Writable</a> 3200027 , <a class="code" href="oscl__socket__stats_8h.html#a23a11">EOsclSocket_Except</a> 3300028 , <a class="code" href="oscl__socket__stats_8h.html#a23a12">EOsclSocket_DataRecv</a> 3400029 , <a class="code" href="oscl__socket__stats_8h.html#a23a13">EOsclSocket_DataSent</a> 3500030 , <a class="code" href="oscl__socket__stats_8h.html#a23a14">EOsclSocket_ServRequestComplete</a> 3600031 , <a class="code" href="oscl__socket__stats_8h.html#a23a15">EOsclSocket_ServRequestCancelIssued</a> 3700032 <span class="comment">//loop socket events</span> 3800033 , <a class="code" href="oscl__socket__stats_8h.html#a23a16">EOsclSocketServ_LoopsockOk</a> 3900034 , <a class="code" href="oscl__socket__stats_8h.html#a23a17">EOsclSocketServ_LoopsockError</a> 4000035 }; 4100036 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> TPVSocketStatStr[] = 4200037 { 4300038 <span class="comment">//Request/Method AO events</span> 4400039 <span class="stringliteral">"AO_Success"</span> 4500040 , <span class="stringliteral">"AO_Canceled"</span> 4600041 , <span class="stringliteral">"AO_Error"</span> 4700042 , <span class="stringliteral">"AO_Timeout"</span> 4800043 <span class="comment">//Server events</span> 4900044 , <span class="stringliteral">"Serv_ReqIssued"</span> 5000045 , <span class="stringliteral">"Serv_Poll"</span> 5100046 , <span class="stringliteral">"Serv_OS_Op"</span> 5200047 , <span class="stringliteral">"Serv_Readable"</span> 5300048 , <span class="stringliteral">"Serv_Writeable"</span> 5400049 , <span class="stringliteral">"Serv_Except!"</span> 5500050 , <span class="stringliteral">"Serv_DataRecv'd"</span> 5600051 , <span class="stringliteral">"Serv_DataSent"</span> 5700052 , <span class="stringliteral">"Serv_ReqComplete"</span> 5800053 , <span class="stringliteral">"Serv_ReqCancel"</span> 5900054 <span class="comment">//loop socket events</span> 6000055 , <span class="stringliteral">"Loopsock_OK"</span> 6100056 , <span class="stringliteral">"Loopsock_Err"</span> 6200057 } ; 6300058 64<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> 6500060 { 6600061 <span class="comment">//select loop events</span> 6700062 <a class="code" href="oscl__socket__stats_8h.html#a24a18">EOsclSocketServ_SelectNoActivity</a> = 0 6800063 , <a class="code" href="oscl__socket__stats_8h.html#a24a19">EOsclSocketServ_SelectActivity</a> 6900064 , <a class="code" href="oscl__socket__stats_8h.html#a24a20">EOsclSocketServ_SelectRescheduleAsap</a> 7000065 , <a class="code" href="oscl__socket__stats_8h.html#a24a21">EOsclSocketServ_SelectReschedulePoll</a> 7100066 , <a class="code" href="oscl__socket__stats_8h.html#a24a22">EOsclSocketServ_LastEvent</a> 7200067 }; 7300068 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> TPVSocketServStatStr[] = 7400069 { 7500070 <span class="stringliteral">"Select_No"</span> 7600071 , <span class="stringliteral">"Select_Yes"</span> 7700072 , <span class="stringliteral">"Select_Resched_Asap"</span> 7800073 , <span class="stringliteral">"Select_Resched_Poll"</span> 7900074 } ; 8000075 8100076 <span class="preprocessor">#include "<a class="code" href="oscl__socket__tuneables_8h.html">oscl_socket_tuneables.h</a>"</span> 8200077 <span class="preprocessor">#if(PV_OSCL_SOCKET_STATS_LOGGING)</span> 8300078 <span class="preprocessor"></span> 8400079 <span class="keyword">class </span><a class="code" href="classPVLogger.html">PVLogger</a>; 8500080 <span class="keyword">class </span>OsclSocketStatEventEntry 8600081 { 8700082 <span class="keyword">public</span>: 8800083 OsclSocketStatEventEntry(<a class="code" href="oscl__socket__stats_8h.html#a23">TOsclSocketStatEvent</a> aEvent, uint32 aTime, int32 aParam) 8900084 : iEvent(aEvent) 9000085 , iTicks(aTime) 9100086 , iParam(aParam) 9200087 {} 9300088 <a class="code" href="oscl__socket__stats_8h.html#a23">TOsclSocketStatEvent</a> iEvent; 9400089 uint32 iTicks; 9500090 int32 iParam; 9600091 }; 9700092 9800093 <span class="preprocessor">#include "<a class="code" href="oscl__socket__types_8h.html">oscl_socket_types.h</a>"</span> 9900094 10000095 <span class="preprocessor">#define OsclSocketStats_NUM_ACTIVE_REQUESTS EPVSocket_Last</span> 10100096 <span class="preprocessor"></span> 10200097 <span class="comment">//Define the maximum number of polling events that will be logged.</span> 10300098 <span class="comment">//Additional poll events will be counted but not logged individually.</span> 10400099 <span class="preprocessor">#define OsclSocketStats_MAX_POLL_EVENTS 100</span> 10500100 <span class="preprocessor"></span> 10600101 <span class="keyword">class </span>OsclSocketStats 10700102 { 10800103 <span class="keyword">public</span>: 10900104 OsclSocketStats(); 11000105 ~OsclSocketStats(); 11100106 <span class="keywordtype">void</span> ShowTuneables(); 11200107 <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)); 11300108 <span class="keywordtype">void</span> Log(<a class="code" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a>); 11400109 <span class="keywordtype">void</span> Log(); 11500110 <span class="keywordtype">void</span> Clear(<a class="code" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a>); 11600111 <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); 11700112 <span class="keywordtype">void</span> LogAndDump(); 11800113 <span class="keyword">private</span>: 11900114 <a class="code" href="classOscl__Vector.html">Oscl_Vector<OsclSocketStatEventEntry, OsclMemAllocator></a> iEvents[OsclSocketStats_NUM_ACTIVE_REQUESTS]; 12000115 <a class="code" href="classOscl__Vector.html">Oscl_Vector<OsclSocketStatEventEntry, OsclMemAllocator></a> iPollEvents[OsclSocketStats_NUM_ACTIVE_REQUESTS]; 12100116 int32 iExcessPollEvents[OsclSocketStats_NUM_ACTIVE_REQUESTS]; 12200117 int32 iLastCompletionTime[OsclSocketStats_NUM_ACTIVE_REQUESTS]; 12300118 <a class="code" href="classOsclThreadLock.html">OsclThreadLock</a> iLock; 12400119 <span class="keywordtype">char</span>* iLogStr; 12500120 <a class="code" href="classPVLogger.html">PVLogger</a>* iLogger; 12600121 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* iSock; 12700122 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* iServ; 12800123 }; 12900124 13000125 <span class="keyword">class </span>OsclSocketServStats 13100126 { 13200127 <span class="keyword">public</span>: 13300128 OsclSocketServStats(); 13400129 ~OsclSocketServStats(); 13500130 <span class="keywordtype">void</span> Add(<a class="code" href="oscl__socket__stats_8h.html#a24">TOsclSocketServStatEvent</a>); 13600131 <span class="keywordtype">void</span> Construct(<a class="code" href="group__osclbase.html#a25">OsclAny</a>*aServ); 13700132 <span class="keywordtype">void</span> LogAndDump(); 13800133 <span class="keyword">private</span>: 13900134 <span class="keywordtype">void</span> Log(<a class="code" href="oscl__socket__stats_8h.html#a24">TOsclSocketServStatEvent</a>); 14000135 <span class="keywordtype">void</span> Clear(); 14100136 <span class="keywordtype">void</span> ShowTuneables(); 14200137 uint32 iEvents[<a class="code" href="oscl__socket__stats_8h.html#a24a22">EOsclSocketServ_LastEvent</a>]; 14300138 <a class="code" href="classPVLogger.html">PVLogger</a>* iLogger; 14400139 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* iServ; 14500140 }; 14600141 14700142 <span class="preprocessor">#endif</span> 14800143 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 14900144 <span class="preprocessor"></span> 15000145 15100146 152</pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small> 153<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small> 154</small></address> 155</body> 156</html> 157