diff options
Diffstat (limited to '3rdparty/qqbonjour-src/BonjourServiceRegister.h')
-rw-r--r-- | 3rdparty/qqbonjour-src/BonjourServiceRegister.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/3rdparty/qqbonjour-src/BonjourServiceRegister.h b/3rdparty/qqbonjour-src/BonjourServiceRegister.h new file mode 100644 index 000000000..6b37749c3 --- /dev/null +++ b/3rdparty/qqbonjour-src/BonjourServiceRegister.h @@ -0,0 +1,69 @@ +/* +Copyright (c) 2007, Trenton Schulz +Copyright (c) 2009-2011, Stefan Hacker + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef MUMBLE_BONJOUR_SERVICE_REGISTER_H_ +#define MUMBLE_BONJOUR_SERVICE_REGISTER_H_ + +// Bonjour flags +#include <dns_sd.h> +#include <QtCore/QObject> + +#include "BonjourRecord.h" + +class QSocketNotifier; + +class BonjourServiceRegister : public QObject { + Q_OBJECT + public: + BonjourServiceRegister(QObject *p = 0); + ~BonjourServiceRegister(); + + void registerService(const BonjourRecord &record, quint16 servicePort); + inline BonjourRecord registeredRecord() const { + return finalRecord; + } + + signals: + void error(DNSServiceErrorType error); + void serviceRegistered(const BonjourRecord &record); + + private slots: + void bonjourSocketReadyRead(); + + private: + static void DNSSD_API bonjourRegisterService(DNSServiceRef sdRef, DNSServiceFlags, + DNSServiceErrorType errorCode, const char *name, + const char *regtype, const char *domain, + void *context); + DNSServiceRef dnssref; + QSocketNotifier *bonjourSocket; + BonjourRecord finalRecord; +}; + +#endif |