• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </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&lt;OsclSocketStatEventEntry, OsclMemAllocator&gt;</a> iEvents[OsclSocketStats_NUM_ACTIVE_REQUESTS];
12000115         <a class="code" href="classOscl__Vector.html">Oscl_Vector&lt;OsclSocketStatEventEntry, OsclMemAllocator&gt;</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