WvStreams
wvresolver.h
1 /* -*- Mode: C++ -*-
2  * Worldvisions Weaver Software:
3  * Copyright (C) 1997-2002 Net Integration Technologies, Inc.
4  *
5  * DNS name resolver with support for background lookups.
6  */
7 #ifndef __WVRESOLVER_H
8 #define __WVRESOLVER_H
9 
10 #include "wvaddr.h"
11 #include "wvstream.h"
12 #include "wvlinklist.h"
13 #include "wvhashtable.h"
14 
15 class WvResolverHost;
16 class WvResolverAddr;
17 
18 DeclareWvDict(WvResolverHost, WvString, name);
19 DeclareWvDict(WvResolverAddr, WvIPAddr, addr[0]);
20 
21 DeclareWvList(WvIPAddr);
22 
25 {
26  static int numresolvers;
27  static WvResolverHostDict *hostmap;
28  static WvResolverAddrDict *addrmap;
29 public:
30  WvResolver();
31  ~WvResolver();
32 
39  int findaddr(int msec_timeout, WvStringParm name,
40  WvIPAddr const **addr, WvIPAddrList *addrlist = NULL);
41  int findname(int msec_timeout, WvIPAddr *ipaddr, char **name);
42 
43  void clearhost(WvStringParm hostname);
44 
46  void pre_select(WvStringParm hostname, WvStream::SelectInfo &si);
47 
49  bool post_select(WvStringParm hostname, WvStream::SelectInfo &si);
50 };
51 
52 #endif // __WVRESOLVER_H