WvStreams
wvresolver.h
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