00001 00002 00003 #ifndef OSCL_DNS_IMP_PV_H_INCLUDED 00004 #define OSCL_DNS_IMP_PV_H_INCLUDED 00005 00006 #include "oscl_socket_imp_base.h" 00007 #include "oscl_dns_request.h" 00008 #include "oscl_dns_imp_base.h" 00009 00010 class OsclSocketServI; 00011 00015 class OsclDNSI: public OsclDNSIBase 00016 { 00017 public: 00018 static OsclDNSI* NewL(Oscl_DefAlloc &a); 00019 ~OsclDNSI(); 00020 00021 //synchronous methods 00022 int32 Open(OsclSocketServI& aServer); 00023 int32 Close(); 00024 00025 //asynchronous methods. 00026 00027 void GetHostByName(GetHostByNameParam& , OsclDNSRequestAO&); 00028 void GetHostByNameSuccess(GetHostByNameParam&); 00029 void GetNextHost(OsclDNSRequestAO&); 00030 void GetNextHostSuccess(GetHostByNameParam&); 00031 bool GetHostByNameResponseContainsAliasInfo(); 00032 00033 private: 00034 OsclDNSI(Oscl_DefAlloc &a); 00035 00036 bool IsReady(OsclDNSRequestAO& aObject); 00037 00038 void CancelGetHostByName(); 00039 00040 friend class OsclDNSRequest; 00041 00042 //active requests 00043 OsclDNSRequest iGetHostByNameRequest; 00044 static void ProcessDnsRequest(GetHostByNameParam*, int32&, int32&); 00045 friend class OsclGetHostByNameRequest; 00046 00047 friend class DNSRequestParam; 00048 }; 00049 00050 #endif 00051 00052 00053