diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-05-12 16:34:48 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-05-12 16:34:48 +0200 |
| commit | e5517015d0e54b30b00cf1a7bbbb9336f536350c (patch) | |
| tree | 81afdf7539a205437bfbe3d1e29cc7e29f1f34b6 /src/client/QXmppConfiguration.cpp | |
| parent | c84ed390a8630f1cf6a0f67138e5f19e2a14dbe6 (diff) | |
| download | qxmpp-e5517015d0e54b30b00cf1a7bbbb9336f536350c.tar.gz | |
make QXmppConfiguration use QSharedDataPointer
Diffstat (limited to 'src/client/QXmppConfiguration.cpp')
| -rw-r--r-- | src/client/QXmppConfiguration.cpp | 183 |
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; } |
