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 00032 void CancelFxn(TPVDNSFxn); 00033 00034 protected: 00035 OsclDNSIBase(Oscl_DefAlloc &a); 00036 00037 Oscl_DefAlloc &iAlloc; 00038 00039 virtual bool IsReady(OsclDNSRequestAO& aObject) = 0; 00040 00041 virtual void CancelGetHostByName() = 0; 00042 00043 //link to socket server. 00044 OsclSocketServI *iSocketServ; 00045 00046 friend class OsclDNSRequest; 00047 friend class OsclGetHostByNameRequest; 00048 }; 00049 00050 #endif 00051 00052 00053