/usr/include/root/TBonjourResolver.h is in libroot-net-bonjour-dev 5.34.14-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | // @(#)root/bonjour:$Id$
// Author: Fons Rademakers 29/05/2009
/*************************************************************************
* Copyright (C) 1995-2009, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TBonjourResolver
#define ROOT_TBonjourResolver
//////////////////////////////////////////////////////////////////////////
// //
// TBonjourResolver //
// //
// This class consists of one main member function, //
// ResolveBonjourRecord(), that resolves the service to an actual //
// IP address and port number. The rest of the class wraps the various //
// bits of Bonjour service resolver. The static callback function //
// is marked with the DNSSD_API macro to make sure that the callback //
// has the correct calling convention on Windows. //
// //
//////////////////////////////////////////////////////////////////////////
#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; } // used to get gTQSender
#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); //*SIGNAL*
void BonjourSocketReadyRead(); // private slot
ClassDef(TBonjourResolver,0) // Resolve Bonjour to actual IP address and port
};
#endif
|