Commit Graph

185 Commits

Author SHA1 Message Date
Emiel Bruijntjes 9413c9d7aa support removal of properties from a message header 2023-04-12 08:25:00 +02:00
Emiel Bruijntjes 40456bbffb The libev example handler can now be given a priority 2023-04-12 08:16:40 +02:00
Emiel Bruijntjes cdcdaf79a3 added more constructors to AMQP::Envelope 2023-03-27 14:12:37 +02:00
Emiel Bruijntjes e841b3ff69 AMQP::Tagger now takes a std::string_view 2023-03-26 18:40:14 +02:00
Emiel Bruijntjes 48b9f05677 AMQP::Reliable::publish() now takes std::string_view + added extra constructor to AMQP::Envelope 2023-03-26 18:31:55 +02:00
Emiel Bruijntjes a37c354bea {auto} when wrapping a tagger around a channel that already has an error-callback installed, we should preserve the old callback 2023-02-23 11:06:15 +01:00
Emiel Bruijntjes 84a87d8f93 many methods in the Channel class now take a std::string_view instead of a std::string parameter, and are thus a bit more efficient 2023-02-13 10:27:51 +01:00
Emiel Bruijntjes 6ddabe4ead fix #489, Address::operator== is broken 2023-01-10 10:45:43 +01:00
Emiel Bruijntjes d1be1063a5 implemented "consumer cancel notifications" (see https://www.rabbitmq.com/consumer-cancel.html) 2022-11-23 22:09:15 +01:00
Emiel Bruijntjes c93f2d89ac when destructing a Tagger class, we now also unset the error-callback (closes #480), at the same time we changed the version number in the Makefile (closes #481) 2022-09-11 20:09:02 +02:00
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