aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppConfiguration.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-05-12 16:34:48 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-05-12 16:34:48 +0200
commite5517015d0e54b30b00cf1a7bbbb9336f536350c (patch)
tree81afdf7539a205437bfbe3d1e29cc7e29f1f34b6 /src/client/QXmppConfiguration.cpp
parentc84ed390a8630f1cf6a0f67138e5f19e2a14dbe6 (diff)
downloadqxmpp-e5517015d0e54b30b00cf1a7bbbb9336f536350c.tar.gz
make QXmppConfiguration use QSharedDataPointer
Diffstat (limited to 'src/client/QXmppConfiguration.cpp')
-rw-r--r--src/client/QXmppConfiguration.cpp183
1 files changed, 123 insertions, 60 deletions
diff --git a/src/client/QXmppConfiguration.cpp b/src/client/QXmppConfiguration.cpp
index 7f4f9818..3cf8b6fd 100644
--- a/src/client/QXmppConfiguration.cpp
+++ b/src/client/QXmppConfiguration.cpp
@@ -26,23 +26,79 @@
#include "QXmppConfiguration.h"
#include "QXmppUtils.h"
+class QXmppConfigurationPrivate : public QSharedData
+{
+public:
+ QXmppConfigurationPrivate();
+
+ QString host;
+ int port;
+ QString user;
+ QString password;
+ QString domain;
+ QString resource;
+
+ // Facebook
+ QString facebookAccessToken;
+ QString facebookAppId;
+
+ // default is false
+ bool autoAcceptSubscriptions;
+ // default is true
+ bool sendIntialPresence;
+ // default is true
+ bool sendRosterRequest;
+ // interval in seconds, if zero won't ping
+ int keepAliveInterval;
+ // interval in seconds, if zero won't timeout
+ int keepAliveTimeout;
+ // will keep reconnecting if disconnected, default is true
+ bool autoReconnectionEnabled;
+ bool useSASLAuthentication; ///< flag to specify what authentication system
+ ///< to be used
+ ///< defualt is true and use SASL
+ ///< false would use NonSASL if available
+ // default is true
+ bool ignoreSslErrors;
+
+ QXmppConfiguration::StreamSecurityMode streamSecurityMode;
+ QXmppConfiguration::NonSASLAuthMechanism nonSASLAuthMechanism;
+ QXmppConfiguration::SASLAuthMechanism SASLAuthMechanism;
+
+ QNetworkProxy networkProxy;
+
+ QList<QSslCertificate> caCertificates;
+};
+
+QXmppConfigurationPrivate::QXmppConfigurationPrivate()
+ : port(5222)
+ , resource("QXmpp")
+ , autoAcceptSubscriptions(false)
+ , sendIntialPresence(true)
+ , sendRosterRequest(true)
+ , keepAliveInterval(60)
+ , keepAliveTimeout(20)
+ , autoReconnectionEnabled(true)
+ , useSASLAuthentication(true)
+ , ignoreSslErrors(true)
+ , streamSecurityMode(QXmppConfiguration::TLSEnabled)
+ , nonSASLAuthMechanism(QXmppConfiguration::NonSASLDigest)
+ , SASLAuthMechanism(QXmppConfiguration::SASLDigestMD5)
+{
+}
+
/// Creates a QXmppConfiguration object.
-QXmppConfiguration::QXmppConfiguration() : m_port(5222),
- m_resource("QXmpp"),
- m_autoAcceptSubscriptions(false),
- m_sendIntialPresence(true),
- m_sendRosterRequest(true),
- m_keepAliveInterval(60),
- m_keepAliveTimeout(20),
- m_autoReconnectionEnabled(true),
- m_useSASLAuthentication(true),
- m_ignoreSslErrors(true),
- m_streamSecurityMode(QXmppConfiguration::TLSEnabled),
- m_nonSASLAuthMechanism(QXmppConfiguration::NonSASLDigest),
- m_SASLAuthMechanism(QXmppConfiguration::SASLDigestMD5)
+QXmppConfiguration::QXmppConfiguration()
+ : d(new QXmppConfigurationPrivate)
{
+}
+
+/// Creates a copy of \a other.
+QXmppConfiguration::QXmppConfiguration(const QXmppConfiguration &other)
+ : d(other.d)
+{
}
/// Destructor, destroys the QXmppConfiguration object.
@@ -50,7 +106,14 @@ QXmppConfiguration::QXmppConfiguration() : m_port(5222),
QXmppConfiguration::~QXmppConfiguration()
{
+}
+/// Assigns \a other to this QXmppConfiguration.
+
+QXmppConfiguration& QXmppConfiguration::operator=(const QXmppConfiguration &other)
+{
+ d = other.d;
+ return *this;
}
/// Sets the host name.
@@ -62,7 +125,7 @@ QXmppConfiguration::~QXmppConfiguration()
void QXmppConfiguration::setHost(const QString& host)
{
- m_host = host;
+ d->host = host;
}
/// Sets the domain name.
@@ -74,7 +137,7 @@ void QXmppConfiguration::setHost(const QString& host)
void QXmppConfiguration::setDomain(const QString& domain)
{
- m_domain = domain;
+ d->domain = domain;
}
/// Sets the port number.
@@ -85,7 +148,7 @@ void QXmppConfiguration::setDomain(const QString& domain)
void QXmppConfiguration::setPort(int port)
{
- m_port = port;
+ d->port = port;
}
/// Sets the username.
@@ -97,7 +160,7 @@ void QXmppConfiguration::setPort(int port)
void QXmppConfiguration::setUser(const QString& user)
{
- m_user = user;
+ d->user = user;
}
/// Sets the password.
@@ -107,7 +170,7 @@ void QXmppConfiguration::setUser(const QString& user)
void QXmppConfiguration::setPassword(const QString& password)
{
- m_password = password;
+ d->password = password;
}
/// Sets the resource identifier.
@@ -123,7 +186,7 @@ void QXmppConfiguration::setPassword(const QString& password)
void QXmppConfiguration::setResource(const QString& resource)
{
- m_resource = resource;
+ d->resource = resource;
}
/// Sets the JID. If a full JID (i.e. one with a resource) is given, calling
@@ -134,11 +197,11 @@ void QXmppConfiguration::setResource(const QString& resource)
void QXmppConfiguration::setJid(const QString& jid)
{
- m_user = QXmppUtils::jidToUser(jid);
- m_domain = QXmppUtils::jidToDomain(jid);
+ d->user = QXmppUtils::jidToUser(jid);
+ d->domain = QXmppUtils::jidToDomain(jid);
const QString resource = QXmppUtils::jidToResource(jid);
if (!resource.isEmpty())
- m_resource = resource;
+ d->resource = resource;
}
/// Returns the host name.
@@ -148,7 +211,7 @@ void QXmppConfiguration::setJid(const QString& jid)
QString QXmppConfiguration::host() const
{
- return m_host;
+ return d->host;
}
/// Returns the domain name.
@@ -158,7 +221,7 @@ QString QXmppConfiguration::host() const
QString QXmppConfiguration::domain() const
{
- return m_domain;
+ return d->domain;
}
/// Returns the port number.
@@ -168,7 +231,7 @@ QString QXmppConfiguration::domain() const
int QXmppConfiguration::port() const
{
- return m_port;
+ return d->port;
}
/// Returns the username.
@@ -178,7 +241,7 @@ int QXmppConfiguration::port() const
QString QXmppConfiguration::user() const
{
- return m_user;
+ return d->user;
}
/// Returns the password.
@@ -188,7 +251,7 @@ QString QXmppConfiguration::user() const
QString QXmppConfiguration::password() const
{
- return m_password;
+ return d->password;
}
/// Returns the resource identifier.
@@ -198,7 +261,7 @@ QString QXmppConfiguration::password() const
QString QXmppConfiguration::resource() const
{
- return m_resource;
+ return d->resource;
}
/// Returns the jabber id (jid).
@@ -209,10 +272,10 @@ QString QXmppConfiguration::resource() const
QString QXmppConfiguration::jid() const
{
- if (m_user.isEmpty())
- return m_domain;
+ if (d->user.isEmpty())
+ return d->domain;
else
- return jidBare() + "/" + m_resource;
+ return jidBare() + "/" + d->resource;
}
/// Returns the bare jabber id (jid), without the resource identifier.
@@ -223,17 +286,17 @@ QString QXmppConfiguration::jid() const
QString QXmppConfiguration::jidBare() const
{
- if (m_user.isEmpty())
- return m_domain;
+ if (d->user.isEmpty())
+ return d->domain;
else
- return m_user+"@"+m_domain;
+ return d->user+"@"+d->domain;
}
/// Returns the access token used for X-FACEBOOK-PLATFORM authentication.
QString QXmppConfiguration::facebookAccessToken() const
{
- return m_facebookAccessToken;
+ return d->facebookAccessToken;
}
/// Sets the access token used for X-FACEBOOK-PLATFORM authentication.
@@ -245,14 +308,14 @@ QString QXmppConfiguration::facebookAccessToken() const
void QXmppConfiguration::setFacebookAccessToken(const QString& accessToken)
{
- m_facebookAccessToken = accessToken;
+ d->facebookAccessToken = accessToken;
}
/// Returns the application ID used for X-FACEBOOK-PLATFORM authentication.
QString QXmppConfiguration::facebookAppId() const
{
- return m_facebookAppId;
+ return d->facebookAppId;
}
/// Sets the application ID used for X-FACEBOOK-PLATFORM authentication.
@@ -261,7 +324,7 @@ QString QXmppConfiguration::facebookAppId() const
void QXmppConfiguration::setFacebookAppId(const QString& appId)
{
- m_facebookAppId = appId;
+ d->facebookAppId = appId;
}
/// Returns the auto-accept-subscriptions-request configuration.
@@ -272,7 +335,7 @@ void QXmppConfiguration::setFacebookAppId(const QString& appId)
bool QXmppConfiguration::autoAcceptSubscriptions() const
{
- return m_autoAcceptSubscriptions;
+ return d->autoAcceptSubscriptions;
}
/// Sets the auto-accept-subscriptions-request configuration.
@@ -283,7 +346,7 @@ bool QXmppConfiguration::autoAcceptSubscriptions() const
void QXmppConfiguration::setAutoAcceptSubscriptions(bool value)
{
- m_autoAcceptSubscriptions = value;
+ d->autoAcceptSubscriptions = value;
}
/// Returns the auto-reconnect-on-disconnection-on-error configuration.
@@ -294,7 +357,7 @@ void QXmppConfiguration::setAutoAcceptSubscriptions(bool value)
bool QXmppConfiguration::autoReconnectionEnabled() const
{
- return m_autoReconnectionEnabled;
+ return d->autoReconnectionEnabled;
}
/// Sets the auto-reconnect-on-disconnection-on-error configuration.
@@ -305,7 +368,7 @@ bool QXmppConfiguration::autoReconnectionEnabled() const
void QXmppConfiguration::setAutoReconnectionEnabled(bool value)
{
- m_autoReconnectionEnabled = value;
+ d->autoReconnectionEnabled = value;
}
/// Returns whether SSL errors (such as certificate validation errors)
@@ -313,7 +376,7 @@ void QXmppConfiguration::setAutoReconnectionEnabled(bool value)
bool QXmppConfiguration::ignoreSslErrors() const
{
- return m_ignoreSslErrors;
+ return d->ignoreSslErrors;
}
/// Specifies whether SSL errors (such as certificate validation errors)
@@ -321,7 +384,7 @@ bool QXmppConfiguration::ignoreSslErrors() const
void QXmppConfiguration::setIgnoreSslErrors(bool value)
{
- m_ignoreSslErrors = value;
+ d->ignoreSslErrors = value;
}
/// Returns the type of authentication system specified by the user.
@@ -330,7 +393,7 @@ void QXmppConfiguration::setIgnoreSslErrors(bool value)
bool QXmppConfiguration::useSASLAuthentication() const
{
- return m_useSASLAuthentication;
+ return d->useSASLAuthentication;
}
/// Returns the type of authentication system specified by the user.
@@ -340,7 +403,7 @@ bool QXmppConfiguration::useSASLAuthentication() const
void QXmppConfiguration::setUseSASLAuthentication(bool useSASL)
{
- m_useSASLAuthentication = useSASL;
+ d->useSASLAuthentication = useSASL;
}
/// Returns the specified security mode for the stream. The default value is
@@ -349,7 +412,7 @@ void QXmppConfiguration::setUseSASLAuthentication(bool useSASL)
QXmppConfiguration::StreamSecurityMode QXmppConfiguration::streamSecurityMode() const
{
- return m_streamSecurityMode;
+ return d->streamSecurityMode;
}
/// Specifies the specified security mode for the stream. The default value is
@@ -359,7 +422,7 @@ QXmppConfiguration::StreamSecurityMode QXmppConfiguration::streamSecurityMode()
void QXmppConfiguration::setStreamSecurityMode(
QXmppConfiguration::StreamSecurityMode mode)
{
- m_streamSecurityMode = mode;
+ d->streamSecurityMode = mode;
}
/// Returns the Non-SASL authentication mechanism configuration.
@@ -369,7 +432,7 @@ void QXmppConfiguration::setStreamSecurityMode(
QXmppConfiguration::NonSASLAuthMechanism QXmppConfiguration::nonSASLAuthMechanism() const
{
- return m_nonSASLAuthMechanism;
+ return d->nonSASLAuthMechanism;
}
/// Hints the library the Non-SASL authentication mechanism to be used for authentication.
@@ -380,7 +443,7 @@ QXmppConfiguration::NonSASLAuthMechanism QXmppConfiguration::nonSASLAuthMechanis
void QXmppConfiguration::setNonSASLAuthMechanism(
QXmppConfiguration::NonSASLAuthMechanism mech)
{
- m_nonSASLAuthMechanism = mech;
+ d->nonSASLAuthMechanism = mech;
}
/// Returns the SASL authentication mechanism configuration.
@@ -390,7 +453,7 @@ void QXmppConfiguration::setNonSASLAuthMechanism(
QXmppConfiguration::SASLAuthMechanism QXmppConfiguration::sASLAuthMechanism() const
{
- return m_SASLAuthMechanism;
+ return d->SASLAuthMechanism;
}
/// Hints the library the SASL authentication mechanism to be used for authentication.
@@ -401,7 +464,7 @@ QXmppConfiguration::SASLAuthMechanism QXmppConfiguration::sASLAuthMechanism() co
void QXmppConfiguration::setSASLAuthMechanism(
QXmppConfiguration::SASLAuthMechanism mech)
{
- m_SASLAuthMechanism = mech;
+ d->SASLAuthMechanism = mech;
}
/// Specifies the network proxy used for the connection made by QXmppClient.
@@ -412,7 +475,7 @@ void QXmppConfiguration::setSASLAuthMechanism(
void QXmppConfiguration::setNetworkProxy(const QNetworkProxy& proxy)
{
- m_networkProxy = proxy;
+ d->networkProxy = proxy;
}
/// Returns the specified network proxy.
@@ -423,7 +486,7 @@ void QXmppConfiguration::setNetworkProxy(const QNetworkProxy& proxy)
QNetworkProxy QXmppConfiguration::networkProxy() const
{
- return m_networkProxy;
+ return d->networkProxy;
}
/// Specifies the interval in seconds at which keep alive (ping) packets
@@ -435,7 +498,7 @@ QNetworkProxy QXmppConfiguration::networkProxy() const
void QXmppConfiguration::setKeepAliveInterval(int secs)
{
- m_keepAliveInterval = secs;
+ d->keepAliveInterval = secs;
}
/// Returns the keep alive interval in seconds.
@@ -444,7 +507,7 @@ void QXmppConfiguration::setKeepAliveInterval(int secs)
int QXmppConfiguration::keepAliveInterval() const
{
- return m_keepAliveInterval;
+ return d->keepAliveInterval;
}
/// Specifies the maximum time in seconds to wait for a keep alive response
@@ -457,7 +520,7 @@ int QXmppConfiguration::keepAliveInterval() const
void QXmppConfiguration::setKeepAliveTimeout(int secs)
{
- m_keepAliveTimeout = secs;
+ d->keepAliveTimeout = secs;
}
/// Returns the keep alive timeout in seconds.
@@ -466,20 +529,20 @@ void QXmppConfiguration::setKeepAliveTimeout(int secs)
int QXmppConfiguration::keepAliveTimeout() const
{
- return m_keepAliveTimeout;
+ return d->keepAliveTimeout;
}
/// Specifies a list of trusted CA certificates.
void QXmppConfiguration::setCaCertificates(const QList<QSslCertificate> &caCertificates)
{
- m_caCertificates = caCertificates;
+ d->caCertificates = caCertificates;
}
/// Returns the a list of trusted CA certificates.
QList<QSslCertificate> QXmppConfiguration::caCertificates() const
{
- return m_caCertificates;
+ return d->caCertificates;
}