| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> |
| <title>oscl_socket_serv_imp_reqlist.h Source File</title> |
| <link href="doxygen.css" rel="stylesheet" type="text/css"> |
| </head><body> |
| <!-- Generated by Doxygen 1.2.18 --> |
| <center> |
| <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> |
| <hr><h1>oscl_socket_serv_imp_reqlist.h</h1><a href="oscl__socket__serv__imp__reqlist_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 |
| 00002 <span class="preprocessor">#ifndef OSCL_SOCKET_SERV_IMP_REQLIST_H_INCLUDED</span> |
| 00003 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_SOCKET_SERV_IMP_REQLIST_H_INCLUDED</span> |
| 00004 <span class="preprocessor"></span> |
| 00005 <span class="preprocessor">#include "<a class="code" href="oscl__socket__tuneables_8h.html">oscl_socket_tuneables.h</a>"</span> |
| 00006 <span class="preprocessor">#include "<a class="code" href="oscl__defalloc_8h.html">oscl_defalloc.h</a>"</span> |
| 00007 <span class="preprocessor">#include "<a class="code" href="oscl__vector_8h.html">oscl_vector.h</a>"</span> |
| 00008 <span class="preprocessor">#include "<a class="code" href="oscl__mem_8h.html">oscl_mem.h</a>"</span> |
| 00009 |
| 00010 <span class="preprocessor">#if PV_SOCKET_SERVER_IS_THREAD</span> |
| 00011 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__semaphore_8h.html">oscl_semaphore.h</a>"</span> |
| 00012 <span class="preprocessor">#include "<a class="code" href="oscl__mutex_8h.html">oscl_mutex.h</a>"</span> |
| 00013 <span class="preprocessor">#endif</span> |
| 00014 <span class="preprocessor"></span> |
| 00015 <span class="keyword">class </span><a class="code" href="classOsclSocketServI.html">OsclSocketServI</a>; |
| 00016 <span class="keyword">template</span><<span class="keyword">class</span> T><span class="keyword">class </span>OsclSocketQueue; |
| 00017 <span class="keyword">class </span><a class="code" href="classOsclSocketI.html">OsclSocketI</a>; |
| 00018 <span class="keyword">class </span><a class="code" href="classOsclSocketRequest.html">OsclSocketRequest</a>; |
| 00019 |
| <a name="l00020"></a><a class="code" href="classOsclSocketServRequestQElem.html">00020</a> <span class="keyword">class </span><a class="code" href="classOsclSocketServRequestQElem.html">OsclSocketServRequestQElem</a> |
| 00021 { |
| 00022 <span class="keyword">public</span>: |
| <a name="l00023"></a><a class="code" href="classOsclSocketServRequestQElem.html#a0">00023</a> <a class="code" href="classOsclSocketServRequestQElem.html#a0">OsclSocketServRequestQElem</a>(<a class="code" href="classOsclSocketRequest.html">OsclSocketRequest</a>* r) |
| 00024 : <a class="code" href="classOsclSocketServRequestQElem.html#m0">iSocketRequest</a>(r) |
| 00025 , <a class="code" href="classOsclSocketServRequestQElem.html#m1">iSelect</a>(0) |
| 00026 , <a class="code" href="classOsclSocketServRequestQElem.html#m2">iCancel</a>(false) |
| 00027 {} |
| 00028 |
| <a name="l00029"></a><a class="code" href="classOsclSocketServRequestQElem.html#m0">00029</a> <a class="code" href="classOsclSocketRequest.html">OsclSocketRequest</a>* <a class="code" href="classOsclSocketServRequestQElem.html#m0">iSocketRequest</a>; |
| <a name="l00030"></a><a class="code" href="classOsclSocketServRequestQElem.html#m1">00030</a> uint8 <a class="code" href="classOsclSocketServRequestQElem.html#m1">iSelect</a>; |
| <a name="l00031"></a><a class="code" href="classOsclSocketServRequestQElem.html#m2">00031</a> <span class="keywordtype">bool</span> <a class="code" href="classOsclSocketServRequestQElem.html#m2">iCancel</a>; |
| 00032 }; |
| 00033 |
| <a name="l00036"></a><a class="code" href="classOsclSocketServRequestList.html">00036</a> <span class="keyword">class </span><a class="code" href="classOsclSocketServRequestList.html">OsclSocketServRequestList</a> |
| 00037 { |
| 00038 <span class="keyword">public</span>: |
| 00039 <a class="code" href="classOsclSocketServRequestList.html#a0">OsclSocketServRequestList</a>(); |
| 00040 <span class="keywordtype">void</span> <a class="code" href="classOsclSocketServRequestList.html#a1">Add</a>(<a class="code" href="classOsclSocketRequest.html">OsclSocketRequest</a> *); |
| 00041 <span class="keywordtype">void</span> <a class="code" href="classOsclSocketServRequestList.html#a2">StartCancel</a>(<a class="code" href="classOsclSocketRequest.html">OsclSocketRequest</a> *); |
| 00042 <span class="keywordtype">void</span> <a class="code" href="classOsclSocketServRequestList.html#a3">Open</a>(<a class="code" href="classOsclSocketServI.html">OsclSocketServI</a>*s); |
| 00043 <span class="keywordtype">void</span> <a class="code" href="classOsclSocketServRequestList.html#a4">Close</a>(); |
| 00044 <span class="keywordtype">void</span> <a class="code" href="classOsclSocketServRequestList.html#a5">Wakeup</a>(); |
| 00045 <span class="keywordtype">void</span> <a class="code" href="classOsclSocketServRequestList.html#a6">WaitOnRequests</a>(); |
| <a name="l00046"></a><a class="code" href="classOsclSocketServRequestList.html#a7">00046</a> <span class="keywordtype">void</span> <a class="code" href="classOsclSocketServRequestList.html#a7">Remove</a>(<a class="code" href="classOsclSocketServRequestQElem.html">OsclSocketServRequestQElem</a>* aElem) |
| 00047 { |
| 00048 aElem-><a class="code" href="classOsclSocketServRequestQElem.html#m0">iSocketRequest</a> = <a class="code" href="group__osclbase.html#a81">NULL</a>; |
| 00049 } |
| 00050 |
| 00051 <span class="keyword">private</span>: |
| 00052 <span class="comment">//a queue of the active sockets.</span> |
| 00053 <a class="code" href="classOscl__Vector.html">Oscl_Vector<OsclSocketServRequestQElem, OsclMemAllocator></a> iActiveRequests; |
| 00054 |
| 00055 <span class="preprocessor">#if PV_SOCKET_SERVER_IS_THREAD</span> |
| 00056 <span class="preprocessor"></span> <span class="comment">//thread protection</span> |
| 00057 <a class="code" href="classOsclMutex.html">OsclMutex</a> iCrit; |
| 00058 <a class="code" href="classOsclSemaphore.html">OsclSemaphore</a> iSem; |
| 00059 <span class="preprocessor">#endif</span> |
| 00060 <span class="preprocessor"></span> |
| 00061 <a class="code" href="classOsclSocketServI.html">OsclSocketServI</a> *iContainer; |
| 00062 |
| 00063 <span class="comment">//input queues for requests from the app side. requests</span> |
| 00064 <span class="comment">//are picked up by server thread, so these queues need</span> |
| 00065 <span class="comment">//to be used with thread locks.</span> |
| 00066 <a class="code" href="classOscl__Vector.html">Oscl_Vector<OsclSocketRequest*, OsclMemAllocator></a> iAddRequests; |
| 00067 <a class="code" href="classOscl__Vector.html">Oscl_Vector<OsclSocketRequest*, OsclMemAllocator></a> iCancelRequests; |
| 00068 <span class="keywordtype">void</span> GetNewRequests(); |
| 00069 <span class="keywordtype">void</span> Lock(); |
| 00070 <span class="keywordtype">void</span> Unlock(); |
| 00071 |
| <a name="l00072"></a><a class="code" href="classOsclSocketServRequestList.html#l0">00072</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclSocketServI.html">OsclSocketServI</a>; |
| 00073 }; |
| 00074 |
| 00075 |
| 00076 <span class="preprocessor">#endif</span> |
| 00077 <span class="preprocessor"></span> |
| 00078 |
| 00079 |
| </pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small> |
| <address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small> |
| </small></address> |
| </body> |
| </html> |