Emiel Bruijntjes
ec327de396
less conservative caching of outgoing data. This fixes #184
2018-02-07 10:08:32 +01:00
Emiel Bruijntjes
f5540e9af2
fixed autodelete flag for declaring an exchange and added support for internal exchange. this fixes #183
2018-02-06 21:54:56 +01:00
Aart Stuurman
001dfaa7e0
- Moved linux specific TCP implementation to a seperate folder and removed it from default build. Does not yet build correctly if you want that.
...
- Fixed conversion warnings from <some integer> type to uint32_t, which happens a lot around here. This is no functional change, just making it explicit so the compiler doesn't warn.
2018-01-23 16:47:53 +01:00
Emiel Bruijntjes
a091921e88
added connection::heartbeat() method, userspace programs are responsible for calling this method once every 60 seconds
2017-06-16 10:14:42 +01:00
Emiel Bruijntjes
71eba4c5d3
prevent copying of buffers
2017-03-09 09:25:26 +01:00
Emiel Bruijntjes
1f5f641d8b
we now use passthrough buffers, so we no longer have to dynamically allocate a buffer for each and every outgoing message
2017-03-09 00:18:53 +01:00
Emiel Bruijntjes
00b81949d3
the AMQP::Message and AMQP::Envelope objects can now longer be copied or moved, and the signatures for creating an envelope and publishing a message have been made much more strict. This could be a API breaking change, to the version number should be upped
2017-03-08 13:32:51 +01:00
Okke
c6608cee0a
Added even more debug code for the channelimpl class
2017-03-07 10:10:11 +01:00
Okke
055431de6e
Fixed compilation issue due to recent changes in ChannelImpl
2017-03-03 12:56:54 +01:00
Martijn Otto
2c60151d31
Only allocate a message and its data when a consumer wants to and allow consumers to receive the individual parts
2016-06-23 14:42:50 +02:00
Emiel Bruijntjes
6320e2ae0e
added consistent-hash exchange (same as pull request #68 )
2016-06-15 11:20:31 -04:00
Emiel Bruijntjes
d41423d5db
Added TcpChannel class so that Connection and Channel class are once again completely protocol agnostic
2015-11-01 09:51:43 +01:00
Emiel Bruijntjes
df801953a1
improvements to work directly with tcp connections
2015-10-31 21:13:41 +01:00
Martijn Otto
a93b88697d
Fix double ready bug for channel, fixes #25
2015-05-18 10:56:50 +02:00
Emiel Bruijntjes
ad3b95741e
various trics and changes so that windows compilers, and 32bit systems will not complain about stuff
2015-04-24 10:46:44 +02:00
Emiel Bruijntjes
9653578d4a
The Channel.get().onFinalize() function was called before the Channel.get().onSuccess() method, which is strange. This has been fixed. To fix this, we had to refactor the Deferred* into shared_ptrs
2014-09-02 10:32:55 +02:00
Emiel Bruijntjes
8759258a3e
Channel::get() and Channel::purgeQueue() methods always reported an error, even while there was no error
2014-08-29 13:16:05 +02:00
Emiel Bruijntjes
c7b3f71f14
the connection.close function was only waiting for synchronous calls to complete, async calls that were waiting (after a synchronous) were still discarded, this has been fixed
2014-08-20 13:40:29 +02:00
Emiel Bruijntjes
d23e818f64
turns out that shared_from_this() can not be called from the constructor, so we made a special attach() function to postpone object initialization
2014-08-20 12:44:52 +02:00
Emiel Bruijntjes
6997a70cf1
when a connection was closed, the commands already given to the channels were sometimes by-passed by the closing channel. This has been fixed. Also solved the problem that calls executed on channel objects that fall out of scope were not always completed
2014-08-20 11:47:16 +02:00
Emiel Bruijntjes
328820f898
renamed apple.h to endian.h because it turns out that it is also used for linux systems, and removed double implemented ChannelImpl::get() function
2014-08-14 15:25:44 +02:00
Emiel Bruijntjes
3e47191f90
fixed apple incompatibility
2014-08-14 15:19:08 +02:00
Emiel Bruijntjes
37a51cdc7b
basic.get is asynchronous until the entire body has been received, only then subsequent messages are sent + first work in progress on implementing smarter buffers
2014-08-07 11:00:06 +01:00
Emiel Bruijntjes
b4270f39bc
added Channel::get() that allows one to retrieve a single message from the channel
2014-08-07 11:00:06 +01:00
Emiel Bruijntjes
f905c9db49
Quality of service now supports "global" parameter (default is still false)
2014-08-07 11:00:05 +01:00
Emiel Bruijntjes
e299aa5fac
basic.get is asynchronous until the entire body has been received, only then subsequent messages are sent + first work in progress on implementing smarter buffers
2014-08-01 11:55:07 +02:00
Emiel Bruijntjes
42514e80db
Merge branch 'master' of https://github.com/CopernicaMarketingSoftware/AMQP-CPP
2014-07-31 13:11:30 +02:00
Emiel Bruijntjes
f39410039b
added Channel::get() that allows one to retrieve a single message from the channel
2014-07-31 12:58:13 +02:00
Martijn Otto
f2f241665f
Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP
2014-07-31 10:17:15 +02:00
Martijn Otto
98aba8f638
Fix for issue #12
2014-07-31 10:16:55 +02:00
Emiel Bruijntjes
cac3247304
Quality of service now supports "global" parameter (default is still false)
2014-07-31 10:10:15 +02:00
Richard Hodges
d4b10cbf35
bug - negate the result of send() before using the result in a DeferredResult constructor
2014-07-30 15:29:05 +01:00
Richard Hodges
d2a97c1dd3
bugfix - fixes bug where channel declaration deferred object is put in fail state after successful send of data
...
refs #12
2014-07-30 09:39:20 +01:00
Emiel Bruijntjes
3a700226c8
BasicNack frame makes the consumer stop (dont know why) so we use the BackReject message instead when there is no need to reject multiple messages
2014-05-26 18:17:49 +02:00
Martijn Otto
a9570277b7
Removed the nowait option from the public interface, because the deferred would never be called and implemented a queue to wait for synchronous methods to complete before sending the next frame
2014-04-29 15:51:33 +02:00
Emiel Bruijntjes
1fecc57d67
when a connection gets in error state, all deferred results will now also call their error callback, and the channel wide error handler is called _after_ all individual error handlers are called
2014-04-16 09:25:08 +02:00
Emiel Bruijntjes
3d4a1b865e
removed some @todo tags
2014-04-15 13:22:06 +02:00
Emiel Bruijntjes
b13398b09d
setTimeout function removed from connection handler, the finalize and error callbacks are called right away if installed on an object that already is in an error state
2014-04-15 13:18:32 +02:00
Emiel Bruijntjes
60b59524e7
when an error is detected on a channel, all subsequent and cached deferred objects are notified about the error too
2014-04-15 13:14:16 +02:00
Emiel Bruijntjes
d08270701e
refactored dealing with error messages
2014-04-15 13:01:27 +02:00
Emiel Bruijntjes
ae7a32a8bf
when a consumer is cancelled, it is also removed from the map of active consumers in the the ChannelImpl object
2014-04-15 12:36:11 +02:00
Emiel Bruijntjes
301b8153e3
deferred objects are now correctly destructed + added extra checks so that no crashes occur when someone destructs a channel inside a callback function
2014-04-15 12:25:56 +02:00
Emiel Bruijntjes
745ab512a5
the consumer message callback can now also be installed via the Deferred objects, and it is no longer passed a consumer tag, because it already is obvious what the consumer tag is supposed to be
2014-04-15 11:39:52 +02:00
Emiel Bruijntjes
921f24ae06
de-templified the deferred objects, to make them easier to understand for other programmers
2014-04-15 10:43:33 +02:00
Emiel Bruijntjes
7b20f46519
removed channel parameter from the callbacks, because this can easily be captured
2014-04-15 08:52:49 +02:00
Martijn Otto
83621790f4
Give the connection object to the timeout as well
2014-04-14 15:31:15 +02:00
Martijn Otto
1c0495378a
Implemented deferred consumers and a setTimeout method on the connection handler for indicating immediate failures on deferred objects
2014-04-14 14:10:57 +02:00
Martijn Otto
d2c17869e0
Moved the remaining methods over to deferred handlers
2014-04-10 12:51:04 +02:00
Martijn Otto
e1b0e3dea1
Added a generic callback class that acts as a container for the different types of callbacks
2014-04-08 16:12:04 +02:00
Martijn Otto
2939272bc8
Work in progress to convert channel handler to callback system
2014-04-08 14:42:07 +02:00