Main Page Modules Class Hierarchy Data Structures File List Data Fields Globals Related Pages

# oscl_dns_imp_base.h

Go to the documentation of this file.

    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