Matt Broadstone
cab23c97cc
add support for cancelling a consumer
...
cancel method and cancelled signal added to Queue, added auto tests
to guarantee conditions surrounding the cancel process
2014-06-24 11:09:19 -04:00
Matt Broadstone
c43c2d6788
ensure consuming only occurs once per queue
...
a Queue can act as a consumer in QAMQP, but previously we did no checks
to ensure that a Queue sent a request to consume only once. This commit
adds API for checking and ensuring that this is the case. Also, I reverted
the changes to allow multiple consumer tags because this was incorrect.
Also included is a new signal "consuming" to notify when consumption occurs,
and auto tests have been updated to use this, as well as verify that it
can only occur once per-consumer
2014-06-24 10:30:05 -04:00
Matt Broadstone
4f808bef92
add publish options
...
- add publish options to Exchange (these need to move to a Basic abstraction)
- listen for bmReturn in Exchange to catch errors
- added auto tests to check behavior of an invalid mandatory publish
- cleaned up bit fields in exchange and queue
2014-06-23 15:36:03 -04:00
Matt Broadstone
cb52911bed
additional peer exceptions added
...
added a few cases where we should be raising peer exceptions when
delivered invalid frames from the server (per spec)
2014-06-19 13:36:11 -04:00
Matt Broadstone
1ae43ef4bd
change the way messages are received
...
Messages used to be "delivered" and pushed right onto the queue, which
is where the requirement for Message to be explicitly shared came from.
Now messages that are incomplete come in and are stored in a "currentMessage"
private member (there is a requirement that messages are delivered in this
fashion, by the spec). Once the message body has come in, it is put into
the local queue and the messageReceived signal is emitted.
Also, modified Queue to be able to track a number of consumer tags. This
was exposed by the "routing" tutorial, where a single consumer can bind
to a number of exchanges with a generated consumer tag. The previous example
did not run into this problem because it used an explicitly set consumer tag
and therefore there were no conflicts.
2014-06-19 10:01:47 -04:00
Matt Broadstone
bf21ebc246
refactor Message
...
message now provides an "isValid" property, data is implicitly shared now
2014-06-19 10:00:52 -04:00
Matt Broadstone
b5d77e17e3
revert reordering publish arguments
...
I originally changed the publishing arguments to take a routingKey first
which is pretty nonstandard across implementations. Reverting for
conformity.
2014-06-17 15:14:23 -04:00
Matt Broadstone
352669f392
added all tests around exchange declaration
2014-06-11 15:49:05 -04:00
Matt Broadstone
4a09094140
added autotest for invalid exchange declarations
2014-06-11 14:38:42 -04:00
Matt Broadstone
496e00abb9
move error constants to global namespace
2014-06-11 13:44:30 -04:00
Matt Broadstone
c2dad7d6bb
added RemoveOptions to Exchange, remove auto deletion (this should be handled by the AutoDelete option), and added
...
a test for an invalid remove(roIfUnused)
2014-06-10 21:41:28 -04:00
Matt Broadstone
8e2b66677d
add roForce to Queue, replace forceRemove
2014-06-10 21:27:59 -04:00
Matt Broadstone
566de2e4d4
spelling cleanups
2014-06-10 21:23:08 -04:00
Matt Broadstone
46e974aeb8
provide purged signal, other small cleanups
2014-06-10 13:04:57 -04:00
Matt Broadstone
4ff7683536
standardize MessageProperties throughout codebase
2014-06-10 09:16:04 -04:00
Matt Broadstone
4422924219
convert QAMQP::Queue to a proper QQueue subclass, move MessageProperties to QAMQP namespace
2014-06-10 09:05:42 -04:00
Matt Broadstone
55da181788
a little closer to proper tuning
2014-06-09 19:39:09 -04:00
Matt Broadstone
1510e1f6c6
provide access to tuning variables, add checks for frameMax per spec in a number of areas,
...
add an incomplete autotest for using connection tuning parameters
2014-06-09 19:27:24 -04:00
Matt Broadstone
223af56683
use consistent naming scheme for constants
2014-06-09 19:26:30 -04:00
Matt Broadstone
1d3f53ba60
clear buffer on forced disconnect, fatal disconnect on bad frame end, store tuning parameters
2014-06-09 16:01:23 -04:00
Matt Broadstone
613bd5ba96
make sure all errors have Error in the name
2014-06-09 15:10:22 -04:00
Matt Broadstone
50a588e678
allow for creation of a queue with no name, added auto test for validation
2014-06-09 14:07:13 -04:00
Matt Broadstone
60167321a9
add test for incompatible authentication mechanisms
2014-06-06 16:49:45 -04:00
Matt Broadstone
bea9204824
added qAmqpDebug to reduce debug messages during testing
2014-06-06 13:46:08 -04:00
Matt Broadstone
8599cec147
- added auto tests for binding to standard AMQP-defined exchanges
...
- removed name parameter from Queue::declare, reducing confusion. Updated manual test to reflect this change
2014-06-06 13:37:36 -04:00
Matt Broadstone
9b45f2ac58
- added auto tests for remove
...
- remove now takes flags rather than magical booleans
- fixed a bug delete -> deleteOk in QueuePrivate so we can listen for sync queue destruction
- added error signals to Client(Connection), and Channel
- removed automatic calls to remove a Queue when the channel is closed, or Queue is deleted
this behavior is already handled by the AutoDelete declare option
2014-06-06 12:10:51 -04:00
Matt Broadstone
75ebbec309
stubbed out an SslClient, no tests at all but it builds
2014-06-05 21:31:24 -04:00
Matt Broadstone
607af62b7a
added crude autotest for autoReconnect, made connect and disconnect private slots of Client
2014-06-05 16:09:52 -04:00
Matt Broadstone
d9d52e489a
Queue::messageReceived no longer passes the queue as a parameter (use sender() if you need it)
...
fixed qamqp manual test to send key before message
2014-06-05 15:44:14 -04:00
Matt Broadstone
01d792f38d
refactor Message to be explicitly shared class, rather than passing
...
shared pointers around directly
2014-06-05 15:37:41 -04:00
Matt Broadstone
73a1d1db36
organize which methods are related to which parts of the spec, try to figure
...
out what we're missing
2014-06-05 14:10:29 -04:00
Matt Broadstone
6f05bf5ef9
remove convenience bind methods from exchange, reducing the confusion about
...
how queues are actually bound to an exchange (not the other way around)
2014-06-04 23:44:07 -04:00
Matt Broadstone
eaee35df12
add a test for a default exchange to tst_QAMQPQueue
2014-06-04 10:24:45 -04:00
Matt Broadstone
1a769b2b48
rename ChannelPrivate::number -> channelNumber
2014-06-04 09:50:31 -04:00
Matt Broadstone
343609d884
move all frame handlers to private classes in an effort to make amqp_frame private
2014-06-04 09:46:15 -04:00
Matt Broadstone
80ba14136b
rename customProperty -> customProperties
2014-06-03 17:30:41 -04:00
Matt Broadstone
983eb60f76
fix delayed declarations for different exchange types
2014-06-03 16:33:43 -04:00
Matt Broadstone
d4b1824b46
merged Client Connection and Network classes, fixed a bug allowing for proper
...
connecting and disconnecting from a broker
2014-06-03 16:11:30 -04:00
Matt Broadstone
fde4bcf39a
overhauled tests, added TestCase class, made a few skeleton auto tests
2014-06-03 13:48:50 -04:00
Matt Broadstone
1198db2857
refactored Channel, changed some methods to better convey their intention
2014-06-03 13:00:25 -04:00
Matt Broadstone
128f350cf8
refactored QAMQP::Network to include a dptr, made whole class private as it is
...
not meant to be used externally (only used by Client internally)
2014-06-03 12:28:12 -04:00
Matt Broadstone
60bcfabe2b
refactor Connection into a private class, since it can only be created by a Client.
...
moved ConnectionPrivate methods into Connection
2014-06-03 11:50:24 -04:00
Matt Broadstone
9eabe0587e
refactored Connection to take a Network in the ctor
...
standardized variable names
decoupled Connection and Client (they are no longer friends)
2014-06-03 09:13:37 -04:00
Matt Broadstone
360e64b34b
add auto tests for standard exchange types
...
fixed a bug with reporting the removal of an exchange
added an ExchangeType enum for standard types
2014-06-02 11:00:04 -04:00
Matt Broadstone
4aa8397f2a
style fixes
2014-05-30 17:20:11 -04:00
Matt Broadstone
477cca3d69
moved publish from private to main class
2014-05-30 17:07:41 -04:00
Matt Broadstone
5bd2ebbde8
moved declare/remove from private to main class
2014-05-30 16:56:29 -04:00
Matt Broadstone
10ca783442
split binded to bound/unbound, replaced invokeMetaMethod with Q_EMIT
2014-05-30 15:40:38 -04:00
Matt Broadstone
93287a4836
moved declare/remove from QueuePrivate to Queue
2014-05-30 15:36:11 -04:00
Matt Broadstone
d8da64b373
merge QueuePrivate and Queue bind/unbind methods
2014-05-30 15:20:57 -04:00