00001 00002 00003 #ifndef OSCL_DNS_IMP_BASE_H_INCLUDED 00004 #define OSCL_DNS_IMP_BASE_H_INCLUDED 00005 00006 #include "oscl_socket_imp.h" 00007 #include "oscl_dns_request.h" 00008 #include "oscl_dns.h" 00009 00010 class OsclSocketServI; 00011 class GetHostByNameParam; 00012 class OsclDNSRequestAO; 00013 00018 class OsclDNSIBase 00019 { 00020 public: 00021 virtual ~OsclDNSIBase(); 00022 00023 //synchronous methods 00024 virtual int32 Open(OsclSocketServI& aServer) = 0; 00025 virtual int32 Close() = 0; 00026 00027 //asynchronous methods. 00028 00029 virtual void GetHostByName(GetHostByNameParam& , OsclDNSRequestAO&) = 0; 00030 virtual void GetHostByNameSuccess(GetHostByNameParam&) = 0; 00031 virtual bool GetHostByNameResponseContainsAliasInfo() = 0; 00032 virtual void GetNextHost(OsclDNSRequestAO&) = 0; 00033 virtual void GetNextHostSuccess(GetHostByNameParam&) = 0; 00034 void CancelFxn(TPVDNSFxn); 00035 00036 protected: 00037 OsclDNSIBase(Oscl_DefAlloc &a); 00038 00039 Oscl_DefAlloc &iAlloc; 00040 00041 virtual bool IsReady(OsclDNSRequestAO& aObject) = 0; 00042 00043 virtual void CancelGetHostByName() = 0; 00044 00045 //link to socket server. 00046 OsclSocketServI *iSocketServ; 00047 00048 friend class OsclDNSRequest; 00049 friend class OsclGetHostByNameRequest; 00050 }; 00051 00052 #endif 00053 00054 00055