WvStreams
|
00001 /* -*- Mode: C++ -*- 00002 * Worldvisions Weaver Software: 00003 * Copyright (C) 1997-2002 Net Integration Technologies, Inc. 00004 * 00005 * DNS name resolver with support for background lookups. 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 void pre_select(WvStringParm hostname, WvStream::SelectInfo &si); 00047 00049 bool post_select(WvStringParm hostname, WvStream::SelectInfo &si); 00050 }; 00051 00052 #endif // __WVRESOLVER_H