aboutsummaryrefslogtreecommitdiff
path: root/doc/oscl_html/oscl__socket__stats_8h_source.html
blob: 4a5515447da8d5bb6e35d14d0245f1443ceb9c1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>oscl: oscl_socket_stats.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<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 class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 
<a name="l00003"></a>00003 <span class="preprocessor">#ifndef OSCL_SOCKET_STATS_H_INCLUDED</span>
<a name="l00004"></a>00004 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_SOCKET_STATS_H_INCLUDED</span>
<a name="l00005"></a>00005 <span class="preprocessor"></span>
<a name="l00009"></a>00009 <span class="preprocessor">#include &quot;<a class="code" href="oscl__base_8h.html" title="The file oscl_base.h is the public header that should be included to pick up the...">oscl_base.h</a>&quot;</span>
<a name="l00010"></a>00010 <span class="preprocessor">#include &quot;<a class="code" href="oscl__vector_8h.html" title="The file oscl_vector.h defines the template class Oscl_Vector which has a very similar...">oscl_vector.h</a>&quot;</span>
<a name="l00011"></a>00011 <span class="preprocessor">#include &quot;<a class="code" href="oscl__mem_8h.html" title="This file contains basic memory definitions for common use across platforms.">oscl_mem.h</a>&quot;</span>
<a name="l00012"></a>00012 <span class="preprocessor">#include &quot;<a class="code" href="oscl__mutex_8h.html" title="This file provides implementation of mutex.">oscl_mutex.h</a>&quot;</span>
<a name="l00013"></a>00013 
<a name="l00014"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78d">00014</a> <span class="keyword">enum</span> <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78d">TOsclSocketStatEvent</a>
<a name="l00015"></a>00015 {
<a name="l00016"></a>00016     <span class="comment">//Request/Method AO events</span>
<a name="l00017"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da51007c30ddcc0f5eecc4ae41f5c8086a">00017</a>     <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da51007c30ddcc0f5eecc4ae41f5c8086a">EOsclSocket_RequestAO_Success</a>
<a name="l00018"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da5a291a0d99d7088e1496c9a8f5ad3294">00018</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da5a291a0d99d7088e1496c9a8f5ad3294">EOsclSocket_RequestAO_Canceled</a>
<a name="l00019"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da7d71bf193ec560705d68613546af1099">00019</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da7d71bf193ec560705d68613546af1099">EOsclSocket_RequestAO_Error</a>
<a name="l00020"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da7ace9fdb93c9ca7407800221aace409e">00020</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da7ace9fdb93c9ca7407800221aace409e">EOsclSocket_RequestAO_Timeout</a>
<a name="l00021"></a>00021     <span class="comment">//Server events</span>
<a name="l00022"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da3102c1e356fde92c4b7b0d753c13991a">00022</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da3102c1e356fde92c4b7b0d753c13991a">EOsclSocket_ServRequestIssued</a>
<a name="l00023"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78dac9fdb30c1fa3bf08d4fad1b8fb210620">00023</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78dac9fdb30c1fa3bf08d4fad1b8fb210620">EOsclSocket_ServPoll</a>
<a name="l00024"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da5b781bd1def4b5d4e5b2fb375caac816">00024</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da5b781bd1def4b5d4e5b2fb375caac816">EOsclSocket_OS</a>
<a name="l00025"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da928ddc2ea73e6addffeaef38c36f9a3c">00025</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da928ddc2ea73e6addffeaef38c36f9a3c">EOsclSocket_Readable</a>
<a name="l00026"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78dab15cfbc1c9cad7b265390a2bdaf63ed5">00026</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78dab15cfbc1c9cad7b265390a2bdaf63ed5">EOsclSocket_Writable</a>
<a name="l00027"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da8fbce15ab0cbd4109de127e6b7642410">00027</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da8fbce15ab0cbd4109de127e6b7642410">EOsclSocket_Except</a>
<a name="l00028"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da3295487628218ea1087b3970eea12464">00028</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da3295487628218ea1087b3970eea12464">EOsclSocket_DataRecv</a>
<a name="l00029"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da959f31aaad2d25f690c2363ff927bf1b">00029</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da959f31aaad2d25f690c2363ff927bf1b">EOsclSocket_DataSent</a>
<a name="l00030"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da84d3112ef68fc7f61ba274a653dc52f5">00030</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da84d3112ef68fc7f61ba274a653dc52f5">EOsclSocket_ServRequestComplete</a>
<a name="l00031"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da04bed0016965256c6f48230f7c8d0968">00031</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da04bed0016965256c6f48230f7c8d0968">EOsclSocket_ServRequestCancelIssued</a>
<a name="l00032"></a>00032     <span class="comment">//loop socket events</span>
<a name="l00033"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78dac9a12bce530057a6f5146882113eaa21">00033</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78dac9a12bce530057a6f5146882113eaa21">EOsclSocketServ_LoopsockOk</a>
<a name="l00034"></a><a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da9f92ac4dfb29554a509afbda2d7c6e5e">00034</a>     , <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78da9f92ac4dfb29554a509afbda2d7c6e5e">EOsclSocketServ_LoopsockError</a>
<a name="l00035"></a>00035 };
<a name="l00036"></a>00036 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> TPVSocketStatStr[] =
<a name="l00037"></a>00037 {
<a name="l00038"></a>00038     <span class="comment">//Request/Method AO events</span>
<a name="l00039"></a>00039     <span class="stringliteral">&quot;AO_Success&quot;</span>
<a name="l00040"></a>00040     , <span class="stringliteral">&quot;AO_Canceled&quot;</span>
<a name="l00041"></a>00041     , <span class="stringliteral">&quot;AO_Error&quot;</span>
<a name="l00042"></a>00042     , <span class="stringliteral">&quot;AO_Timeout&quot;</span>
<a name="l00043"></a>00043     <span class="comment">//Server events</span>
<a name="l00044"></a>00044     , <span class="stringliteral">&quot;Serv_ReqIssued&quot;</span>
<a name="l00045"></a>00045     , <span class="stringliteral">&quot;Serv_Poll&quot;</span>
<a name="l00046"></a>00046     , <span class="stringliteral">&quot;Serv_OS_Op&quot;</span>
<a name="l00047"></a>00047     , <span class="stringliteral">&quot;Serv_Readable&quot;</span>
<a name="l00048"></a>00048     , <span class="stringliteral">&quot;Serv_Writeable&quot;</span>
<a name="l00049"></a>00049     , <span class="stringliteral">&quot;Serv_Except!&quot;</span>
<a name="l00050"></a>00050     , <span class="stringliteral">&quot;Serv_DataRecv&#39;d&quot;</span>
<a name="l00051"></a>00051     , <span class="stringliteral">&quot;Serv_DataSent&quot;</span>
<a name="l00052"></a>00052     , <span class="stringliteral">&quot;Serv_ReqComplete&quot;</span>
<a name="l00053"></a>00053     , <span class="stringliteral">&quot;Serv_ReqCancel&quot;</span>
<a name="l00054"></a>00054     <span class="comment">//loop socket events</span>
<a name="l00055"></a>00055     , <span class="stringliteral">&quot;Loopsock_OK&quot;</span>
<a name="l00056"></a>00056     , <span class="stringliteral">&quot;Loopsock_Err&quot;</span>
<a name="l00057"></a>00057 } ;
<a name="l00058"></a>00058 
<a name="l00059"></a><a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39">00059</a> <span class="keyword">enum</span> <a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39">TOsclSocketServStatEvent</a>
<a name="l00060"></a>00060 {
<a name="l00061"></a>00061     <span class="comment">//select loop events</span>
<a name="l00062"></a><a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39a2d638b2469026fdb3b73b50671d72835">00062</a>     <a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39a2d638b2469026fdb3b73b50671d72835">EOsclSocketServ_SelectNoActivity</a> = 0
<a name="l00063"></a><a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39ac8b6280ea6954dd06b8b188f3e3fa5c9">00063</a>     , <a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39ac8b6280ea6954dd06b8b188f3e3fa5c9">EOsclSocketServ_SelectActivity</a>
<a name="l00064"></a><a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39a70896890e0cd63bb78f98411fb7a3cb1">00064</a>     , <a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39a70896890e0cd63bb78f98411fb7a3cb1">EOsclSocketServ_SelectRescheduleAsap</a>
<a name="l00065"></a><a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39ac97aeec65fe4e2c55ff95d43ec539f27">00065</a>     , <a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39ac97aeec65fe4e2c55ff95d43ec539f27">EOsclSocketServ_SelectReschedulePoll</a>
<a name="l00066"></a><a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39a434dd1e835599207afdb65e03593dd44">00066</a>     , <a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39a434dd1e835599207afdb65e03593dd44">EOsclSocketServ_LastEvent</a>
<a name="l00067"></a>00067 };
<a name="l00068"></a>00068 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> TPVSocketServStatStr[] =
<a name="l00069"></a>00069 {
<a name="l00070"></a>00070     <span class="stringliteral">&quot;Select_No&quot;</span>
<a name="l00071"></a>00071     , <span class="stringliteral">&quot;Select_Yes&quot;</span>
<a name="l00072"></a>00072     , <span class="stringliteral">&quot;Select_Resched_Asap&quot;</span>
<a name="l00073"></a>00073     , <span class="stringliteral">&quot;Select_Resched_Poll&quot;</span>
<a name="l00074"></a>00074 } ;
<a name="l00075"></a>00075 
<a name="l00076"></a>00076 <span class="preprocessor">#include &quot;<a class="code" href="oscl__socket__tuneables_8h.html">oscl_socket_tuneables.h</a>&quot;</span>
<a name="l00077"></a>00077 <span class="preprocessor">#if(PV_OSCL_SOCKET_STATS_LOGGING)</span>
<a name="l00078"></a>00078 <span class="preprocessor"></span>
<a name="l00079"></a>00079 <span class="keyword">class </span><a class="code" href="classPVLogger.html">PVLogger</a>;
<a name="l00080"></a>00080 <span class="keyword">class </span>OsclSocketStatEventEntry
<a name="l00081"></a>00081 {
<a name="l00082"></a>00082     <span class="keyword">public</span>:
<a name="l00083"></a>00083         OsclSocketStatEventEntry(<a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78d">TOsclSocketStatEvent</a> aEvent, uint32 aTime, int32 aParam)
<a name="l00084"></a>00084                 : iEvent(aEvent)
<a name="l00085"></a>00085                 , iTicks(aTime)
<a name="l00086"></a>00086                 , iParam(aParam)
<a name="l00087"></a>00087         {}
<a name="l00088"></a>00088         <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78d">TOsclSocketStatEvent</a> iEvent;
<a name="l00089"></a>00089         uint32 iTicks;
<a name="l00090"></a>00090         int32 iParam;
<a name="l00091"></a>00091 };
<a name="l00092"></a>00092 
<a name="l00093"></a>00093 <span class="preprocessor">#include &quot;<a class="code" href="oscl__socket__types_8h.html">oscl_socket_types.h</a>&quot;</span>
<a name="l00094"></a>00094 
<a name="l00095"></a>00095 <span class="preprocessor">#define OsclSocketStats_NUM_ACTIVE_REQUESTS EPVSocket_Last</span>
<a name="l00096"></a>00096 <span class="preprocessor"></span>
<a name="l00097"></a>00097 <span class="comment">//Define the maximum number of polling events that will be logged.</span>
<a name="l00098"></a>00098 <span class="comment">//Additional poll events will be counted but not logged individually.</span>
<a name="l00099"></a>00099 <span class="preprocessor">#define OsclSocketStats_MAX_POLL_EVENTS 100</span>
<a name="l00100"></a>00100 <span class="preprocessor"></span>
<a name="l00101"></a>00101 <span class="keyword">class </span>OsclSocketStats
<a name="l00102"></a>00102 {
<a name="l00103"></a>00103     <span class="keyword">public</span>:
<a name="l00104"></a>00104         OsclSocketStats();
<a name="l00105"></a>00105         ~OsclSocketStats();
<a name="l00106"></a>00106         <span class="keywordtype">void</span> ShowTuneables();
<a name="l00107"></a>00107         <span class="keywordtype">void</span> Add(<a class="code" href="oscl__socket__types_8h.html#ad56e935eb39e12b55e094f08167175da">TPVSocketFxn</a>, <a class="code" href="oscl__socket__stats_8h.html#a848266f49277f1803c0da5c44a0da78d">TOsclSocketStatEvent</a>, int32 aParam = (-1));
<a name="l00108"></a>00108         <span class="keywordtype">void</span> Log(<a class="code" href="oscl__socket__types_8h.html#ad56e935eb39e12b55e094f08167175da">TPVSocketFxn</a>);
<a name="l00109"></a>00109         <span class="keywordtype">void</span> Log();
<a name="l00110"></a>00110         <span class="keywordtype">void</span> Clear(<a class="code" href="oscl__socket__types_8h.html#ad56e935eb39e12b55e094f08167175da">TPVSocketFxn</a>);
<a name="l00111"></a>00111         <span class="keywordtype">void</span> Construct(<a class="code" href="group__osclbase.html#ga3bac54662348f5e6c08b97ca97066b89" title="The OsclAny is meant to be used the context of a generic pointer (i.e., no specific...">OsclAny</a>* aContainer, <a class="code" href="group__osclbase.html#ga3bac54662348f5e6c08b97ca97066b89" title="The OsclAny is meant to be used the context of a generic pointer (i.e., no specific...">OsclAny</a>*aServ);
<a name="l00112"></a>00112         <span class="keywordtype">void</span> LogAndDump();
<a name="l00113"></a>00113     <span class="keyword">private</span>:
<a name="l00114"></a>00114         <a class="code" href="classOscl__Vector.html">Oscl_Vector&lt;OsclSocketStatEventEntry, OsclMemAllocator&gt;</a> iEvents[OsclSocketStats_NUM_ACTIVE_REQUESTS];
<a name="l00115"></a>00115         <a class="code" href="classOscl__Vector.html">Oscl_Vector&lt;OsclSocketStatEventEntry, OsclMemAllocator&gt;</a> iPollEvents[OsclSocketStats_NUM_ACTIVE_REQUESTS];
<a name="l00116"></a>00116         int32 iExcessPollEvents[OsclSocketStats_NUM_ACTIVE_REQUESTS];
<a name="l00117"></a>00117         int32 iLastCompletionTime[OsclSocketStats_NUM_ACTIVE_REQUESTS];
<a name="l00118"></a>00118         <a class="code" href="classOsclThreadLock.html">OsclThreadLock</a> iLock;
<a name="l00119"></a>00119         <span class="keywordtype">char</span>* iLogStr;
<a name="l00120"></a>00120         <a class="code" href="classPVLogger.html">PVLogger</a>* iLogger;
<a name="l00121"></a>00121         <a class="code" href="group__osclbase.html#ga3bac54662348f5e6c08b97ca97066b89" title="The OsclAny is meant to be used the context of a generic pointer (i.e., no specific...">OsclAny</a>* iSock;
<a name="l00122"></a>00122         <a class="code" href="group__osclbase.html#ga3bac54662348f5e6c08b97ca97066b89" title="The OsclAny is meant to be used the context of a generic pointer (i.e., no specific...">OsclAny</a>* iServ;
<a name="l00123"></a>00123 };
<a name="l00124"></a>00124 
<a name="l00125"></a>00125 <span class="keyword">class </span>OsclSocketServStats
<a name="l00126"></a>00126 {
<a name="l00127"></a>00127     <span class="keyword">public</span>:
<a name="l00128"></a>00128         OsclSocketServStats();
<a name="l00129"></a>00129         ~OsclSocketServStats();
<a name="l00130"></a>00130         <span class="keywordtype">void</span> Add(<a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39">TOsclSocketServStatEvent</a>);
<a name="l00131"></a>00131         <span class="keywordtype">void</span> Construct(<a class="code" href="group__osclbase.html#ga3bac54662348f5e6c08b97ca97066b89" title="The OsclAny is meant to be used the context of a generic pointer (i.e., no specific...">OsclAny</a>*aServ);
<a name="l00132"></a>00132         <span class="keywordtype">void</span> LogAndDump();
<a name="l00133"></a>00133     <span class="keyword">private</span>:
<a name="l00134"></a>00134         <span class="keywordtype">void</span> Log(<a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39">TOsclSocketServStatEvent</a>);
<a name="l00135"></a>00135         <span class="keywordtype">void</span> Clear();
<a name="l00136"></a>00136         <span class="keywordtype">void</span> ShowTuneables();
<a name="l00137"></a>00137         uint32 iEvents[<a class="code" href="oscl__socket__stats_8h.html#af38fdcdc9265bd2383d96bc012aa4e39a434dd1e835599207afdb65e03593dd44">EOsclSocketServ_LastEvent</a>];
<a name="l00138"></a>00138         <a class="code" href="classPVLogger.html">PVLogger</a>* iLogger;
<a name="l00139"></a>00139         <a class="code" href="group__osclbase.html#ga3bac54662348f5e6c08b97ca97066b89" title="The OsclAny is meant to be used the context of a generic pointer (i.e., no specific...">OsclAny</a>* iServ;
<a name="l00140"></a>00140 };
<a name="l00141"></a>00141 
<a name="l00142"></a>00142 <span class="preprocessor">#endif</span>
<a name="l00143"></a>00143 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00144"></a>00144 <span class="preprocessor"></span>
<a name="l00145"></a>00145 
<a name="l00146"></a>00146 
</pre></div></div>
<hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
<address style="align: left;"><small>Posting Version: CORE_9.004.1.1 </small>
</small></address>
</body>
</html>