Commit Graph

326 Commits

Author SHA1 Message Date
Emiel Bruijntjes b7e9827e0c Renamed DeferredConfirmedPublish to DeferredPublish 2020-10-19 08:59:13 +02:00
Emiel Bruijntjes 31f2d78778 Breaking change: the channel.publish() method no longer returns a DeferredPublisher-object, because it was not logical that you had to reinstall the callbacks for bounce-methods after each individual publish() call, not was it logical that the callbacks were not always logically linked to the publish() operation that failed (they were always sent to the handler of the most recent publish() instead of to the handler of the failed publish()). At the same time we added a channel.recall() method that can be used to notify the library that user-space is prepared to recall/take-back/accept bounced messages 2020-10-19 08:52:50 +02:00
Michael van der Werve ad428fa629 fix the remnant 'waiting' on the channel after error 2020-10-15 10:07:24 +02:00
Michael van der Werve 5af76d874e empty queue on error 2020-10-15 09:35:27 +02:00
Emiel Bruijntjes 2e49fd1220
Merge pull request #345 from tarhan/master
Added Void field type
2020-10-14 21:02:12 +02:00
Michael van der Werve b368f9e635 bugfix; base handler was no longer (always) properly called 2020-10-14 11:21:02 +02:00
Michael van der Werve c58cb6748d onError handler can be set on throttle, and onError & onLost can also be set on messages sent via confirmed. 2020-10-12 12:02:04 +02:00
Michael van der Werve 0dc624a3e6 {auto} if there are no open messages, close channel directly 2020-10-07 16:12:15 +02:00
Michael van der Werve e227d1ed3a {auto} confirmed channel can now be closed correctly 2020-10-07 16:08:26 +02:00
Michael van der Werve 0b9f4e4af5 {auto} initial implementation of the confirmed wrapper 2020-10-07 11:49:38 +02:00
Michael van der Werve f10e861532
{auto} renamed the throttledchannel to AMQP::Throttle, since it is only a wrapper and not strictly a channel (#366) 2020-10-07 10:04:05 +02:00
Michael van der Werve 94bf5fe74b initial implementation 2020-10-06 15:14:42 +02:00
RafalGoslawski 42aec54333 Change windows line endings to unix ones and fix whitespace (spaces not tabs). 2020-10-05 15:44:33 +02:00
Michael van der Werve 103fa130f7 {auto} implement timeout on initial connection instead of being subjected to kernel 2020-09-29 13:51:54 +02:00
Michael van der Werve 2496dbbd4e make sure onLost and onDetached are always called 2020-09-28 16:37:12 +02:00
Bas van Berckel 0d42234a3d convert dos line endings 2020-09-24 12:30:04 +02:00
Emiel Bruijntjes 69026c31a3 fixed crash because the wrong size was passed 2020-08-18 12:33:38 +02:00
Emiel Bruijntjes 5d95ba824f moved the ReceivedFrame class to the src-directory, as it is of no use for userspace applications 2020-08-14 12:24:40 +02:00
Emiel Bruijntjes 92d21c5ddd the ReceivedFrame class has been split into a InBuffer base class to make it easier to store messages without having to construct a full frame, this commit adds the newly introduced classes 2020-08-14 12:20:58 +02:00
Emiel Bruijntjes b03cc6ff1c the ReceivedFrame class has been split into a InBuffer base class to make it easier to store messages without having to construct a full frame 2020-08-14 12:20:22 +02:00
Dmitriy Lekomtsev bc4b9aa163 Added setting nullptr for Table's key 2020-07-29 18:35:11 +03:00
Dmitriy Lekomtsev 1c4917bead Added Void field type 2020-07-29 16:21:28 +03:00
Michael van der Werve 1c08399ab0 valid file descriptors that can be closed are >= 0 2020-05-08 13:30:08 +02:00
Michael van der Werve ab0a292a0e file descriptor should not be monitored any more when the tcp connection is destructed. 2020-05-08 13:20:10 +02:00
Emiel Bruijntjes e7f76bc75d the TcpConnection class no longer calls back to userspace / to the user-supplied handler if user-space explicitly destructs the object 2020-04-30 21:41:41 +02:00
Emiel Bruijntjes a75b3d5d18 fix compiling on freebsd (fixes #300) 2020-04-20 17:34:41 +02:00
Emiel Bruijntjes da26b1112e prevent crash when channelimpl unregistered from the connectionimpl, (hopefully) fixes #299 and fixes #326 2020-03-13 09:44:29 +01:00
Emiel Bruijntjes f3ba779e67 deferred-chain was in kept in scope by a consumer-operation, this fixes #323 2020-02-28 12:45:45 +01:00
LAD Martin 022bd87ac1 Adds channel callbacks checking 2019-11-05 13:39:45 +00:00
Emiel Bruijntjes 5a648fe2d8
Merge pull request #298 from CopernicaMarketingSoftware/synchronous-fix
fix for incorrect handling of synchronous flag
2019-06-19 10:56:52 +02:00
Michael van der Werve 7b79b7c6e2 now we always flush when a success is reported, and the funcction is renamed to flush 2019-06-19 10:54:50 +02:00
Emiel Bruijntjes f107b4aa3e
Merge pull request #288 from metricq/master
fix access to free'd memory in case of errors
2019-06-19 10:49:43 +02:00
Michael van der Werve c82fce8ec9 fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
Peter A. Bigot a6930f5c36 linux_tcp/poll: fix undefined behavior in select
The select(2) system call on Linux now includes the restrict qualifier
on the fd_set pointers passed in, causing a diagnostic in gcc9 for the
call blocking for both read and write.  Pass a pointer to a temporary
copy of the set when two references are required.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2019-05-30 10:53:09 -05:00
tilsche d3f35fb524 fix duplicate _connection->remove call on ConnectionImpl objects that were already destroyed, but didn't detach in case of errors 2019-03-04 16:53:31 +01:00
weili-jiang fc22637578 Check pipe writes in linux_tcp to suppress Wunused-result in GCC 2019-02-05 08:33:28 +13:00
Emiel Bruijntjes e10fd61ac8 slightly prettified the code 2019-01-10 08:25:31 +01:00
Michael van der Werve a774e6c10c on ssl error, make sure that it is found out 2019-01-08 13:14:42 +01:00
Michael van der Werve 63d4acdce3 should be in working order now 2019-01-08 12:58:38 +01:00
Emiel Bruijntjes 20d4104d18
Merge pull request #271 from CopernicaMarketingSoftware/heartbeats
Implemented custom heartbeats in Livev
2018-12-13 23:41:20 +01:00
Youri Moll a92dc27653 Implemented custom heartbeats in Livev 2018-12-13 13:01:38 +01:00
Emiel Bruijntjes 03ca83cb50 handle case when tcp connection is lost during reading, that should report an error back to user-space too (fixes #266) 2018-12-03 08:29:17 +01:00
Emiel Bruijntjes d2e3792abc fixed issue when end-of-file was encountered, this fixes #266 2018-11-30 06:42:54 +01:00
Emiel Bruijntjes 53f994d61d when user calls connection.heartbeat() we now always send out the heartbeat (AMQP-CPP no longer tries to be smart about skipping heartbeats, because that could lead to timeouts if the user is a little late with its call, or when there is network congestion) 2018-11-28 13:52:00 +01:00
Emiel Bruijntjes ec31f5ad11 added Channel implementation file (fixes #267) 2018-11-25 12:46:12 +01:00
Emiel Bruijntjes 91a23d5737 Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP 2018-11-23 11:16:03 +01:00
Emiel Bruijntjes ee60aeb025 The Channel constructor now throws an exception if the max number of channels has been reached 2018-11-23 11:15:51 +01:00
Emiel Bruijntjes 799583ea39 Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP 2018-11-21 13:56:53 +01:00
Emiel Bruijntjes 8eed709988 Connection::fail() will now also call the channel::onError method 2018-11-21 13:56:44 +01:00
Emiel Bruijntjes 45ca61cc43 added TcpConnection::closed() 2018-11-14 14:15:52 +01:00