kextsocklookup.h
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
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;     
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
 
This file is part of the documentation for kdecore Library Version 3.2.0.