kdecore Library API Documentation

kextsocklookup.h

00001 /*
00002  *  This file is part of the KDE libraries
00003  *  Copyright (C) 2001,2002 Thiago Macieira <thiagom@mail.com>
00004  *
00005  *  This library is free software; you can redistribute it and/or
00006  *  modify it under the terms of the GNU Library General Public
00007  *  License as published by the Free Software Foundation; either
00008  *  version 2 of the License, or (at your option) any later version.
00009  *
00010  *  This library is distributed in the hope that it will be useful,
00011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013  *  Library General Public License for more details.
00014  *
00015  *  You should have received a copy of the GNU Library General Public License
00016  *  along with this library; see the file COPYING.LIB.  If not, write to
00017  *  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00018  *  Boston, MA 02111-1307, USA.
00019  */
00020 
00021 #ifndef KEXTSOCKLOOKUP_H
00022 #define KEXTSOCKLOOKUP_H
00023 
00024 #include <qdns.h>
00025 #include "kidna.h"
00026 #include "netsupp.h"
00027 
00039 class KExtendedSocketLookup: public QObject
00040 {
00041   Q_OBJECT
00042 public:
00043   QDns dnsIpv4, dnsIpv6;
00044   int workingCount;     // number of QDns at work
00045   const QString& servname;
00046   addrinfo hint;
00047 
00048   KExtendedSocketLookup(const QString& hostname, const QString& servname, const addrinfo& hint) :
00049     dnsIpv4(KIDNA::toAscii(hostname), QDns::A), dnsIpv6(KIDNA::toAscii(hostname), QDns::Aaaa), workingCount(2),
00050     servname(servname), hint(hint)
00051   {
00052     connect(&dnsIpv4, SIGNAL(resultsReady()), this, SLOT(slotResultsReady()));
00053     connect(&dnsIpv6, SIGNAL(resultsReady()), this, SLOT(slotResultsReady()));
00054   }
00055 
00056   inline bool isWorking() const
00057   { return workingCount; }
00058 
00059   kde_addrinfo *results();
00060   static void freeresults(kde_addrinfo* res);
00061 
00062 public slots:
00063   void slotResultsReady()
00064   {
00065     if (--workingCount == 0)
00066       emit resultsReady();
00067   }
00068 
00069 signals:
00070   void resultsReady();
00071 
00072 public:
00073   friend class KExtendedSocket;
00074 };
00075 
00076 #endif
KDE Logo
This file is part of the documentation for kdecore Library Version 3.2.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Mar 4 22:43:30 2004 by doxygen 1.3.6-20040222 written by Dimitri van Heesch, © 1997-2003