// SPDX-FileCopyrightText: 2023 Tibor Csötönyi // // SPDX-License-Identifier: LGPL-2.1-or-later #pragma once #include "QXmppGlobal.h" #include #include class QDateTime; class QDomElement; class QXmlStreamWriter; class QXmppExternalServicePrivate; class QXMPP_EXPORT QXmppExternalService { public: /// /// Describes the action type of an external service IQ. /// /// \since QXmpp 1.6 /// enum class Action { Add, Delete, Modify }; /// /// Describes the packet type of an external service IQ. /// /// \since QXmpp 1.6 /// enum class Transport { Tcp, Udp }; QXmppExternalService(); QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppExternalService) QString host() const; void setHost(const QString &); QString type() const; void setType(const QString &); std::optional action() const; void setAction(std::optional); std::optional expires() const; void setExpires(std::optional); std::optional name() const; void setName(std::optional); std::optional password() const; void setPassword(std::optional); std::optional port() const; void setPort(std::optional); std::optional restricted() const; void setRestricted(std::optional); std::optional transport() const; void setTransport(std::optional); std::optional username() const; void setUsername(std::optional); static bool isExternalService(const QDomElement &); void parse(const QDomElement &); void toXml(QXmlStreamWriter *) const; private: QSharedDataPointer d; };