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_dns_param.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> <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> 9<hr><h1>oscl_dns_param.h</h1><a href="oscl__dns__param_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 1000002 <span class="preprocessor">#ifndef OSCL_DNS_PARAM_H_INCLUDED</span> 1100003 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_DNS_PARAM_H_INCLUDED</span> 1200004 <span class="preprocessor"></span> 1300005 <span class="preprocessor">#include "<a class="code" href="oscl__socket__types_8h.html">oscl_socket_types.h</a>"</span> 1400006 <span class="preprocessor">#include "<a class="code" href="oscl__dns__tuneables_8h.html">oscl_dns_tuneables.h</a>"</span> 1500007 <span class="preprocessor">#include "<a class="code" href="oscl__namestring_8h.html">oscl_namestring.h</a>"</span> 1600008 <span class="preprocessor">#include "<a class="code" href="oscl__dns_8h.html">oscl_dns.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__semaphore_8h.html">oscl_semaphore.h</a>"</span> 1900011 2000012 <span class="keyword">class </span><a class="code" href="classOsclDNSRequestAO.html">OsclDNSRequestAO</a>; 2100013 <span class="keyword">class </span><a class="code" href="classOsclDNSRequest.html">OsclDNSRequest</a>; 2200014 2300015 <span class="preprocessor">#if(PV_DNS_IS_THREAD)</span> 2400016 <span class="preprocessor"></span><span class="comment">/*</span> 2500017 <span class="comment">** Only the _OsclBasicAllocator is used in order to</span> 2600018 <span class="comment">** avoid the need to init memory manager in the DNS thread.</span> 2700019 <span class="comment">*/</span> 2800020 <span class="keyword">typedef</span> <a class="code" href="class__OsclBasicAllocator.html">_OsclBasicAllocator</a> <a class="code" href="classOsclMemAllocator.html">TDNSRequestParamAllocator</a>; 2900021 <span class="preprocessor">#else</span> 30<a name="l00022"></a><a class="code" href="oscl__dns__param_8h.html#a0">00022</a> <span class="preprocessor"></span><span class="keyword">typedef</span> <a class="code" href="classOsclMemAllocator.html">OsclMemAllocator</a> TDNSRequestParamAllocator; 3100023 <span class="preprocessor">#endif</span> 3200024 <span class="preprocessor"></span> 3300025 <span class="comment">/*</span> 3400026 <span class="comment">** Base class for all DNS method parameter sets</span> 3500027 <span class="comment">** A thread-safe, reference-counted parameter set.</span> 3600028 <span class="comment">** A reference count is used since the data may need</span> 3700029 <span class="comment">** to persist after the request is canceled while still</span> 3800030 <span class="comment">** waiting on some blocking OS-level operation to complete.</span> 3900031 <span class="comment">*/</span> 40<a name="l00032"></a><a class="code" href="classDNSRequestParam.html">00032</a> <span class="keyword">class </span><a class="code" href="classDNSRequestParam.html">DNSRequestParam</a> 4100033 { 4200034 <span class="keyword">public</span>: 4300035 44<a name="l00036"></a><a class="code" href="classDNSRequestParam.html#a0">00036</a> <span class="keyword">virtual</span> <a class="code" href="classDNSRequestParam.html#a0">~DNSRequestParam</a>() 4500037 { 4600038 <span class="preprocessor">#if(PV_DNS_IS_THREAD)</span> 4700039 <span class="preprocessor"></span> iLock.Close(); 4800040 iStartup.Close(); 4900041 <span class="preprocessor">#endif</span> 5000042 <span class="preprocessor"></span> } 5100043 5200044 <span class="keywordtype">void</span> <a class="code" href="classDNSRequestParam.html#a1">RemoveRef</a>(); 5300045 5400046 <span class="preprocessor">#if(PV_DNS_SERVER)</span> 5500047 <span class="preprocessor"></span> <span class="keywordtype">void</span> <a class="code" href="classDNSRequestParam.html#a2">InThread</a>(); 5600048 <span class="preprocessor">#endif</span> 5700049 <span class="preprocessor"></span> 5800050 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classDNSRequestParam.html#a3">Destroy</a>() = 0; 5900051 60<a name="l00052"></a><a class="code" href="classDNSRequestParam.html#m0">00052</a> <a class="code" href="group__osclio.html#a24">TPVDNSFxn</a> <a class="code" href="classDNSRequestParam.html#m0">iFxn</a>; 61<a name="l00053"></a><a class="code" href="classDNSRequestParam.html#m1">00053</a> <a class="code" href="classOsclDNSRequest.html">OsclDNSRequest</a> *<a class="code" href="classDNSRequestParam.html#m1">iDNSRequest</a>; 6200054 6300055 <span class="preprocessor">#if(PV_DNS_IS_THREAD)</span> 6400056 <span class="preprocessor"></span> <span class="keywordtype">bool</span> iThreadKillFlag; 6500057 <a class="code" href="classOsclMutex.html">OsclMutex</a> iLock; 6600058 <a class="code" href="classOsclSemaphore.html">OsclSemaphore</a> iStartup; 6700059 <span class="preprocessor">#endif</span> 6800060 <span class="preprocessor"></span> 6900061 7000062 <span class="keyword">protected</span>: 7100063 7200064 <a class="code" href="classDNSRequestParam.html#b0">DNSRequestParam</a>(<a class="code" href="group__osclio.html#a24">TPVDNSFxn</a> aFxn); 7300065 74<a name="l00066"></a><a class="code" href="classDNSRequestParam.html#n0">00066</a> uint32 <a class="code" href="classDNSRequestParam.html#n0">iRefCount</a>; 7500067 }; 7600068 7700069 7800070 <span class="comment">/*</span> 7900071 <span class="comment">** Parameters for GetHostByName request</span> 8000072 <span class="comment">*/</span> 81<a name="l00073"></a><a class="code" href="classGetHostByNameParam.html">00073</a> <span class="keyword">class </span><a class="code" href="classGetHostByNameParam.html">GetHostByNameParam</a>: <span class="keyword">public</span> <a class="code" href="classDNSRequestParam.html">DNSRequestParam</a> 8200074 { 8300075 <span class="keyword">public</span>: 8400076 8500077 <span class="comment">//Use this routine to create, use DNSRequestParam::RemoveRef when finished.</span> 8600078 <span class="keyword">static</span> <a class="code" href="classGetHostByNameParam.html">GetHostByNameParam</a>* <a class="code" href="classGetHostByNameParam.html#d0">Create</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="classOsclNetworkAddress.html">OsclNetworkAddress</a>* &addr); 8700079 8800080 <span class="comment">//from DNSRequestParam</span> 8900081 <span class="keywordtype">void</span> <a class="code" href="classGetHostByNameParam.html#a0">Destroy</a>(); 9000082 9100083 <a class="code" href="classGetHostByNameParam.html#a1">~GetHostByNameParam</a>(); 9200084 9300085 <span class="comment">//request params.</span> 94<a name="l00086"></a><a class="code" href="classGetHostByNameParam.html#m0">00086</a> <span class="keywordtype">char</span> *<a class="code" href="classGetHostByNameParam.html#m0">iName</a>; 95<a name="l00087"></a><a class="code" href="classGetHostByNameParam.html#m1">00087</a> <a class="code" href="classOsclNetworkAddress.html">OsclNetworkAddress</a> *<a class="code" href="classGetHostByNameParam.html#m1">iAddr</a>; 9600088 9700089 <span class="keyword">private</span>: 9800090 9900091 <a class="code" href="classGetHostByNameParam.html">GetHostByNameParam</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="classOsclNetworkAddress.html">OsclNetworkAddress</a>* &addr); 10000092 10100093 10200094 } ; 10300095 10400096 10500097 <span class="preprocessor">#endif</span> 10600098 <span class="preprocessor"></span> 107</pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small> 108<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small> 109</small></address> 110</body> 111</html> 112