For build debug and release:
After you include qamqpInterface.pri,
you will link debug and release library depending on the current qmake build configuration.
With this .pri file, you can import this library by setting the variable QAMQP_HOME
You need to put include and lib files into same directory of qamqpInterface.pri.
include($${QAMQP_HOME}/qamqpInterface.pri)
We now track channels in QAmqpChannelHash for use across reconnects
however, the internal state of these channels was not being reset
when the connection was reestablished. This provides a way to do
that for not only channels, but both of its subclasses
When we initiate a Close, we get a CloseOk in response and on receipt of
the CloseOk, we mark the channel as closed and emit a signal to notify
everyone else.
Great. Now what happens when the server closes the channel? We emit a
CloseOk, then… nothing. We do nothing. This fixes this problem, moving
the notification/marking logic to a new function and calling that on
both Close (sent from server) and CloseOk.
- DON'T rely on sender()
- DON'T expect to be able to cast the QObject to a QAmqpChannel and have
name() work.
This isn't as efficient as I'd like, but it doesn't crash either.
How on earth did I expect that to work? Morning cup of tea hasn't
kicked in yet, of course I can't assign a const QString passed by
reference.
Fix egregious PEBKAC-caused compile error.
Since there will be probably many requests for that one. If we're
passed in QString() instead of QString(""), we overwrite that with the
latter to ensure the name field is never NULL.
Just discovered you *CAN* delete them yourself safely, and one of the
tests does. So best to not assume they'll get deleted by other parties.
QPointer takes care of this problem for us.
Previously if multiple attempts to call consume were made, then
QAmqpQueue would send a frame for each of them leading to multiple
consumer tags and general confusion. This guards from calling
consume multiple times.
On socket errors we always close the socket per amqp specification,
however there is no need to do so if the connection has already been
forcibly closed from the server side. This causes recursive loops
when using SSL connections
Provides an accessor and change signal for the state of QAmqpClients
internal ssl socket. This also defaults the internal socket to low
latency mode, as well as keep alive.
This gives an example of how you can use QMetaObject::invokeMethod to
call a QAmqpExchange from another thread. Also, moved the qRegisterMetaType
for QAmqpMessage::PropertyHash to the ctor of QAmqpClientPrivate
tuneOk was only properly tuning the heartbeat delay value for values
larger than the default delay sent by the server. This changes that
behavior to send back the requested heartbeat delay if one was provided