Commit Graph

24 Commits

Author SHA1 Message Date
Matt Broadstone bdd9bae8ea refactor ValueType
moved ValueType from the QAMQP namespace to QAMQP::MetaType namespace
to avoid clashes with very generic enum strings
2014-08-26 14:02:43 -04:00
Matt Broadstone 0ccb3035cd move QAMQP::Frame to private API
QAMQP::Frame used to be public API mostly for MessageProperties. There
is no longer a need to keep this API public, as it should all be wrapped
with the cleaner Message/Queue/Exchange/Client API set
2014-08-26 09:57:08 -04:00
Matt Broadstone 0bc1c32bd8 add test for sharing a channel
Though it's not necessarily recommended (per spec), Channels can be
shared by multiple Exchanges and Queues. I've added a test here showing
that's possible with QAMQP
2014-08-08 17:09:52 -04:00
Matt Broadstone d5cc6258c6 refactor type handling in QAMQP
There are two distinctive type sets in AMQP, the basic AMQP types
and then the superset of Table value types. This commit attempts to
make that distinction more clear by the addition of a Table class.
Basically, AMQP value type read/write support is left in Frame for the
time being, while table value field read/write support has been moved
to the Table class. Also, a number of type differences exist between
the spec and rabbitmq's binary parser (noted in the errata page) which
were not previously honored.
2014-08-05 14:34:12 -04:00
Matt Broadstone 4ea3bdb851 don't store content message in Content frame
the message was being needlessly duplicated into the Content frame,
now we only store the size there to be sent out, rather than the whole
message

remove QAMQP prefix in authenticator
2014-08-05 14:34:03 -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 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 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 566de2e4d4 spelling cleanups 2014-06-10 21:23:08 -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 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 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 bea9204824 added qAmqpDebug to reduce debug messages during testing 2014-06-06 13:46:08 -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 983eb60f76 fix delayed declarations for different exchange types 2014-06-03 16:33:43 -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 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 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 c6d0c57d5f remove crufty unused functions, used constBegin/End for iterations, store itEnd during loop, various other cleanups 2014-05-30 14:33:24 -04:00
Matt Broadstone 64f23fd648 namespace cleanup 2014-05-28 14:58:18 -04:00
Matt Broadstone dbb03b9df4 move library files to src directory 2014-05-28 12:35:31 -04:00