• 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_imp_base.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_imp_base.h</h1><a href="oscl__socket__imp__base_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
1000002
1100003 <span class="preprocessor">#ifndef OSCL_SOCKET_IMP_BASE_H_INCLUDED</span>
1200004 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_SOCKET_IMP_BASE_H_INCLUDED</span>
1300005 <span class="preprocessor"></span>
1400006 <span class="preprocessor">#include "<a class="code" href="oscl__socket__types_8h.html">oscl_socket_types.h</a>"</span>
1500007 <span class="preprocessor">#include "<a class="code" href="oscl__socket__request_8h.html">oscl_socket_request.h</a>"</span>
1600008 <span class="preprocessor">#include "<a class="code" href="oscl__defalloc_8h.html">oscl_defalloc.h</a>"</span>
1700009 <span class="preprocessor">#include "<a class="code" href="oscl__mutex_8h.html">oscl_mutex.h</a>"</span>
1800010 <span class="preprocessor">#include "<a class="code" href="oscl__socket__stats_8h.html">oscl_socket_stats.h</a>"</span>
1900011 <span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span>
2000012
2100013 <span class="keyword">class </span><a class="code" href="classOsclSocketServI.html">OsclSocketServI</a>;
2200014
23<a name="l00017"></a><a class="code" href="classOsclSocketIBase.html">00017</a> <span class="keyword">class </span><a class="code" href="classOsclSocketIBase.html">OsclSocketIBase</a>
2400018 {
2500019     <span class="keyword">public</span>:
2600020         <span class="keyword">virtual</span> <a class="code" href="classOsclSocketIBase.html#a0">~OsclSocketIBase</a>();
2700021
2800022         <span class="comment">//synchronous methods</span>
2900023         <span class="keyword">virtual</span> int32 <a class="code" href="classOsclSocketIBase.html#a1">Open</a>(<a class="code" href="classOsclSocketServI.html">OsclSocketServI</a>&amp; aServer, uint32 addrFamily, uint32 sockType, uint32 protocol) = 0;
3000024         <span class="keyword">virtual</span> int32 <a class="code" href="classOsclSocketIBase.html#a1">Open</a>(<a class="code" href="classOsclSocketServI.html">OsclSocketServI</a>&amp; aServer) = 0;
3100025         <span class="keyword">virtual</span> int32 <a class="code" href="classOsclSocketIBase.html#a3">Bind</a>(<a class="code" href="classOsclNetworkAddress.html">OsclNetworkAddress</a>&amp; anAddr) = 0;
3200026         <span class="keyword">virtual</span> int32 <a class="code" href="classOsclSocketIBase.html#a4">Join</a>(<a class="code" href="classOsclNetworkAddress.html">OsclNetworkAddress</a>&amp; anAddr) = 0;
3300027         <span class="keyword">virtual</span> int32 <a class="code" href="classOsclSocketIBase.html#a5">Close</a>() = 0;
3400028         <span class="keyword">virtual</span> int32 <a class="code" href="classOsclSocketIBase.html#a6">Listen</a>(uint32 qSize) = 0;
3500029
3600030         <span class="comment">//asynchronous methods.</span>
3700031         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a7">Connect</a>(<a class="code" href="classConnectParam.html">ConnectParam</a>&amp; , <a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>&amp;) = 0;
3800032
3900033         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a8">Accept</a>(<a class="code" href="classAcceptParam.html">AcceptParam</a> &amp;, <a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>&amp;) = 0;
4000034
4100035         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a9">Shutdown</a>(<a class="code" href="classShutdownParam.html">ShutdownParam</a> &amp;, <a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>&amp;) = 0;
4200036
4300037         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a10">Send</a>(<a class="code" href="classSendParam.html">SendParam</a> &amp;, <a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>&amp;) = 0;
4400038         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a11">SendSuccess</a>(<a class="code" href="classSendParam.html">SendParam</a> &amp;) = 0;
4500039
4600040         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a12">SendTo</a>(<a class="code" href="classSendToParam.html">SendToParam</a> &amp; , <a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>&amp;) = 0;
4700041         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a13">SendToSuccess</a>(<a class="code" href="classSendToParam.html">SendToParam</a> &amp;) = 0;
4800042
4900043         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a14">Recv</a>(<a class="code" href="classRecvParam.html">RecvParam</a> &amp;, <a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>&amp;) = 0;
5000044         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a15">RecvSuccess</a>(<a class="code" href="classRecvParam.html">RecvParam</a> &amp;) = 0;
5100045
5200046         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a16">RecvFrom</a>(<a class="code" href="classRecvFromParam.html">RecvFromParam</a> &amp;, <a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>&amp;) = 0;
5300047         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a17">RecvFromSuccess</a>(<a class="code" href="classRecvFromParam.html">RecvFromParam</a> &amp;) = 0;
5400048
5500049         <span class="comment">//optional async methods</span>
56<a name="l00050"></a><a class="code" href="classOsclSocketIBase.html#a18">00050</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a18">BindAsync</a>(<a class="code" href="classBindParam.html">BindParam</a>&amp;, <a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>&amp;)
5700051         {}
58<a name="l00052"></a><a class="code" href="classOsclSocketIBase.html#a19">00052</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a19">ListenAsync</a>(<a class="code" href="classListenParam.html">ListenParam</a>&amp;, <a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>&amp;)
5900053         {}
6000054         <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classOsclSocketIBase.html#d0">HasAsyncBind</a>() ;
6100055         <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classOsclSocketIBase.html#d1">HasAsyncListen</a>() ;
6200056
6300057         <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#a20">CancelFxn</a>(<a class="code" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a>);
6400058
6500059     <span class="keyword">protected</span>:
6600060         <a class="code" href="classOsclSocketIBase.html#b0">OsclSocketIBase</a>(<a class="code" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> &amp;a);
6700061
6800062         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#b1">CancelConnect</a>() = 0;
6900063         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#b2">CancelAccept</a>() = 0;
7000064         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#b3">CancelShutdown</a>() = 0;
7100065         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#b4">CancelSend</a>() = 0;
7200066         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#b5">CancelSendTo</a>() = 0;
7300067         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#b6">CancelRecv</a>() = 0;
7400068         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#b7">CancelRecvFrom</a>() = 0;
7500069
7600070         <span class="comment">//optional methods, for async bind/listen</span>
77<a name="l00071"></a><a class="code" href="classOsclSocketIBase.html#b8">00071</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#b8">CancelBind</a>()
7800072         {}
79<a name="l00073"></a><a class="code" href="classOsclSocketIBase.html#b9">00073</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketIBase.html#b9">CancelListen</a>()
8000074         {}
8100075
82<a name="l00076"></a><a class="code" href="classOsclSocketIBase.html#n0">00076</a>         <a class="code" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> &amp;<a class="code" href="classOsclSocketIBase.html#n0">iAlloc</a>;
8300077
8400078         <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classOsclSocketIBase.html#e0">GetShutdown</a>(<a class="code" href="oscl__socket__types_8h.html#a21">TPVSocketShutdown</a> aOsclVal);
8500079
8600080         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classOsclSocketIBase.html#b10">IsOpen</a>() = 0;
8700081
8800082         <span class="comment">//link to socket server.</span>
89<a name="l00083"></a><a class="code" href="classOsclSocketIBase.html#n1">00083</a>         <a class="code" href="classOsclSocketServI.html">OsclSocketServI</a> *<a class="code" href="classOsclSocketIBase.html#n1">iSocketServ</a>;
90<a name="l00084"></a><a class="code" href="classOsclSocketIBase.html#l0">00084</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclSocketRequest.html">OsclSocketRequest</a>;
91<a name="l00085"></a><a class="code" href="classOsclSocketIBase.html#l1">00085</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclSocketMethod.html">OsclSocketMethod</a>;
92<a name="l00086"></a><a class="code" href="classOsclSocketIBase.html#l2">00086</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>;
9300087
9400088 <span class="preprocessor">#if(PV_OSCL_SOCKET_STATS_LOGGING)</span>
9500089 <span class="preprocessor"></span>        OsclSocketStats iStats;
9600090 <span class="preprocessor">#endif</span>
9700091 <span class="preprocessor"></span>
98<a name="l00092"></a><a class="code" href="classOsclSocketIBase.html#l3">00092</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclUDPSocket.html">OsclUDPSocket</a>;
99<a name="l00093"></a><a class="code" href="classOsclSocketIBase.html#l4">00093</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclTCPSocket.html">OsclTCPSocket</a>;
10000094 };
10100095
10200096 <span class="preprocessor">#endif</span>
10300097 <span class="preprocessor"></span>
10400098
10500099
106</pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
107<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
108</small></address>
109</body>
110</html>
111