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