diff --git a/qamqp.pri b/qamqp.pri index 0e7a383..21c4c94 100644 --- a/qamqp.pri +++ b/qamqp.pri @@ -1,4 +1,4 @@ -QAMQP_VERSION = 0.5.0 +QAMQP_VERSION = 0.6.0 isEmpty(QAMQP_LIBRARY_TYPE) { QAMQP_LIBRARY_TYPE = shared @@ -8,7 +8,7 @@ QT += network QAMQP_INCLUDEPATH = $${PWD}/src QAMQP_LIBS = -lqamqp CONFIG(debug, debug|release){ - QAMQP_LIBS = -lqamqpd + win32:QAMQP_LIBS = -lqamqpd } contains(QAMQP_LIBRARY_TYPE, staticlib) { DEFINES += QAMQP_STATIC diff --git a/src/qamqpInterface.pri b/src/qamqpInterface.pri index d9ad075..af78e01 100644 --- a/src/qamqpInterface.pri +++ b/src/qamqpInterface.pri @@ -1,7 +1,8 @@ INCLUDEPATH += $${PWD} CONFIG(debug, debug|release){ - LIBS += -L$$PWD -lqamqpd + win32:LIBS += -L$$PWD -lqamqpd + unix:LIBS += -L$$PWD -lqamqp } else { LIBS += -L$$PWD -lqamqp } diff --git a/src/qamqpauthenticator.cpp b/src/qamqpauthenticator.cpp index 73e19ef..4486bb1 100644 --- a/src/qamqpauthenticator.cpp +++ b/src/qamqpauthenticator.cpp @@ -41,7 +41,7 @@ void QAmqpPlainAuthenticator::write(QDataStream &out) { QAmqpFrame::writeAmqpField(out, QAmqpMetaType::ShortString, type()); QAmqpTable response; - response["LOGIN"] = login_; - response["PASSWORD"] = password_; + response.insert("LOGIN", login_); + response.insert("PASSWORD", password_); out << response; } diff --git a/src/qamqpchannel.h b/src/qamqpchannel.h index 42fcef7..b687fb7 100644 --- a/src/qamqpchannel.h +++ b/src/qamqpchannel.h @@ -28,7 +28,7 @@ class QAMQP_EXPORT QAmqpChannel : public QObject Q_OBJECT Q_PROPERTY(int number READ channelNumber CONSTANT) Q_PROPERTY(bool open READ isOpen CONSTANT) - Q_PROPERTY(QString name READ name WRITE setName) + Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) public: virtual ~QAmqpChannel(); @@ -61,6 +61,7 @@ public Q_SLOTS: void paused(); void error(QAMQP::Error error); void qosDefined(); + void nameChanged(const QString &name); protected: virtual void channelOpened() = 0; diff --git a/src/qamqpclient.cpp b/src/qamqpclient.cpp index 41a0a17..072fe60 100644 --- a/src/qamqpclient.cpp +++ b/src/qamqpclient.cpp @@ -528,9 +528,9 @@ void QAmqpClientPrivate::startOk() QDataStream stream(&arguments, QIODevice::WriteOnly); QAmqpTable clientProperties; - clientProperties["version"] = QString(QAMQP_VERSION); - clientProperties["platform"] = QString("Qt %1").arg(qVersion()); - clientProperties["product"] = QString("QAMQP"); + clientProperties.insert("version", QString(QAMQP_VERSION)); + clientProperties.insert("platform", QString("Qt %1").arg(qVersion())); + clientProperties.insert("product", QString("QAMQP")); clientProperties.unite(customProperties); stream << clientProperties; diff --git a/src/qamqpclient.h b/src/qamqpclient.h index 8b2aa86..78f8d1c 100644 --- a/src/qamqpclient.h +++ b/src/qamqpclient.h @@ -33,15 +33,15 @@ class QAmqpClientPrivate; class QAMQP_EXPORT QAmqpClient : public QObject { Q_OBJECT - Q_PROPERTY(quint32 port READ port WRITE setPort) - Q_PROPERTY(QString host READ host WRITE setHost) - Q_PROPERTY(QString virtualHost READ virtualHost WRITE setVirtualHost) - Q_PROPERTY(QString user READ username WRITE setUsername) - Q_PROPERTY(QString password READ password WRITE setPassword) - Q_PROPERTY(bool autoReconnect READ autoReconnect WRITE setAutoReconnect) - Q_PROPERTY(qint16 channelMax READ channelMax WRITE setChannelMax) - Q_PROPERTY(qint32 frameMax READ frameMax WRITE setFrameMax) - Q_PROPERTY(qint16 heartbeatDelay READ heartbeatDelay() WRITE setHeartbeatDelay) + Q_PROPERTY(quint32 port READ port WRITE setPort NOTIFY portChanged) + Q_PROPERTY(QString host READ host WRITE setHost NOTIFY hostChanged) + Q_PROPERTY(QString virtualHost READ virtualHost WRITE setVirtualHost NOTIFY virtualHostChanged) + Q_PROPERTY(QString user READ username WRITE setUsername NOTIFY userChanged) + Q_PROPERTY(QString password READ password WRITE setPassword NOTIFY passwordChanged) + Q_PROPERTY(bool autoReconnect READ autoReconnect WRITE setAutoReconnect NOTIFY autoReconnectChanged) + Q_PROPERTY(qint16 channelMax READ channelMax WRITE setChannelMax NOTIFY channelMaxChanged) + Q_PROPERTY(qint32 frameMax READ frameMax WRITE setFrameMax NOTIFY frameMaxChanged) + Q_PROPERTY(qint16 heartbeatDelay READ heartbeatDelay() WRITE setHeartbeatDelay NOTIFY heartbeatDelayChanged) public: explicit QAmqpClient(QObject *parent = 0); @@ -119,6 +119,16 @@ class QAMQP_EXPORT QAmqpClient : public QObject void socketStateChanged(QAbstractSocket::SocketState state); void sslErrors(const QList &errors); + void portChanged(int); + void hostChanged(const QString &); + void virtualHostChanged(const QString &); + void userChanged(const QString &); + void passwordChanged(const QString &); + void autoReconnectChanged(bool value); + void channelMaxChanged(qint16 channelMax); + void frameMaxChanged(qint32 frameMax); + void heartbeatDelayChanged(qint16 delay); + public Q_SLOTS: void ignoreSslErrors(const QList &errors); diff --git a/src/qamqpexchange.h b/src/qamqpexchange.h index da16aff..8247913 100644 --- a/src/qamqpexchange.h +++ b/src/qamqpexchange.h @@ -31,7 +31,6 @@ class QAMQP_EXPORT QAmqpExchange : public QAmqpChannel Q_OBJECT Q_PROPERTY(QString type READ type CONSTANT) Q_PROPERTY(ExchangeOptions options READ options CONSTANT) - Q_ENUMS(ExchangeOptions) public: virtual ~QAmqpExchange(); @@ -68,6 +67,7 @@ class QAMQP_EXPORT QAmqpExchange : public QAmqpChannel }; Q_DECLARE_FLAGS(ExchangeOptions, ExchangeOption) ExchangeOptions options() const; + Q_ENUM(ExchangeOptions) bool isDeclared() const; @@ -83,11 +83,11 @@ class QAMQP_EXPORT QAmqpExchange : public QAmqpChannel public Q_SLOTS: // AMQP Exchange - void declare(ExchangeType type = Direct, - ExchangeOptions options = NoOptions, + void declare(QAmqpExchange::ExchangeType type = Direct, + QAmqpExchange::ExchangeOptions options = NoOptions, const QAmqpTable &args = QAmqpTable()); void declare(const QString &type, - ExchangeOptions options = NoOptions, + QAmqpExchange::ExchangeOptions options = NoOptions, const QAmqpTable &args = QAmqpTable()); void remove(int options = roIfUnused|roNoWait); diff --git a/src/qamqpframe.cpp b/src/qamqpframe.cpp index 2c4bf10..a2b2100 100644 --- a/src/qamqpframe.cpp +++ b/src/qamqpframe.cpp @@ -302,8 +302,11 @@ qint32 QAmqpContentFrame::size() const out << qlonglong(bodySize_); qint16 prop_ = 0; - foreach (int p, properties_.keys()) - prop_ |= p; + QHashIterator p(properties_); + while (p.hasNext()) { + p.next(); + prop_ |= p.key(); + } out << prop_; if (prop_ & QAmqpMessage::ContentType) diff --git a/src/qamqpglobal.h b/src/qamqpglobal.h index 138e8c8..c6729d0 100644 --- a/src/qamqpglobal.h +++ b/src/qamqpglobal.h @@ -61,7 +61,7 @@ # define QAMQP_EXPORT #endif -#define qAmqpDebug if (qgetenv("QAMQP_DEBUG").isEmpty()); else qDebug +#define qAmqpDebug if (qEnvironmentVariableIsEmpty("QAMQP_DEBUG")); else qDebug namespace QAmqpMetaType { diff --git a/src/qamqpqueue.h b/src/qamqpqueue.h index 324030c..f751487 100644 --- a/src/qamqpqueue.h +++ b/src/qamqpqueue.h @@ -32,12 +32,8 @@ class QAmqpQueuePrivate; class QAMQP_EXPORT QAmqpQueue : public QAmqpChannel, public QQueue { Q_OBJECT - Q_ENUMS(QueueOptions) Q_PROPERTY(int options READ options CONSTANT) - Q_PROPERTY(QString consumerTag READ consumerTag WRITE setConsumerTag) - Q_ENUMS(QueueOption) - Q_ENUMS(ConsumeOption) - Q_ENUMS(RemoveOption) + Q_PROPERTY(QString consumerTag READ consumerTag WRITE setConsumerTag NOTIFY consumerTagChanged) public: enum QueueOption { @@ -78,6 +74,11 @@ class QAMQP_EXPORT QAmqpQueue : public QAmqpChannel, public QQueue qint32 messageCount() const; qint32 consumerCount() const; + Q_ENUM(QueueOptions) + Q_ENUM(QueueOption) + Q_ENUM(ConsumeOption) + Q_ENUM(RemoveOption) + Q_SIGNALS: void declared(); void bound(); @@ -89,6 +90,7 @@ class QAMQP_EXPORT QAmqpQueue : public QAmqpChannel, public QQueue void empty(); void consuming(const QString &consumerTag); void cancelled(const QString &consumerTag); + void consumerTagChanged(const QString &consumerTag); public Q_SLOTS: // AMQP Queue diff --git a/src/qamqptable.cpp b/src/qamqptable.cpp index 6a63873..07548bc 100644 --- a/src/qamqptable.cpp +++ b/src/qamqptable.cpp @@ -363,7 +363,7 @@ QDataStream &operator>>(QDataStream &stream, QAmqpTable &table) qint8 octet = 0; QString field = QAmqpFrame::readAmqpField(tableStream, QAmqpMetaType::ShortString).toString(); tableStream >> octet; - table[field] = QAmqpTable::readFieldValue(tableStream, valueTypeForOctet(octet)); + table.insert(field, QAmqpTable::readFieldValue(tableStream, valueTypeForOctet(octet))); } return stream; diff --git a/src/qamqptable.h b/src/qamqptable.h index 454ee19..61023a3 100644 --- a/src/qamqptable.h +++ b/src/qamqptable.h @@ -22,12 +22,12 @@ #include "qamqpglobal.h" -class QAMQP_EXPORT QAmqpTable : public QVariantHash +class QAMQP_EXPORT QAmqpTable : public QMultiHash { public: QAmqpTable() {} - inline QAmqpTable(const QVariantHash &variantHash) - : QVariantHash(variantHash) + inline QAmqpTable(const QMultiHash &variantHash) + : QMultiHash(variantHash) { } diff --git a/src/src.pro b/src/src.pro index 6795364..dffc86f 100644 --- a/src/src.pro +++ b/src/src.pro @@ -4,7 +4,7 @@ INCLUDEPATH += . TEMPLATE = lib TARGET = qamqp build_pass:CONFIG(debug, debug|release) { - TARGET = $$join(TARGET,,,d) + win32:TARGET = $$join(TARGET,,,d) } QT += core network QT -= gui