Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

AsyncResolverGetHostByName.h

Go to the documentation of this file.
00001 /*  AsyncResolverGetHostByName.h - asynchronous gethostbyname
00002     Copyright (C) 2004 Mark Weaver
00003     Written by Mark Weaver <mark@npsl.co.uk>
00004 
00005     Part of the Open-Win32 library.
00006     This library is free software; you can redistribute it and/or
00007     modify it under the terms of the GNU Library General Public
00008     License as published by the Free Software Foundation; either
00009     version 2 of the License, or (at your option) any later version.
00010 
00011     This library is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014     Library General Public License for more details.
00015 
00016     You should have received a copy of the GNU Library General Public
00017     License along with this library; if not, write to the
00018     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00019     Boston, MA  02111-1307, USA.
00020 */
00021 
00022 /* Copyright 1998 by the Massachusetts Institute of Technology.
00023  *
00024  * Permission to use, copy, modify, and distribute this
00025  * software and its documentation for any purpose and without
00026  * fee is hereby granted, provided that the above copyright
00027  * notice appear in all copies and that both that copyright
00028  * notice and this permission notice appear in supporting
00029  * documentation, and that the name of M.I.T. not be used in
00030  * advertising or publicity pertaining to distribution of the
00031  * software without specific, written prior permission.
00032  * M.I.T. makes no representations about the suitability of
00033  * this software for any purpose.  It is provided "as is"
00034  * without express or implied warranty.
00035  */
00036 
00041 #ifndef OW32_AsyncResolverGetHostByName_h
00042 #define OW32_AsyncResolverGetHostByName_h
00043 
00044 #include <OW32/AsyncResolverSearch.h>
00045 
00046 namespace OW32
00047 {
00048 
00053 class OW32_LIB_EXPORT CAsyncResolverGetHostByName : 
00054     public CAsyncResolverCallback
00055 {
00056 public:
00064     CAsyncResolverGetHostByName(CAsyncResolver *pParent, CAsyncResolverHostCallback *pCallback, void *callbackContext = NULL) :
00065         m_pParent(pParent),
00066         m_pCallback(pCallback),
00067         m_callbackContext(callbackContext),
00068         m_lookup(0)
00069     {
00070     }
00071 
00081     void gethostbyname(const char *name, int family);
00082 
00091     virtual void OnAnswer(void *context, AsyncResolverError status, unsigned char *abuf, size_t alen);
00092 
00093 private:
00095     CAsyncResolverGetHostByName(const CAsyncResolverGetHostByName &);
00096     CAsyncResolverGetHostByName& operator=(const CAsyncResolverGetHostByName &);
00097 
00099     void nextLookup();
00100 
00102     AsyncResolverError parse_a_reply(const unsigned char *abuf, size_t alen,
00103                struct hostent **host);
00105     int fake_hostent(const char *name);
00106 
00108     std::string                 m_name;
00110     size_t                      m_lookup;
00112     CAsyncResolver              *m_pParent;
00114     CAsyncResolverHostCallback  *m_pCallback;
00116     void                        *m_callbackContext;
00117 };
00118 
00119 } // namespace OW32
00120 
00121 #endif // OW32_AsyncResolverGetHostByName_h

Generated on Sun Jun 5 01:29:17 2005 for OW32 by  doxygen 1.3.9.1