AMQP-CPP/src
DHP86 71abd6d1d1 Add type 'x' in Field::decode.
type 'x' means byte array (array of unsigned chars) so it is strictly not correct to return a LongString (array of signed chars). But with this change the library can continue going after receiving type 'x'. The original code crashes or starts doing undefined things when receiving a nonempty byte array from a client.
2025-06-23 14:58:32 +02:00
..
linux_tcp make sure threads are synchronized (fixes 474) 2022-08-09 23:10:07 +02:00
.gitignore restore ignore file for make. 2018-01-23 19:22:33 +01:00
CMakeLists.txt 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
Makefile include version number of amqp-cpp, longer product name, change order of platform info 2023-04-22 16:33:31 +02:00
array.cpp Replace shared_ptr by unique_ptr for Fields (#402) 2021-07-20 10:32:10 +02:00
basicackframe.h Replace old API with DeferredConfirm class 2018-05-14 21:12:34 +02:00
basiccancelframe.h 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
basiccancelokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
basicconsumeframe.h 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
basicconsumeokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
basicdeliverframe.h refactored handling of incoming messages from consume and get operations, to prepare for future handling of returned messages and publisher confirms. this also implies a small change to the api: the begin-callback when a message is received now also gets the original exchange and routing key (which could be useful) 2018-03-01 17:34:27 +01:00
basicframe.h 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
basicgetemptyframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
basicgetframe.h 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
basicgetokframe.h refactored handling of incoming messages from consume and get operations, to prepare for future handling of returned messages and publisher confirms. this also implies a small change to the api: the begin-callback when a message is received now also gets the original exchange and routing key (which could be useful) 2018-03-01 17:34:27 +01:00
basicheaderframe.h fixed crash because the wrong size was passed 2020-08-18 12:33:38 +02:00
basicnackframe.h Replace old API with DeferredConfirm class 2018-05-14 21:12:34 +02:00
basicpublishframe.h 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
basicqosframe.h Quality of service now supports "global" parameter (default is still false) 2014-08-07 11:00:05 +01:00
basicqosokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
basicrecoverasyncframe.h 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
basicrecoverframe.h 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
basicrecoverokframe.h 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
basicrejectframe.h 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
basicreturnframe.h 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
bodyframe.h renamed deferredconsumerbase into deferredreceiver, because it is not only a base class for the consumer, but also for other receiving operations: get requests and in the future also for returned messages 2018-02-27 05:08:21 +01:00
buffercheck.h 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
channel.cpp added Channel implementation file (fixes #267) 2018-11-25 12:46:12 +01:00
channelcloseframe.h work in progress on refactored tcp handling, to solve various issues, like the one that lost connections do not trigger operations to fail 2018-11-04 23:34:31 +01:00
channelcloseokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
channelflowframe.h Initial commit with the implementation of all methods apart from the publish and consume methods 2014-01-04 03:45:04 -08:00
channelflowokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
channelframe.h 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
channelimpl.cpp 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
channelopenframe.h added "override" keywords to overridden methods, fixed buffer overflow in setting up a connection 2015-11-28 11:38:15 +01:00
channelopenokframe.h 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
confirmframe.h convert dos line endings 2020-09-24 12:30:04 +02:00
confirmselectframe.h convert dos line endings 2020-09-24 12:30:04 +02:00
confirmselectokframe.h convert dos line endings 2020-09-24 12:30:04 +02:00
connectionblockframe.h implement tcp handler and pass reason to callback 2023-07-03 13:05:09 +02:00
connectioncloseframe.h work in progress on refactored tcp handling, to solve various issues, like the one that lost connections do not trigger operations to fail 2018-11-04 23:34:31 +01:00
connectioncloseokframe.h 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
connectionframe.h Initial commit with the implementation of all methods apart from the publish and consume methods 2014-01-04 03:45:04 -08:00
connectionimpl.cpp Add check for _maxFrame > 0 2022-08-16 12:37:08 -04:00
connectionopenframe.h - Moved linux specific TCP implementation to a seperate folder and removed it from default build. Does not yet build correctly if you want that. 2018-01-23 16:47:53 +01:00
connectionopenokframe.h renamed ConnectionHandler::onConnectedO() to ConnectionHandler::onReady() 2018-11-08 08:34:58 +01:00
connectionsecureframe.h - Moved linux specific TCP implementation to a seperate folder and removed it from default build. Does not yet build correctly if you want that. 2018-01-23 16:47:53 +01:00
connectionsecureokframe.h - Moved linux specific TCP implementation to a seperate folder and removed it from default build. Does not yet build correctly if you want that. 2018-01-23 16:47:53 +01:00
connectionstartframe.h code layout 2023-08-24 21:47:31 +02:00
connectionstartokframe.h - Moved linux specific TCP implementation to a seperate folder and removed it from default build. Does not yet build correctly if you want that. 2018-01-23 16:47:53 +01:00
connectiontuneframe.h clients can now intercept the heartbeat negotiation, and install a shorter of longer heartbeat interval, and clients can be notified for received heartbeat frames 2015-12-02 10:46:55 +01:00
connectiontuneokframe.h 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
connectionunblockframe.h implemented connection.blocked handling and callbacks 2023-07-03 11:41:02 +02:00
deferredcancel.cpp 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
deferredconfirm.cpp Change windows line endings to unix ones and fix whitespace (spaces not tabs). 2020-10-05 15:44:33 +02:00
deferredconsumer.cpp refactored handling of incoming messages from consume and get operations, to prepare for future handling of returned messages and publisher confirms. this also implies a small change to the api: the begin-callback when a message is received now also gets the original exchange and routing key (which could be useful) 2018-03-01 17:34:27 +01:00
deferredextreceiver.cpp breaking changes: 2018-03-01 21:12:53 +01:00
deferredget.cpp now we always flush when a success is reported, and the funcction is renamed to flush 2019-06-19 10:54:50 +02:00
deferredrecall.cpp 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
deferredreceiver.cpp breaking changes: 2018-03-01 21:12:53 +01:00
exchangebindframe.h 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
exchangebindokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
exchangedeclareframe.h 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
exchangedeclareokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
exchangedeleteframe.h 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
exchangedeleteokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
exchangeframe.h Initial commit with the implementation of all methods apart from the publish and consume methods 2014-01-04 03:45:04 -08:00
exchangeunbindframe.h 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
exchangeunbindokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
extframe.h make sure compilers dont complain about unused parameters 2022-07-24 01:18:07 +03:00
field.cpp Add type 'x' in Field::decode. 2025-06-23 14:58:32 +02:00
flags.cpp fixed autodelete flag for declaring an exchange and added support for internal exchange. this fixes #183 2018-02-06 21:54:56 +01:00
headerframe.h 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
heartbeatframe.h added connection::heartbeat() method, userspace programs are responsible for calling this method once every 60 seconds 2017-06-16 10:14:42 +01:00
inbuffer.cpp when retrieving data from an inbuffer, no longer restrict ourselves to uint32 2022-04-25 11:16:57 +02:00
includes.h {auto} renamed confirmed to tagger and added unacknowledged counter' 2020-10-21 11:50:34 +02:00
methodframe.h make sure compilers dont complain about unused parameters 2022-07-24 01:18:07 +03:00
passthroughbuffer.h fixed copy and move constructors of the PassthroughBuffer (fixes #418) 2021-08-10 14:24:04 +02:00
platformname.h include version number of amqp-cpp, longer product name, change order of platform info 2023-04-22 16:33:31 +02:00
programname.h add robustness 2023-08-24 21:46:39 +02:00
protocolheaderframe.h it now is possible to publish messages to an exchange with this library 2014-01-05 04:08:35 -08:00
queuebindframe.h 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
queuebindokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
queuedeclareframe.h 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
queuedeclareokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
queuedeleteframe.h 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
queuedeleteokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
queueframe.h Initial commit with the implementation of all methods apart from the publish and consume methods 2014-01-04 03:45:04 -08:00
queuepurgeframe.h 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
queuepurgeokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
queueunbindframe.h 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
queueunbindokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
receivedframe.cpp implemented connection.blocked handling and callbacks 2023-07-03 11:41:02 +02:00
receivedframe.h 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
reducedbuffer.h added destructor of ReducedBuffer 2014-08-13 15:02:54 +02:00
returnedmessage.h 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
table.cpp Fix: cannot call size() on a moved-from Field 2021-07-01 13:48:10 +02:00
tagger.cpp small fix to AMQP::Tagger in case it gets destructed before the close-callbacks are called 2024-04-21 08:29:37 +02:00
throttle.cpp {auto} renamed confirmed to tagger and added unacknowledged counter' 2020-10-21 11:50:34 +02:00
transactioncommitframe.h 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
transactioncommitokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
transactionframe.h Initial commit with the implementation of all methods apart from the publish and consume methods 2014-01-04 03:45:04 -08:00
transactionrollbackframe.h 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
transactionrollbackokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
transactionselectframe.h 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
transactionselectokframe.h fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
watchable.cpp Initial commit with the implementation of all methods apart from the publish and consume methods 2014-01-04 03:45:04 -08:00