Commit Graph

47 Commits

Author SHA1 Message Date
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 055431de6e Fixed compilation issue due to recent changes in ChannelImpl 2017-03-03 12:56:54 +01:00
Emiel Bruijntjes d3c0ea293b better error message if channel is in an error state 2017-03-02 12:09:08 +01:00
David van Erkelens dddd16b74d Make sure single gets are processed correctly as well 2016-07-05 16:39:12 +02: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 66ade94fc0 moved the #pragma once statement 2015-11-01 10:48:13 +01: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 df6b8ae743 in reaction to pull request #21 the "const uint**_t" return values have been changed into "uint**_t" return values 2015-02-17 09:02:51 +01:00
Emiel Bruijntjes f23dc72a4f Fixed documentation, removed references to the ChannelHandler - an object that is no longer supported by AMQP-CPP 2015-01-26 14:47:30 +01:00
Emiel Bruijntjes 236dd02b13 fixed theoretical issue when deferredGet onSize() methods destructs the underlying channel object 2014-09-02 11:18:11 +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 6cc25c4b27 removed operator= from channels and connections 2014-08-29 13:24:24 +02:00
Emiel Bruijntjes d35dba71a1 disabled copy constructors for channel and connection objects, because the end-user is not supposed to copy them 2014-08-29 13:17:17 +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
Michael van der Werve 170ef1f82a when a channel is destructed during a success-callback, the program crashed, this has been fixed by using shared_ptr 2014-08-19 17:43:12 +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
Emiel Bruijntjes cac3247304 Quality of service now supports "global" parameter (default is still false) 2014-07-31 10:10:15 +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 e0b709fa63 in case of a connection error, we no longer call the channel wide error handler 2014-04-16 12:04:44 +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 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 3b78247363 error callbacks get a const char *, no longer a std::string 2014-04-15 12:29:22 +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
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
Luca Marturana 17be969d49 Add pragma once 2014-04-02 15:40:35 +02:00
Emiel Bruijntjes aba769f5cb monitor class moved from include directory to src 2014-01-06 13:34:54 -08:00
Emiel Bruijntjes a9e6045414 Removed and implemented many @todo tags from the source code, and added extra safety checks if some ignorant user decides to destruct channels or objects while they are still in use, implemented correct closing handshake for both connections and channels 2014-01-06 08:15:21 -08:00
Emiel Bruijntjes d1ab8b179a implemented returned messages 2014-01-06 06:49:31 -08:00
Emiel Bruijntjes efc556ee0a added support for recovering 2014-01-06 05:38:48 -08:00
Emiel Bruijntjes 5a636f5b57 Implemented nack/reject 2014-01-06 05:28:58 -08:00
Emiel Bruijntjes d1ae133f42 implemented channel.ack() method 2014-01-05 12:21:09 -08:00
Emiel Bruijntjes cf1cbfa551 implemented consuming, refactored a lot of code from cpp files to header files 2014-01-05 09:50:41 -08:00
Emiel Bruijntjes 5269f51a92 Implemented setting the quality of service (and it turns out that the prefetch size is not implemented in rabbitMQ, nor is setting the qos for the entire connection, so we have only implemented it for a channel) 2014-01-05 05:19:35 -08:00
Emiel Bruijntjes 9c1e44f512 First setup for implementing the publish method 2014-01-04 12:01:02 -08:00
Emiel Bruijntjes 7a6527dddf updated Makefile, removed vhost from Login object, now also the commit of the README file and the header files 2014-01-04 05:11:06 -08:00
Emiel Bruijntjes ea4f82ac8f Initial commit with the implementation of all methods apart from the publish and consume methods 2014-01-04 03:45:04 -08:00