#ifndef ROOT_TBonjourResolver
#define ROOT_TBonjourResolver
#ifndef ROOT_TObject
#include "TObject.h"
#endif
#ifndef ROOT_TQObject
#include "TQObject.h"
#endif
#ifndef ROOT_TInetAddress
#include "TInetAddress.h"
#endif
#if !defined(__CINT__)
#include <dns_sd.h>
#else
typedef ULong_t DNSServiceRef;
typedef UInt_t DNSServiceFlags;
typedef Int_t DNSServiceErrorType;
#endif
class TFileHandler;
class TBonjourRecord;
class TBonjourResolver : public TObject, public TQObject {
private:
DNSServiceRef fDNSRef;
TFileHandler *fBonjourSocketHandler;
TInetAddress fHostAddress;
Int_t fPort;
TString fTXTRecord;
void *GetSender() { return this; }
#if !defined(__CINT__)
static void DNSSD_API BonjourResolveReply(DNSServiceRef, DNSServiceFlags, UInt_t,
DNSServiceErrorType,
const char *, const char *,
UShort_t, UShort_t, const char *, void *);
#else
static void BonjourResolveReply(DNSServiceRef, DNSServiceFlags, UInt_t,
DNSServiceErrorType,
const char *, const char *,
UShort_t, UShort_t, const char *, void *);
#endif
public:
TBonjourResolver();
virtual ~TBonjourResolver();
TInetAddress GetInetAddress() const { return fHostAddress; }
Int_t GetPort() const { return fPort; }
const char * GetTXTRecord() const { return fTXTRecord; }
Int_t ResolveBonjourRecord(const TBonjourRecord &record);
void RecordResolved(const TInetAddress *hostInfo, Int_t port);
void BonjourSocketReadyRead();
ClassDef(TBonjourResolver,0)
};
#endif