32 #ifndef ARNZEROCONF_HPP 33 #define ARNZEROCONF_HPP 38 #include <QHostAddress> 40 #include <QStringList> 42 #include <QAbstractSocket> 46 class QSocketNotifier;
128 QAbstractSocket::SocketType socketType()
const;
135 void setSocketType( QAbstractSocket::SocketType type);
141 QString serviceType()
const;
151 void setServiceType(
const QString& type);
157 QString domain()
const;
164 void setDomain(
const QString& domain);
179 QString fullServiceType()
const;
182 QByteArray escapedFullDomain()
const;
193 QStringList subTypes()
const;
201 void setSubTypes(
const QStringList& subTypes);
208 void addSubType(
const QString& subType);
214 quint16 port()
const;
222 void setPort( quint16 port);
228 QString serviceName()
const;
236 void setServiceName(
const QString& name);
244 QString host()
const;
252 void setHost(
const QString& host);
280 QHostAddress hostAddr()
const;
286 void setHostAddr(
const QHostAddress &hostAddr);
296 QByteArray txtRecord()
const;
305 void setTxtRecord(
const QByteArray& txt);
310 static int getNextId();
312 void parseFullDomain(
const QByteArray& domainName);
314 static QByteArray escapedName(
const QByteArray& name);
316 QString _serviceName;
318 QAbstractSocket::SocketType _socketType;
319 QString _serviceType;
321 QHostAddress _hostAddr;
325 _DNSServiceRef_t* _sdRef;
326 QStringList _serviceSubTypes;
330 QSocketNotifier* _notifier;
333 static QAtomicInt _idCount;
368 friend class ArnZeroConfIntern;
398 QObject* parent = arnNullptr);
411 {
return ArnZeroConfB::subTypes();}
420 {ArnZeroConfB::setSubTypes( subtypes);}
428 {ArnZeroConfB::addSubType( subtype);}
435 {
return ArnZeroConfB::port();}
444 {ArnZeroConfB::setPort( port);}
455 {
return ArnZeroConfB::serviceName();}
465 QString currentServiceName()
const;
479 void setServiceName(
const QString& name);
488 {
return ArnZeroConfB::host();}
497 {ArnZeroConfB::setHost( host);}
510 {
return ArnZeroConfB::getTxtRecordMap( xsm);}
520 {ArnZeroConfB::setTxtRecordMap( xsm);}
531 {
return ArnZeroConfB::txtRecord();}
541 {ArnZeroConfB::setTxtRecord( txt);}
553 void registerService(
bool noAutoRename =
false);
559 void releaseService();
570 void registered(
const QString& serviceName);
576 void registrationError(
int code);
581 QString _currentServiceName;
618 friend class ArnZeroConfIntern;
644 ArnZeroConfResolve(
const QString& serviceName,
const QString& serviceType, QObject* parent = arnNullptr);
671 {
return ArnZeroConfB::host();}
677 {
return ArnZeroConfB::port();}
683 {
return ArnZeroConfB::serviceName();}
692 {ArnZeroConfB::setServiceName( name);}
704 {
return ArnZeroConfB::getTxtRecordMap( xsm);}
714 {
return ArnZeroConfB::txtRecord();}
727 void resolve(
bool forceMulticast =
false);
732 void releaseResolve();
740 void resolved(
int id,
const QByteArray& escFullDomain);
747 void resolveError(
int id,
int code);
750 void operationTimeout();
756 QTimer* _operationTimer;
785 friend class ArnZeroConfIntern;
825 {
return ArnZeroConfB::host();}
833 {ArnZeroConfB::setHost( host);}
839 {
return ArnZeroConfB::hostAddr();}
851 void lookup(
bool forceMulticast =
false);
856 void releaseLookup();
862 static bool isForceQtDnsLookup();
872 static void setForceQtDnsLookup(
bool isForceQtDnsLookup);
879 void lookuped(
int id);
886 void lookupError(
int id,
int code);
889 void operationTimeout();
890 void onIpLookup(
const QHostInfo& host);
896 QTimer* _operationTimer;
898 static bool _isForceQtDnsLookup;
938 friend class ArnZeroConfIntern;
971 void setSubType(
const QString& subtype);
984 QStringList activeServiceNames()
const;
991 int serviceNameToId(
const QString& name);
997 bool isBrowsing()
const;
1003 {
return ArnZeroConfB::getNextId();}
1011 void browse(
bool enable =
true);
1029 void serviceChanged(
bool isAdded,
int id,
const QString& serviceName,
const QString& domain);
1039 void serviceAdded(
int id,
const QString& serviceName,
const QString& domain);
1048 void serviceRemoved(
int id,
const QString& serviceName,
const QString& domain);
1054 void browseError(
int errorCode);
1059 QMap<QString,int> _activeServiceNames;
1062 #endif // ARNZEROCONF_HPP QString serviceName() const
Returns the service name for this Zero Config.
Registering a ZeroConfig service.
isAny(): Operation in progress
void setTxtRecordMap(const Arn::XStringMap &xsm)
Save a XStringMap with parameters to the Txt Record.
void setHost(const QString &host)
Set the host name for this Lookup.
static int getNextId()
Return the next id number for zero config objects.
QByteArray txtRecord() const
Return the Txt Record for this Zero Config.
void setPort(quint16 port)
Sets the port number for connecting to the service.
quint16 port() const
Returns the port number for connecting to the service.
QString serviceName() const
Returns the service name used for this resolv.
Container class with string representation for serialized data.
void setServiceName(const QString &name)
Set the service name used for this resolv.
Browsing for ZeroConfig services.
Ok, defined as kDNSServiceErr_NoError in dns_sd.h.
#define MQ_DECLARE_FLAGS(FEStruct)
Flags.
Base class for Zero Config.
QString host() const
Returns the host name for this resolv.
Registering service in progress.
Resolving service has finished sucessfully.
void setTxtRecord(const QByteArray &txt)
Set the Txt Record for this Zero Config.
QByteArray txtRecord() const
Return the Txt Record for this Zero Config.
void setSubTypes(const QStringList &subtypes)
Sets the list of current subtypes.
isAny(): Resolving service in progress or has finished sucessfully
QStringList subTypes() const
Returns the list of current subtypes.
void addSubType(const QString &subtype)
Add a subtype to the list of current subtypes.
#define MQ_DECLARE_OPERATORS_FOR_FLAGS(FEStruct)
struct _DNSServiceRef_t * DNSServiceRef
QHostAddress hostAddr() const
Returns the host address for this Lookup.
Lookup host has finished sucessfully.
bool getTxtRecordMap(Arn::XStringMap &xsm)
Load a XStringMap with parameters from the Txt Record.
States of ZeroConfig, limited valid for each ArnZeroConfB subclass / These values must be synced with...
void setHost(const QString &host)
Set the host name for this Zero Config.
Resolv a ZeroConfig service.
quint16 port() const
Returns the port number for connecting to the service.
Resolving service in progress.
QString host() const
Returns the host name for this Zero Config.
Browsing for service in progress.
#define ARNLIBSHARED_EXPORT
bool getTxtRecordMap(Arn::XStringMap &xsm)
Load a XStringMap with parameters from the Txt Record.
isAny(): Lookup host in progress or has finished sucessfully
#define MQ_DECLARE_ENUM(EStruct)
Enums.
Errors of ZeroConfig, other values are defined in dns_sd.h.
Registering service has finished sucessfully.
isAny(): Registering service in progress or has finished sucessfully
QString host() const
Returns the host name for this Lookup.