Commit Graph

383 Commits

Author SHA1 Message Date
promero 0030bef793
Fixes #466 2022-07-07 11:52:17 +02:00
Sebastian Dietrich eedfc00660 Avoid compiler warnings about unused parameters 2022-04-30 23:05:31 +02:00
Sebastian Dietrich 1dd1c23fc7 Fix handling of large messages (larger than 2GB) 2022-04-28 21:10:07 +02:00
Emiel Bruijntjes 328d9d12de when retrieving data from an inbuffer, no longer restrict ourselves to uint32 2022-04-25 11:16:57 +02:00
Emiel Bruijntjes edd0bb7028 allow bigger bodies than fit in a uint32_t 2022-04-25 11:15:31 +02:00
Peter Eisenlohr 060e42a6dd don't call moved-from callbacks 2022-03-25 16:08:50 +01:00
Peter Eisenlohr fa1181aa63 Added const-ref wrappers to make changes backward-compatible. 2022-03-18 23:53:44 +01:00
Peter Eisenlohr 9c4cfffab8 std::move callbacks 2022-03-15 14:10:45 +01:00
Emiel Bruijntjes faa58852cb the LibEvHandler::monitor() class is no longer private-final to allow user-space programs to further enhance it 2022-01-13 10:16:33 +01:00
Matwey V. Kornilov 7aa321efb8 libboostasio: Reimplement heartbeats
Fixes: #251
2021-11-30 21:30:48 +03:00
Tony Roussel c83708e9bd add x-message-deduplication exchange type
This exchange type exist on RabbitMQ server with the plugin rabbitmq_message_deduplication
This plugin code is available here: https://github.com/noxdafox/rabbitmq-message-deduplication
2021-11-23 14:13:55 +01:00
Emiel Bruijntjes e1e83dfba6 when a very short heartbeat timer is installed, the timer did not expire soon enough (the default 60-second timeout was still used for the timer) PLUS when we detect a heartbeat-timeout, we now close the connection with immediate effect (because we do not trust the regular AMQP handshake to do anything, because it is also not respecting heartbeats 2021-09-20 12:47:56 +02:00
Raoul Wols 658da59a1b
Also start it again 2021-09-16 12:31:23 +02:00
Raoul Wols e36d8abcc9
Remove ev_timer_again calls
The documentation says about this function:

    If the timer is started but non-repeating, stop it (as if it timed out).

The timers are non-repeating, so we don't want this call.

https://linux.die.net/man/3/ev
2021-09-16 11:44:00 +02:00
Raoul Wols b25c3f3ea8
Use one-shot expirations instead of intervals for the libev backend 2021-09-06 12:08:18 +02:00
Raoul Wols 1d25f0acbc
Fixup sync handling for CopiedBuffer 2021-08-10 16:07:21 +02:00
Raoul Wols 819af12055
Replace shared_ptr by unique_ptr for Fields (#402)
There is no real purpose to using shared pointers it seems.
2021-07-20 10:32:10 +02:00
Raoul Wols e3678943cb
Monitor earlier in case flush() calls reportError. 2021-07-12 14:23:43 +02:00
Raoul Wols 0e6a1c52a9
Check if the callback is null again after flush()
The call to flush() may result in the _oldestCallback becoming a nullptr.
For instance, the SslConnected class might report an ssl error.
This causes the _oldestCallback to become null.
2021-07-12 12:51:47 +02:00
Raoul Wols ac91e954c2
Prefer make_shared over calling std::shared_ptr constructor 2021-07-01 11:54:43 +02:00
Emiel Bruijntjes 45775fefe8 avoid that multiple frames are sent by the channel-on-ready handler 2021-06-15 11:56:56 +02:00
Emiel Bruijntjes 3dbd045d06 allow user space programs to initialize the SSL structure before a connection is set up 2021-01-01 18:52:54 +01:00
Emiel Bruijntjes 79d8839ceb
Merge pull request #377 from BratSinot/BratSinot-patch-1
<boost/bind.hpp> is deprecated, using <boost/bind/bind.hpp>.
2020-10-27 08:02:52 +01:00
Aleksander e79912e812
<boost/bind.hpp> is deprecated, using <boost/bind/bind.hpp>. 2020-10-26 19:31:11 +03:00
Michael van der Werve ff30569cff {auto} fix to reliable class when publishing during ack/nack callback 2020-10-22 15:00:18 +02:00
Michael van der Werve cb4bcacc2f Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP 2020-10-21 14:59:20 +02:00
Michael van der Werve e09f043f4b missing =0 on flags 2020-10-21 14:56:03 +02:00
Michael van der Werve 295642cfcd {auto} renamed confirmed to tagger and added unacknowledged counter' 2020-10-21 11:50:34 +02:00
Michael van der Werve 2262d92938 {auto} disconnected explicit requirement of reliable and throttle 2020-10-21 10:36:39 +02:00
Emiel Bruijntjes aa42847570 added renamed DeferredPublish class (was DeferredConfirmedPublish) 2020-10-19 08:59:41 +02:00
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 ed62771667 fix nullptr_t compile error 2020-10-15 09:54:50 +02:00
Michael van der Werve 61f4cf244b fix voidfield issue 2020-10-15 09:41:59 +02:00
Emiel Bruijntjes 2e49fd1220
Merge pull request #345 from tarhan/master
Added Void field type
2020-10-14 21:02:12 +02:00
BratSinot 41019cb943 boost::placeholders in global namespace is deprecated. 2020-10-14 10:28:25 +03:00
BratSinot 93255e2de6 Switch from deprecated io_service to io_context. 2020-10-12 15:38:57 +03: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 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
Michael van der Werve 05059ec372 case insensitive comparisons 2020-10-05 15:43:36 +02:00
Emiel Bruijntjes 0686286b9e
Merge pull request #353 from CopernicaMarketingSoftware/address-params
Address optional parameters
2020-09-29 13:16:52 +02:00
Michael van der Werve 66faa8a925 add const char * option and allow parameters to address without vhost 2020-09-29 12:04:09 +02:00
Michael van der Werve 2496dbbd4e make sure onLost and onDetached are always called 2020-09-28 16:37:12 +02:00
Michael van der Werve 18d4a2cd56 {auto} parameters in the address 2020-09-28 15:48:45 +02:00
Bas van Berckel bcb1ba1361 exclude addresses.h from include file 2020-09-24 12:24:36 +02:00
Bas van Berckel 723470d6d6 add string/cstring constructors to addresses.h; add addresses.h to include file 2020-09-23 17:09:27 +02:00
Emiel Bruijntjes 96a6fa9a5c ability to store and retrieve envelopes 2020-08-17 15:16:24 +02:00