• 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_method.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_method.h</h1><a href="oscl__socket__method_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
1000002 <span class="preprocessor">#ifndef OSCL_SOCKET_METHOD_H_INCLUDED</span>
1100003 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_SOCKET_METHOD_H_INCLUDED</span>
1200004 <span class="preprocessor"></span>
1300005 <span class="preprocessor">#include "<a class="code" href="osclconfig__io_8h.html">osclconfig_io.h</a>"</span>
1400006 <span class="preprocessor">#include "<a class="code" href="oscl__socket__types_8h.html">oscl_socket_types.h</a>"</span>
1500007 <span class="comment">//#include "oscl_socket_serv_imp.h"</span>
1600008 <span class="preprocessor">#include "<a class="code" href="oscl__scheduler__ao_8h.html">oscl_scheduler_ao.h</a>"</span>
1700009 <span class="preprocessor">#include "<a class="code" href="oscl__socket__request_8h.html">oscl_socket_request.h</a>"</span>
1800010 <span class="preprocessor">#include "<a class="code" href="pvlogger_8h.html">pvlogger.h</a>"</span>
1900011 <span class="preprocessor">#include "<a class="code" href="oscl__socket__tuneables_8h.html">oscl_socket_tuneables.h</a>"</span>
2000012 <span class="preprocessor">#include "<a class="code" href="oscl__ip__socket_8h.html">oscl_ip_socket.h</a>"</span>
2100013
22<a name="l00014"></a><a class="code" href="oscl__socket__method_8h.html#a0">00014</a> <span class="preprocessor">#define MSEC_TO_MICROSEC 1000</span>
2300015 <span class="preprocessor"></span>
2400016 <span class="keyword">class </span><a class="code" href="classOsclSocketI.html">OsclSocketI</a>;
2500017 <span class="keyword">class </span><a class="code" href="classOsclSocketObserver.html">OsclSocketObserver</a>;
2600018 <span class="keyword">class </span><a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>;
2700019 <span class="keyword">class </span><a class="code" href="classOsclIPSocketI.html">OsclIPSocketI</a>;
2800020
29<a name="l00026"></a><a class="code" href="classOsclSocketMethod.html">00026</a> <span class="keyword">class </span><a class="code" href="classOsclSocketMethod.html">OsclSocketMethod</a> : <span class="keyword">public</span> <a class="code" href="classOsclTimerObject.html">OsclTimerObject</a>
3000027 {
3100028     <span class="keyword">public</span>:
32<a name="l00029"></a><a class="code" href="classOsclSocketMethod.html#a0">00029</a>         <a class="code" href="classOsclSocketMethod.html#a0">OsclSocketMethod</a>(<a class="code" href="classOsclIPSocketI.html">OsclIPSocketI</a>&amp; aContainer, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a> fxn)
3300030                 : <a class="code" href="classOsclTimerObject.html">OsclTimerObject</a>(<a class="code" href="oscl__socket__tuneables_8h.html#a0">PV_SOCKET_REQUEST_AO_PRIORITY</a>, name)
3400031                 , <a class="code" href="classOsclSocketMethod.html#m0">iContainer</a>(aContainer)
3500032                 , <a class="code" href="classOsclSocketMethod.html#m1">iSocketFxn</a>(fxn)
3600033                 , <a class="code" href="classOsclSocketMethod.html#n0">iSocketRequestAO</a>(<a class="code" href="group__osclbase.html#a81">NULL</a>)
3700034         {
3800035         }
39<a name="l00036"></a><a class="code" href="classOsclSocketMethod.html#a1">00036</a>         <span class="keyword">virtual</span> <a class="code" href="classOsclSocketMethod.html#a1">~OsclSocketMethod</a>()
4000037         {}
4100038
42<a name="l00039"></a><a class="code" href="classOsclSocketMethod.html#a2">00039</a>         <span class="keywordtype">void</span> <a class="code" href="classOsclSocketMethod.html#a2">Abort</a>()
4300040         {
4400041             <a class="code" href="classOsclTimerObject.html#a8">Cancel</a>();
4500042         }
4600043
4700044         <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketMethod.html#a3">AbortAll</a>();
4800045
4900046         <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketMethod.html#a4">CancelMethod</a>();
5000047
51<a name="l00048"></a><a class="code" href="classOsclSocketMethod.html#m0">00048</a>         <a class="code" href="classOsclIPSocketI.html">OsclIPSocketI</a>&amp; <a class="code" href="classOsclSocketMethod.html#m0">iContainer</a>;
5200049
53<a name="l00050"></a><a class="code" href="classOsclSocketMethod.html#m1">00050</a>         <a class="code" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a> <a class="code" href="classOsclSocketMethod.html#m1">iSocketFxn</a>;
5400051
55<a name="l00052"></a><a class="code" href="classOsclSocketMethod.html#a5">00052</a>         <a class="code" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a>&amp; <a class="code" href="classOsclSocketMethod.html#a5">Alloc</a>()
5600053         {
5700054             <span class="keywordflow">return</span> iContainer.<a class="code" href="classOsclIPSocketI.html#a8">Alloc</a>();
5800055         }
5900056
6000057     <span class="keyword">protected</span>:
61<a name="l00058"></a><a class="code" href="classOsclSocketMethod.html#b0">00058</a>         <span class="keywordtype">void</span> <a class="code" href="classOsclSocketMethod.html#b0">ConstructL</a>(<a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a> *aAO)
6200059         {
6300060             <span class="keywordflow">if</span> (!aAO)
6400061                 <a class="code" href="classOsclError.html#d7">OsclError::Leave</a>(<a class="code" href="group__osclerror.html#a12">OsclErrGeneral</a>);
6500062             <a class="code" href="classOsclSocketMethod.html#n0">iSocketRequestAO</a> = aAO;
6600063         }
6700064
6800065         <span class="keywordtype">bool</span> <a class="code" href="classOsclSocketMethod.html#b1">StartMethod</a>(int32 aTimeoutMsec);
6900066
7000067         <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketMethod.html#b2">MethodDone</a>();
7100068
7200069         <span class="keywordtype">void</span> <a class="code" href="classOsclSocketMethod.html#b3">Run</a>();
7300070
74<a name="l00071"></a><a class="code" href="classOsclSocketMethod.html#n0">00071</a>         <a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a> *<a class="code" href="classOsclSocketMethod.html#n0">iSocketRequestAO</a>;
7500072 };
7600073
7700074 <span class="preprocessor">#include "<a class="code" href="oscl__socket__imp_8h.html">oscl_socket_imp.h</a>"</span>
7800075
79<a name="l00080"></a><a class="code" href="classOsclSocketRequestAO.html">00080</a> <span class="keyword">class </span><a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a> : <span class="keyword">public</span> <a class="code" href="classOsclActiveObject.html">OsclActiveObject</a>
8000081 {
8100082     <span class="keyword">public</span>:
82<a name="l00083"></a><a class="code" href="classOsclSocketRequestAO.html#a0">00083</a>         <span class="keywordtype">void</span> <a class="code" href="classOsclSocketRequestAO.html#a0">ConstructL</a>()
8300084         {
8400085         }
8500086     <span class="keyword">protected</span>:
8600087
87<a name="l00088"></a><a class="code" href="classOsclSocketRequestAO.html#b0">00088</a>         <a class="code" href="classOsclSocketRequestAO.html#b0">OsclSocketRequestAO</a>(<a class="code" href="classOsclSocketMethod.html">OsclSocketMethod</a>&amp; aContainer, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
8800089                 : <a class="code" href="classOsclActiveObject.html">OsclActiveObject</a>(<a class="code" href="oscl__socket__tuneables_8h.html#a0">PV_SOCKET_REQUEST_AO_PRIORITY</a>, name)
8900090                 , <a class="code" href="classOsclSocketRequestAO.html#n0">iContainer</a>(aContainer)
9000091                 , <a class="code" href="classOsclSocketRequestAO.html#n1">iSocketError</a>(0)
9100092                 , <a class="code" href="classOsclSocketRequestAO.html#n2">iParam</a>(<a class="code" href="group__osclbase.html#a81">NULL</a>)
9200093                 , <a class="code" href="classOsclSocketRequestAO.html#n3">iParamSize</a>(0)
9300094         {}
9400095
95<a name="l00096"></a><a class="code" href="classOsclSocketRequestAO.html#b1">00096</a>         <span class="keyword">virtual</span> <a class="code" href="classOsclSocketRequestAO.html#b1">~OsclSocketRequestAO</a>()
9600097         {
9700098             <a class="code" href="classOsclSocketRequestAO.html#b3">CleanupParam</a>(<span class="keyword">true</span>);
9800099         }
9900100
10000101         <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOsclSocketRequestAO.html#b2">NewRequest</a>(<span class="keyword">const</span> uint32 size) ;
10100102         <span class="keywordtype">void</span> <a class="code" href="classOsclSocketRequestAO.html#b3">CleanupParam</a>(<span class="keywordtype">bool</span> deallocate = <span class="keyword">false</span>);
10200103
10300104
104<a name="l00105"></a><a class="code" href="classOsclSocketRequestAO.html#b4">00105</a>         <span class="keywordtype">void</span> <a class="code" href="classOsclSocketRequestAO.html#b4">Abort</a>()
10500106         {
10600107             <a class="code" href="classOsclActiveObject.html#a9">Cancel</a>();
10700108         }
10800109
109<a name="l00110"></a><a class="code" href="classOsclSocketRequestAO.html#b5">00110</a>         <span class="keywordtype">void</span> <a class="code" href="classOsclSocketRequestAO.html#b5">RequestDone</a>()
11000111         {
11100112             <a class="code" href="classOsclSocketRequestAO.html#n0">iContainer</a>.<a class="code" href="classOsclSocketMethod.html#a2">Abort</a>();
11200113         }
11300114
11400115         <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classOsclSocketRequestAO.html#b6">GetSocketError</a>();
11500116
116<a name="l00117"></a><a class="code" href="classOsclSocketRequestAO.html#b7">00117</a>         <span class="keywordtype">void</span> <a class="code" href="classOsclSocketRequestAO.html#b7">DoCancel</a>()
11700118         {
11800119             <a class="code" href="classOsclSocketRequestAO.html#b10">SocketI</a>()-&gt;<a class="code" href="classOsclSocketIBase.html#a20">CancelFxn</a>(<a class="code" href="classOsclSocketRequestAO.html#n0">iContainer</a>.<a class="code" href="classOsclSocketMethod.html#m1">iSocketFxn</a>);
11900120             <span class="comment">//we launch the cancellation process here.  oscl scheduler</span>
12000121             <span class="comment">//will wait on completion of this AO request, which will</span>
12100122             <span class="comment">//happen in the server thread.</span>
12200123         }
12300124
12400125         <span class="keywordtype">void</span> <a class="code" href="classOsclSocketRequestAO.html#b8">Run</a>();
12500126
126<a name="l00127"></a><a class="code" href="classOsclSocketRequestAO.html#b9">00127</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketRequestAO.html#b9">Success</a>()
12700128         {}
12800129
129<a name="l00130"></a><a class="code" href="classOsclSocketRequestAO.html#n0">00130</a>         <a class="code" href="classOsclSocketMethod.html">OsclSocketMethod</a>&amp; <a class="code" href="classOsclSocketRequestAO.html#n0">iContainer</a>;
130<a name="l00131"></a><a class="code" href="classOsclSocketRequestAO.html#n1">00131</a>         int32 <a class="code" href="classOsclSocketRequestAO.html#n1">iSocketError</a>;
131<a name="l00132"></a><a class="code" href="classOsclSocketRequestAO.html#n2">00132</a>         <a class="code" href="classSocketRequestParam.html">SocketRequestParam</a> *<a class="code" href="classOsclSocketRequestAO.html#n2">iParam</a>;
132<a name="l00133"></a><a class="code" href="classOsclSocketRequestAO.html#n3">00133</a>         uint32 <a class="code" href="classOsclSocketRequestAO.html#n3">iParamSize</a>;
13300134
134<a name="l00135"></a><a class="code" href="classOsclSocketRequestAO.html#b10">00135</a>         <a class="code" href="classOsclSocketI.html">OsclSocketI</a> *<a class="code" href="classOsclSocketRequestAO.html#b10">SocketI</a>()
13500136         {
13600137             <span class="keywordflow">return</span> iContainer.<a class="code" href="classOsclSocketMethod.html#m0">iContainer</a>.<a class="code" href="classOsclIPSocketI.html#n4">iSocket</a>;
13700138         }
13800139
139<a name="l00140"></a><a class="code" href="classOsclSocketRequestAO.html#b11">00140</a>         <a class="code" href="classOsclSocketObserver.html">OsclSocketObserver</a>* <a class="code" href="classOsclSocketRequestAO.html#b11">SocketObserver</a>()
14000141         {
14100142             <span class="keywordflow">return</span> iContainer.<a class="code" href="classOsclSocketMethod.html#m0">iContainer</a>.<a class="code" href="classOsclIPSocketI.html#n3">iObserver</a>;
14200143         }
143<a name="l00144"></a><a class="code" href="classOsclSocketRequestAO.html#b12">00144</a>         uint32 <a class="code" href="classOsclSocketRequestAO.html#b12">Id</a>()
14400145         {
14500146             <span class="keywordflow">return</span> iContainer.<a class="code" href="classOsclSocketMethod.html#m0">iContainer</a>.<a class="code" href="classOsclIPSocketI.html#n2">iId</a>;
14600147         }
147<a name="l00148"></a><a class="code" href="classOsclSocketRequestAO.html#b13">00148</a>         <a class="code" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a>&amp; <a class="code" href="classOsclSocketRequestAO.html#b13">Alloc</a>()
14800149         {
14900150             <span class="keywordflow">return</span> iContainer.<a class="code" href="classOsclSocketMethod.html#m0">iContainer</a>.<a class="code" href="classOsclIPSocketI.html#a8">Alloc</a>();
15000151         }
15100152
152<a name="l00153"></a><a class="code" href="classOsclSocketRequestAO.html#l0">00153</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclSocketI.html">OsclSocketI</a>;
153<a name="l00154"></a><a class="code" href="classOsclSocketRequestAO.html#l1">00154</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclSocketMethod.html">OsclSocketMethod</a>;
154<a name="l00155"></a><a class="code" href="classOsclSocketRequestAO.html#l2">00155</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclSocketRequest.html">OsclSocketRequest</a>;
15500156 };
15600157
157<a name="l00158"></a><a class="code" href="classOsclSocketMethod.html#a3">00158</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketMethod.html#a3">OsclSocketMethod::AbortAll</a>()
15800159 {
15900160     <a class="code" href="classOsclSocketMethod.html#a2">Abort</a>();
16000161     <span class="keywordflow">if</span> (iSocketRequestAO)
16100162         <a class="code" href="classOsclSocketMethod.html#n0">iSocketRequestAO</a>-&gt;<a class="code" href="classOsclSocketRequestAO.html#b4">Abort</a>();
16200163 }
16300164
164<a name="l00165"></a><a class="code" href="classOsclSocketMethod.html#a4">00165</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketMethod.html#a4">OsclSocketMethod::CancelMethod</a>()
16500166 {
16600167     <span class="comment">//cancel the timeout if any</span>
16700168     <a class="code" href="classOsclSocketMethod.html#a2">Abort</a>();
16800169     <span class="comment">//cancel the request to the socket server.</span>
16900170     <a class="code" href="classOsclSocketMethod.html#n0">iSocketRequestAO</a>-&gt;<a class="code" href="classOsclSocketRequestAO.html#b7">DoCancel</a>();
17000171 }
17100172
172<a name="l00173"></a><a class="code" href="classOsclSocketMethod.html#b2">00173</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketMethod.html#b2">OsclSocketMethod::MethodDone</a>()
17300174 {
17400175     <a class="code" href="classOsclSocketMethod.html#n0">iSocketRequestAO</a>-&gt;<a class="code" href="classOsclSocketRequestAO.html#b4">Abort</a>();
17500176 }
17600177
17700178 <span class="preprocessor">#endif</span>
17800179 <span class="preprocessor"></span>
179</pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
180<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
181</small></address>
182</body>
183</html>
184