Commit Graph

400 Commits

Author SHA1 Message Date
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
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
Emiel Bruijntjes ee6ed20430 added more parameter-types to set properties in the envelope 2020-08-14 11:52:08 +02:00
Dmitriy Lekomtsev 6c87bcdcb8 Cleanup copy-pasted part 2020-07-29 19:07:44 +03: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
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 31e4a8596c The onFinalize() callback could be called more than once, which is not ok 2020-04-18 16:50:14 +02:00
Emiel Bruijntjes 79fe85cc0b added Channel::ready() method 2020-04-18 08:30:44 +02:00
Emiel Bruijntjes 599764ebb8 fix bug in Channel destructor for objects that were already moved 2020-03-13 09:21:26 +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
aljar 1e44e6b68b Fixed issue where the negotiate was overwritten by the handler and the connection was closed but still a timeout was triggered 2020-02-19 11:19:12 +01:00
Emiel Bruijntjes 949dc933eb fixed obvious typo in comment 2020-02-12 07:43:08 +01:00
LAD Martin 022bd87ac1 Adds channel callbacks checking 2019-11-05 13:39:45 +00: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
Michael van der Werve c82fce8ec9 fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +02:00
Michael van der Werve 19d82ed1f2 fixed issue where timer could set negative value in repeat if heavily delayed 2019-05-02 12:08:14 +02:00
Emiel Bruijntjes b4a67ac618 fixed dealing with timers in libev handler 2019-03-06 12:53:35 +01:00
thijs-blom a18e518ac8 when heartbeats were disabled, the event loop refcount would not be restored correctly after the timer expired. This has been fixed (#281) 2019-01-17 16:16:38 +01:00
Thijs Blom a3c68009e7 Give the server more time to send a heartbeat to make sure one missed heartbeat does not close the connection 2019-01-15 13:12:57 +01:00
Michael van der Werve 0857022bc4 ev_timer_again should be called after next has been reset 2019-01-10 15:59:57 +01:00
Emiel Bruijntjes 901298cd1c fixed libev handler: the heartbeat interval proposed by the server was not accepted 2018-12-17 16:19:40 +01:00
Emiel Bruijntjes 5d1d2c2852 fix timer that expired too early (fix #272) 2018-12-17 16:11:53 +01:00
Emiel Bruijntjes 1256c82d60 use std::list instead of std::vector 2018-12-14 00:07:19 +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
Moreno Carullo 3d1605009b This simple change allows the library to be compiled under FreeBSD. 2018-12-03 13:00:00 +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 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
Emiel Bruijntjes 549fec5cb1 libevhandler only checks for heartbeats if not overridden by user 2018-11-12 22:07:48 +01:00
Emiel Bruijntjes 888dc8c40b added channel::usable() to replace channel::connected() 2018-11-12 15:24:25 +01:00
Emiel Bruijntjes 6432ce2ec1 added connection::usable() 2018-11-12 15:19:31 +01:00
Emiel Bruijntjes a80847dc5e fixed a couple of todos, make sure that onError() is always called 2018-11-12 12:12:04 +01:00
Emiel Bruijntjes 6f81b0a097 when tcp connection is lost, the pending operations are now reported with an error 2018-11-11 23:46:58 +01:00
Emiel Bruijntjes 8d08916b8c fixed libev compiler errors 2018-11-11 22:58:13 +01:00
Emiel Bruijntjes d83e88b95d fixed the libev handler to be compatible with amqp-cpp 4.0, and we now also close the connection if the server stops sending heartbeats 2018-11-11 22:54:42 +01:00
Emiel Bruijntjes fc21b62852 disable timer in libboostasio because it cannot handle multiple connections, fixes #251 2018-11-11 22:51:41 +01:00
Emiel Bruijntjes e83a07f871 renamed onClosed to onLost to prevent confusion between TcpHandler::onClosed() and ConnectionHandler::onClosed() 2018-11-08 09:58:36 +01:00
Emiel Bruijntjes da6744bf4d renamed ConnectionHandler::onConnectedO() to ConnectionHandler::onReady() 2018-11-08 08:34:58 +01:00
Emiel Bruijntjes 06dc23190d added ConnectionHandler::onProperties and TcpConnectionHandler::onProperties 2018-11-07 23:22:25 +01:00
Emiel Bruijntjes f0ad90dd65 fixed compiler warning 2018-11-07 17:34:35 +01:00
Emiel Bruijntjes 428219ad83 simplified and improved the close procedure 2018-11-07 15:04:08 +01:00
Emiel Bruijntjes 64c876e65a removed support for TcpConnection::flush() and removed internal TcpShutdown state 2018-11-06 18:11:27 +01:00
Emiel Bruijntjes 9330231a69 fixed assigning the new state 2018-11-05 17:11:21 +01:00
Emiel Bruijntjes 54049f9e8e improved the tcp handler, added more methods to monitor whether a connection is connected, logged on and in an error state 2018-11-05 16:49:55 +01:00
Emiel Bruijntjes bb417e89c2 add support for ConnectionHandler::onAttached() and ConnectionHandler::onDetached() 2018-11-05 16:19:48 +01:00
Emiel Bruijntjes 359eec189f work in progress, simplified the tcp and ssl states 2018-11-05 16:18:20 +01:00
Emiel Bruijntjes b81bc340b5 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
Emiel Bruijntjes 62a4262a58 the TcpConnection::close() method now supports an "immediate" parameter to skip the official amqp handshake for closing down 2018-10-28 18:13:13 +01:00
Emiel Bruijntjes 8546f52cd0 added onAttached() and onDetached() to the TcpHandler interface 2018-10-28 10:22:01 +01:00
Emiel Bruijntjes c52e8ff0b2 added ConnectionHandler::onAttached() and ConnectionHandler::onDetached() methods 2018-10-28 10:04:34 +01:00
Emiel Bruijntjes c0241cac67
Merge pull request #195 from Aleksandrius/master
Fixed MinGW compilation on Windows
2018-10-27 12:52:52 +02:00
Emiel Bruijntjes 11af8a7f6b
Merge pull request #218 from RZRCDR/fix_msvc_compiler_warnings
Fix msvc compiler warnings
2018-10-27 12:52:07 +02:00
Youri Moll ba532e0434 onError should be overloaded by subclass, otherwise callback installers are no longer available for that class. 2018-09-21 12:26:23 +02:00
Michael van der Werve 757feb10c6 tcpchannel should also be movable 2018-08-31 15:01:10 +02:00
Michael van der Werve 31f6a18f37 channel should be movable 2018-08-31 14:44:19 +02:00
Peter A. Bigot 94bff62986 Monitor: avoid null pointer dereference when copying instances
When the copy constructor was added to allow passing a monitor by value
into a lambda the implementation did not account for the possibility of
the watchable having already been destroyed.

Also provide the companion copy assignment to complete the triad.
2018-06-24 10:31:21 -05:00
Emiel Bruijntjes 025fdb5530
Merge pull request #134 from mgibula/master
Add Publisher Confirms support
2018-05-14 22:42:56 +02:00
Marcin Gibula ddee073278 Add onAck and onNack methods 2018-05-14 21:40:30 +02:00
Marcin Gibula 1a955b39af Add deferredconfirm.h to amqpcpp.h 2018-05-14 21:35:08 +02:00
Marcin Gibula 76cf06d0ba Comment fix 2018-05-14 21:34:43 +02:00
Marcin Gibula 2aa55b83c7 Replace old API with DeferredConfirm class 2018-05-14 21:12:34 +02:00
Marcin Gibula bf1caa1eae Add DeferredConfirm class 2018-05-14 21:05:49 +02:00
Marcin Gibula a90c620709 Add BasicAckFrame and BasicNackFrame to class list 2018-05-14 21:05:07 +02:00
Marcin Gibula eeee1c3c5f Rename setConfirmMode() to confirmSelect() 2018-05-14 12:59:20 +02:00
Marcin Gibula e0b04ad7e0 Remove messageCounter() 2018-05-14 12:55:15 +02:00
Emiel Bruijntjes 976e948cb0 added comments 2018-05-11 11:58:55 +02:00
Mathias Devos 9bb20437d0 Fixed unused parameter warnings in header files 2018-05-11 08:52:43 +08:00
Dirkco du Plessis 5ec49d5b8a Added CountCallback to support 32bit unsigned int passed in defferedget. 2018-04-23 08:30:37 +01:00
Peter A. Bigot 4d34c582d0 numericfield: cleanup for floating point types
Rework so floating point values are supported to the same degree as
integer values.

Closes #214
2018-04-22 16:30:37 -05:00
Dirkco du Plessis 1479922901 Fix MSVC compile warning C4800 for bitwise operation resulting in int to boolean assignment.
Fix MSVC compile warning C4244 possible loss of data. Possible data loss from uint64_t to uint32_t.
2018-04-22 15:53:52 +01:00
Peter A. Bigot d0b5189d1e Envelope: ensure const objects cannot be changed through _body
In commit 00b81949d3 where Message and
Envelope objects were made uncopiable the Envelope _body member was
changed from const char * to char * and a const_cast introduced to
remove the qualifier from the pointer passed to the constructor.

This technically produces undefined behavior when constructing an
Envelope() to publish data from a const buffer.  It also risks future
bugs if a new subclass of Envelope mutates const objects through the
_body pointer.

Envelope does not need to support mutable or owned content.  Move this
capability down to Message which is used in restricted situations where
the body size is set once and its content built up piecewise.
2018-04-20 18:27:53 -05:00
Emiel Bruijntjes d857fbafde better comment for the channel::consume() call, the comment about the consumer tag was wrong (fixes #211) 2018-04-19 09:56:35 +02:00
theirix a624bc872c Added virtual dtor to OutBuffer 2018-04-18 15:46:46 +03:00
theirix 539128e559 Replaced C-casts with const_cast for Envelope::body_ 2018-04-18 14:59:35 +03:00
Aljar Meesters 1db6ed13a6 libev implementation was incorrect when one single handler was used to manage multiple connections 2018-04-12 12:05:22 +02:00
Marcin Gibula bfd91b6ab5 Merge with upstream 2018-04-10 10:30:01 +02:00