00001
00002
00003
00004
00005
00006
00007 #ifndef __WVRESOLVER_H
00008 #define __WVRESOLVER_H
00009
00010 #include "wvaddr.h"
00011 #include "wvstream.h"
00012 #include "wvlinklist.h"
00013 #include "wvhashtable.h"
00014
00015 class WvResolverHost;
00016 class WvResolverAddr;
00017
00018 DeclareWvDict(WvResolverHost, WvString, name);
00019 DeclareWvDict(WvResolverAddr, WvIPAddr, addr[0]);
00020
00021 DeclareWvList(WvIPAddr);
00022
00024 class WvResolver
00025 {
00026 static int numresolvers;
00027 static WvResolverHostDict *hostmap;
00028 static WvResolverAddrDict *addrmap;
00029 public:
00030 WvResolver();
00031 ~WvResolver();
00032
00039 int findaddr(int msec_timeout, WvStringParm name,
00040 WvIPAddr const **addr, WvIPAddrList *addrlist = NULL);
00041 int findname(int msec_timeout, WvIPAddr *ipaddr, char **name);
00042
00043 void clearhost(WvStringParm hostname);
00044
00046 bool pre_select(WvStringParm hostname, WvStream::SelectInfo &si);
00047 };
00048
00049 #endif // __WVRESOLVER_H