[+] custom client properties

This commit is contained in:
fuCtor 2012-05-28 03:01:49 -07:00
parent 8fb83ba1a4
commit 1f2aaec772
6 changed files with 44 additions and 2 deletions

View File

@ -169,6 +169,7 @@ void ClientPrivate::disconnect()
} }
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
@ -367,4 +368,14 @@ void QAMQP::Client::setAutoReconnect( bool value )
bool QAMQP::Client::isConnected() const bool QAMQP::Client::isConnected() const
{ {
return pd_func()->connection_->isConnected(); return pd_func()->connection_->isConnected();
} }
void QAMQP::Client::addCustomProperty( const QString & name, const QString & value )
{
return pd_func()->connection_->addCustomProperty(name, value);
}
QString QAMQP::Client::customProperty( const QString & name ) const
{
return pd_func()->connection_->customProperty(name);
}

View File

@ -40,6 +40,9 @@ namespace QAMQP
void printConnect() const; void printConnect() const;
void closeChannel(); void closeChannel();
void addCustomProperty(const QString & name, const QString & value);
QString customProperty(const QString & name) const;
Exchange * createExchange(int channelNumber = -1); Exchange * createExchange(int channelNumber = -1);
Exchange * createExchange(const QString &name, int channelNumber = -1); Exchange * createExchange(const QString &name, int channelNumber = -1);

View File

@ -8,6 +8,7 @@
#include <QCoreApplication> #include <QCoreApplication>
#include <QDebug> #include <QDebug>
#include <QDataStream> #include <QDataStream>
#include <QVariant>
using namespace QAMQP; using namespace QAMQP;
@ -29,6 +30,8 @@ namespace QAMQP
}; };
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
@ -62,6 +65,7 @@ void ConnectionPrivate::startOk()
clientProperties["version"] = QString(QAMQP_VERSION); clientProperties["version"] = QString(QAMQP_VERSION);
clientProperties["platform"] = QString("Qt %1").arg(qVersion()); clientProperties["platform"] = QString("Qt %1").arg(qVersion());
clientProperties["product"] = QString("QAMQP"); clientProperties["product"] = QString("QAMQP");
clientProperties.unite(customProperty);
QAMQP::Frame::serialize(stream, clientProperties); QAMQP::Frame::serialize(stream, clientProperties);
client_->pd_func()->auth_->write(stream); client_->pd_func()->auth_->write(stream);
@ -346,3 +350,18 @@ void Connection::setQOS( qint32 prefetchSize, quint16 prefetchCount )
{ {
pd_func()->setQOS(prefetchSize, prefetchCount, 0, true); pd_func()->setQOS(prefetchSize, prefetchCount, 0, true);
} }
void Connection::addCustomProperty( const QString & name, const QString & value )
{
pd_func()->customProperty[name] = value;
}
QString Connection::customProperty( const QString & name ) const
{
if(pd_func()->customProperty.contains(name))
{
return pd_func()->customProperty.value(name).toString();
}
return QString();
}

View File

@ -20,6 +20,10 @@ namespace QAMQP
public: public:
~Connection(); ~Connection();
void addCustomProperty(const QString & name, const QString & value);
QString customProperty(const QString & name) const;
void startOk(); void startOk();
void secureOk(); void secureOk();
void tuneOk(); void tuneOk();

View File

@ -47,6 +47,9 @@ namespace QAMQP
bool connected; bool connected;
Connection * const pq_ptr; Connection * const pq_ptr;
QAMQP::Frame::TableField customProperty;
}; };
} }
#endif // amqp_connection_p_h__ #endif // amqp_connection_p_h__

View File

@ -18,6 +18,7 @@ namespace QAMQP
ClientPrivate(Client * q ) ; ClientPrivate(Client * q ) ;
~ClientPrivate(); ~ClientPrivate();
void init(QObject * parent); void init(QObject * parent);
void init(QObject * parent, const QUrl & connectionString); void init(QObject * parent, const QUrl & connectionString);
void printConnect() const; void printConnect() const;
@ -45,5 +46,6 @@ namespace QAMQP
Client * const pq_ptr; Client * const pq_ptr;
}; };
} }
#endif // amqp_p_h__ #endif // amqp_p_h__