Emiel Bruijntjes
025fdb5530
Merge pull request #134 from mgibula/master
...
Add Publisher Confirms support
2018-05-14 22:42:56 +02:00
Marcin Gibula
cab0602dbf
Forgot to set ChannelImpl::_confirm
2018-05-14 22:36:49 +02:00
Marcin Gibula
578abbf973
Update src/CMakeLists.txt
2018-05-14 21:44:01 +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
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
5d69cc567c
more calls to openssl::err_clear_error() to prevent that the error queue contains errors that are not related to the operations that is being checked
2018-04-27 12:38:06 +02:00
Trevor Perrin
416e244b31
Clear SSL Error Queue
...
The OpenSSL documentation states that the error queue for the current
thread needs to be emptied prior to the next TLS/SSL I/O operation,
or the call to SSL_get_error() will not be reliable.
2018-04-26 15:50:32 -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
Marcin Gibula
bfd91b6ab5
Merge with upstream
2018-04-10 10:30:01 +02:00
Emiel Bruijntjes
69a201e741
optimizid dealing with ssl connections by not going back to the event loop that often, and prevented that object was staying in send state if it was endlessly sending data and not receiving anything, found this out when working on issue #207
2018-04-05 11:10:55 +02:00
Emiel Bruijntjes
b26058f3e2
renamed bytesQueued() to queued()
2018-04-01 22:34:15 +02:00
Mike Playle
8800d2917e
Add method to return the amount of queued outgoing data
2018-04-01 10:54:05 +01:00
tilsche
ec21091080
Make sure ssl files are included in the library and add missing libraries for linking the examples
2018-03-12 10:46:32 +01:00
Emiel Bruijntjes
f1c32242f7
Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP
2018-03-10 14:56:18 +01:00
Emiel Bruijntjes
d2b2d5af14
shared-ptr has been turned into a unique-ptr for the tcp-state
2018-03-10 14:55:57 +01:00
Emiel Bruijntjes
d81565fe6a
fixed that stream operator of address wrote the port number when the default amqps port was used
2018-03-10 10:31:40 +01:00
Emiel Bruijntjes
367de51d77
added method to intercept tls handshakes, and to verify certificates
2018-03-10 00:59:14 +01:00
Emiel Bruijntjes
4c2b8ff68e
added ability to set the handle to the openssl library (so that programs that load openssl via dlopen() can still use amqp-cpp)
2018-03-09 15:08:52 +01:00
Emiel Bruijntjes
28b6c903e1
finished implementing amqps:// support
2018-03-09 13:55:49 +01:00
Emiel Bruijntjes
c26005ddfb
work in progress on setting up tls connections to rabbitmq
2018-03-08 14:00:44 +01:00
Emiel Bruijntjes
e39ca5b012
ssl connection fixes
2018-03-08 13:36:56 +01:00
Emiel Bruijntjes
872d4e9a11
implemented flushing for ssl connections
2018-03-08 13:09:56 +01:00
Emiel Bruijntjes
bc4db8d8fe
elegant shutdown for ssl connections
2018-03-08 12:11:45 +01:00
Emiel Bruijntjes
38d504d8a0
reportClosed() is never called when still busy with ssl handshake, so that method has been removed, and better handling of scenarion in which user space destructs connections in onError() implementation
2018-03-08 11:20:07 +01:00
Emiel Bruijntjes
25df834e74
prevent ssl errors or reference count errors when copying around ssl objects
2018-03-08 11:04:39 +01:00
Emiel Bruijntjes
cea5a54487
fix bug: error about missing openssl was also reported when not even opening a secure connection
2018-03-08 10:44:42 +01:00
Emiel Bruijntjes
9a08c64ff7
more elegant close procedure for tcp connections
2018-03-08 10:37:49 +01:00
Emiel Bruijntjes
f23bcf19f1
improved docblocks in tcpstate.h header file, when an error or closed is reported to user space, the _handler variable is now reset to prevent that it will be used to report more than once (we still need to check if this does not trigger other errors), and the state object is no longer destructed after a reportClosed() call, so that it can clean up nicely (which we need to the tls shutdown anyway)
2018-03-08 10:02:42 +01:00
Emiel Bruijntjes
8065cfe940
update docblock
2018-03-06 22:06:41 +01:00
Emiel Bruijntjes
7aa7794e3e
work in progress on ssl implementation
2018-03-06 22:03:53 +01:00
Emiel Bruijntjes
0ca9bc9dad
added error in case openssl is missing
2018-03-06 18:07:34 +01:00
Emiel Bruijntjes
25d5410b13
fixed some compile issues
2018-03-06 17:52:44 +01:00
Tamas Elekes
8ba8ed1727
dynamically loading openssl funtions during runtime work in progress
2018-03-06 14:40:46 +01:00
Tamas Elekes
3bb7714f3b
dynamically loading openssl funtions during runtime work in progress
2018-03-06 14:39:36 +01:00
Emiel Bruijntjes
baa4450aa6
update indentation
2018-03-06 09:44:24 +01:00
Emiel Bruijntjes
69596e49dc
removed tabs
2018-03-06 08:40:44 +01:00
Emiel Bruijntjes
69c615d0a4
removed tcp prefix from all ssl related classes
2018-03-06 08:39:42 +01:00
Emiel Bruijntjes
72ffd5eb1a
disabled ssl for the time being
2018-03-05 22:25:58 +01:00
Emiel Bruijntjes
463eed89c0
work in progress on closing ssl connections
2018-03-05 22:24:19 +01:00
Emiel Bruijntjes
4a51c5dd60
improve ssl handshake methods
2018-03-05 20:08:09 +01:00
Emiel Bruijntjes
fa5ef5318a
work in progress on dealing with secure connections
2018-03-05 19:53:53 +01:00
Tamas Elekes
e46dfcf3b8
work in progress on ssl support for the AMQP-CPP library
2018-03-05 17:29:37 +01:00
Tamas Elekes
9c1a09a711
ssl connection WIP
2018-03-02 16:56:35 +01:00
Tamas Elekes
342268e50a
support for amqps:// addresses in the AMQP::Address class (although it does not yet make a real secure connection)
2018-03-02 13:53:00 +01:00
Emiel Bruijntjes
2a0a6f3fb7
update cmake stuff
2018-03-01 23:13:07 +01:00
Emiel Bruijntjes
41239a1952
fixed to make returning message functional, and added test code
2018-03-01 22:54:50 +01:00
Emiel Bruijntjes
1ccd93cc5e
final step (although untested) for handling returned messages
2018-03-01 22:27:27 +01:00
Emiel Bruijntjes
1f3500cee8
breaking changes:
...
channel.publish() now returns a DeferredConsumer object on which callbacks can be installed for handling returned messages,
channel.get().onSize() has a different behavior: it now reports the message size (and no longer the queue size),
channel.get().onCount() has been added: it reports the queue size (this used to be the onSize() method),
channel.consume().onSize() method has been added to find out the size of the upcoming message
2018-03-01 21:12:53 +01:00
Emiel Bruijntjes
f39df772d3
breaking changes:
...
channel.publish() now returns a DeferredConsumer object on which callbacks can be installed for handling returned messages,
channel.get().onSize() has a different behavior: it now reports the message size (and no longer the queue size),
channel.get().onCount() has been added: it reports the queue size (this used to be the onSize() method),
channel.consume().onSize() method has been added to find out the size of the upcoming message
2018-03-01 21:12:50 +01:00
Emiel Bruijntjes
ef76876d67
refactored code to make room for a deferredpublisher class (which will also use the deferredreceiver base class)
2018-03-01 18:07:18 +01:00
Emiel Bruijntjes
520fe40201
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
Emiel Bruijntjes
3ccc6af475
added deferredreceiver files (forgotter in prev commit)
2018-02-27 05:09:03 +01:00
Emiel Bruijntjes
e0feb17ecc
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
Emiel Bruijntjes
ec327de396
less conservative caching of outgoing data. This fixes #184
2018-02-07 10:08:32 +01:00
Emiel Bruijntjes
f5540e9af2
fixed autodelete flag for declaring an exchange and added support for internal exchange. this fixes #183
2018-02-06 21:54:56 +01:00
zerodefect
4b2c423896
Build examples now with travis-ci to ensure new changes don't break existing code. Fixed warnings as a result of lambda captures.
2018-01-30 10:07:27 +00:00
Aart Stuurman
f64b705c19
Merge branch 'clean-build' of https://github.com/surgura/AMQP-CPP into clean-build
2018-01-28 22:20:18 +01:00
Aart Stuurman
dd6bbada96
Fix build error for Make where include files could not be found. Make now installs headers correctly.
2018-01-26 23:04:01 +01:00
Aart Stuurman
d0bfa0bfc7
Updated Makefile to have same results as before the update.
2018-01-26 22:14:43 +01:00
Aart Stuurman
f25efd2235
Merge https://github.com/CopernicaMarketingSoftware/AMQP-CPP into travis
2018-01-25 18:17:43 +01:00
Aart Stuurman
413af81635
Fixed unix compile error after previous commit.
2018-01-24 02:03:16 +01:00
Aart Stuurman
cf7261add5
Reordered public include files so they are now in include/amqpcpp/.
2018-01-24 01:58:18 +01:00
Aart Stuurman
b211fc7779
fixed 32 bit warnings.
2018-01-24 00:38:07 +01:00
Aart Stuurman
715b683867
restore ignore file for make.
2018-01-23 19:22:33 +01:00
Aart Stuurman
80850810d3
fixed compile error at linux_tcp
2018-01-23 19:17:49 +01:00
Aart Stuurman
27f765b5f7
linux tcp is now opt-out instead of opt-in(to keep compatibility with the original lib).
2018-01-23 19:15:10 +01:00
Aart Stuurman
b1be2267f6
comments
2018-01-23 19:02:46 +01:00
Aart Stuurman
5701d28b2b
added BUILD_TCP option to build the linux sockets implementation.
2018-01-23 18:49:59 +01:00
Emiel Bruijntjes
9935f8414b
update copyright year when connection is established to rabbitmq
2018-01-23 17:17:21 +01:00
Aart Stuurman
001dfaa7e0
- Moved linux specific TCP implementation to a seperate folder and removed it from default build. Does not yet build correctly if you want that.
...
- Fixed conversion warnings from <some integer> type to uint32_t, which happens a lot around here. This is no functional change, just making it explicit so the compiler doesn't warn.
2018-01-23 16:47:53 +01:00
Emiel Bruijntjes
f05aba0782
added TcpConnection::fileno() to expose the internal filedescriptor / socket
2017-12-12 17:10:51 +01:00
Emiel Bruijntjes
562703b1cf
renamed major() and minor() methods of the ConnectionStartFrame class to fix warning from new gcc version that these function names are more or less reserved
2017-11-01 08:20:52 +01:00
Emiel Bruijntjes
49337d078d
heartbeats will now only be sent if the connection is idle
2017-06-19 10:24:03 +02:00
Emiel Bruijntjes
a091921e88
added connection::heartbeat() method, userspace programs are responsible for calling this method once every 60 seconds
2017-06-16 10:14:42 +01:00
Marcin Gibula
3ab9eed268
Simplify message counter logic
2017-06-08 23:41:55 +02:00
Marcin Gibula
061c462ee0
Set correct message length
2017-06-08 23:18:40 +02:00
Marcin Gibula
a28ea01f0e
Call ACK and NACK callbacks
2017-06-08 22:57:29 +02:00
Marcin Gibula
30e652c669
Add Channel::setConfirmMode() and Channel::messageCounter() methods
2017-06-08 22:19:55 +02:00
Marcin Gibula
c7a12d22c1
Add confirm.select and confirm.select-ok frames
2017-06-08 22:00:28 +02:00
Rafal Goslawski
a976f5bea4
removed unneeded reference to endian.h. fixes #123
2017-05-04 15:15:51 +02:00
RafalGoslawski
5e895f3b9f
Update CMakeLists.txt. fixes #123
2017-05-04 11:34:17 +02:00
Emiel Bruijntjes
16e2d21aa3
fixed issue that a tcp connection could crash if the user space code deconstructed a handler in a onClosed() handler
2017-04-26 15:33:17 +02:00
Okke
bdae991324
Moved header files to include/ because of broken header dependencies
2017-03-09 11:53:13 +01:00
Emiel Bruijntjes
71eba4c5d3
prevent copying of buffers
2017-03-09 09:25:26 +01:00
Emiel Bruijntjes
1f5f641d8b
we now use passthrough buffers, so we no longer have to dynamically allocate a buffer for each and every outgoing message
2017-03-09 00:18:53 +01:00
Emiel Bruijntjes
00b81949d3
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
Okke
c6608cee0a
Added even more debug code for the channelimpl class
2017-03-07 10:10:11 +01:00
Okke
055431de6e
Fixed compilation issue due to recent changes in ChannelImpl
2017-03-03 12:56:54 +01:00
Emiel Bruijntjes
ed2ffd3f03
added method tcpconnection::flush()
2016-09-19 10:19:06 +02:00
Emiel Bruijntjes
173225071e
we no longer use "emit" for method names, because it seems to conflict with the Qt library that uses emit as some sort of macro
2016-09-10 20:36:06 +02:00
theirix
e6e70e69de
Removed unneeded const qual
2016-09-02 22:44:11 +03:00
Emiel Bruijntjes
383914c0c7
Merge pull request #80 from theirix/sigpipe-osx
...
Avoid SIGPIPE on OS X without MSG_NOSIGNAL
2016-07-27 05:09:44 -04:00
theirix
fbe287c795
Build shared library with CMake
...
Added option BUILD_SHARED to build shared library instead of static.
2016-07-10 22:24:24 +03:00
theirix
66f2001c7b
Avoid SIGPIPE on OS X without MSG_NOSIGNAL
...
OS X does not have Linux-specific option MSG_NOSIGNAL.
SIGPIPE can be avoided on OS X by using sockopt SO_NOSIGPIPE.
Credits: https://noahdesu.github.io/2014/01/16/port-sendmsg.html
2016-07-10 21:44:14 +03:00
David van Erkelens
ad9171f226
Changed writev to sendmsg to prevent SIGPIPE errors
2016-07-06 14:08:45 +02:00
Emiel Bruijntjes
aad09a1dd2
work in progress to prevent SIGPIPE signals (this is going to fix #79 )
2016-07-06 13:03:51 +02:00
David van Erkelens
dddd16b74d
Make sure single gets are processed correctly as well
2016-07-05 16:39:12 +02:00
Martijn Otto
979128782b
Merge pull request #76 from maxim-ky/master
...
Made some destructors virtual and fixed a user-after-free bug
2016-07-04 09:38:31 +02:00
Maksim Kuzevanov
e3b7e6abd6
fix undefined behaviour due to a reference to a destroyed temporary object
2016-07-01 17:29:40 +03:00
Maksim Kuzevanov
1dcbc33b53
make it compile with cmake 2.8/gcc 4.7.3
2016-07-01 17:29:35 +03:00
Martijn Otto
17693ef549
Correctly remove the dependency files on clean and fix frame errors on architectures where chars default to unsigned,
...
fixes issue #52
2016-07-01 16:00:44 +02:00
Martijn Otto
b91e0589f6
Updated cmake lists and added include, closes issue #75
2016-06-28 14:14:07 +02:00
Martijn Otto
2f1851728c
Merge pull request #72 from XeCycle/fionread-solaris
...
Some portability fixes for Solaris-like systems
2016-06-27 10:57:24 +02:00
javeme
49eef84883
Bugfix: add missing include "includes.h" for deferredconsumerbase.cpp
...
When I compiled on the windows, there was a lot of errors like:
error C2065: "xxx": undeclared identifier...
2016-06-27 00:37:31 +08:00
Carl Lei
6d71b73063
portability fix for FIONREAD on Solaris
2016-06-25 20:15:12 +08:00
Martijn Otto
434a0fad52
Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP
2016-06-23 14:43:10 +02:00
Martijn Otto
2c60151d31
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
Emiel Bruijntjes
5e88fd3e75
fixed reallocation bug
2016-06-22 13:49:49 +02:00
Emiel Bruijntjes
3d9b5b444b
fixed issues that caused reading data to be broken
2016-06-15 14:50:33 -04:00
Emiel Bruijntjes
99abd157e5
removed tcpbuffer and replaced it with a tcpoutbuffer
2016-06-15 13:41:14 -04:00
Emiel Bruijntjes
bc01c82e80
added buffer
2016-06-15 13:32:40 -04:00
Emiel Bruijntjes
24c8527b5d
added tcpinbuffer with much less allocation
2016-06-15 13:32:30 -04:00
Emiel Bruijntjes
6320e2ae0e
added consistent-hash exchange (same as pull request #68 )
2016-06-15 11:20:31 -04:00
Emiel Bruijntjes
59830c659c
added connection::maxFrame() and connection::expected() methods to give hints about the amount of data that the connection::parse() method ideally expects
2016-06-15 04:57:46 -04:00
Jan Westerdiep
7384b521ac
small legibility fixes
2016-06-10 15:21:10 +02:00
hoxnox
6e31cecdbd
Buildfix: tcpconnection.cpp added to build sources
2016-03-27 22:17:40 +03:00
Emiel Bruijntjes
1681fd6072
Merge pull request #51 from indrekj/yosemite
...
Fix compiling on OS X Yosemite
2016-03-22 09:21:19 +01:00
Aljar Meesters
70a7565c4e
fixed bug when connection goes out of scope
2016-03-04 17:34:28 +01:00
Emiel Bruijntjes
a5e86d4b95
Merge pull request #55 from swordflychen/master
...
fix `std:max` type mismatch
2016-02-22 16:38:41 +01:00
Martijn Otto
89c2075a5f
Fix segfault when the handler is destructed from within a callback
2016-01-15 14:19:09 +01:00
Jerry Chen
2e350040b4
fix `std:max` type mismatch
...
env:
```
OS: Centos6.5 Linux 2.6.32-431.el6.i686
gcc: 4.8.2
```
make error:
```
g++ -Wall -c -I. -std=c++11 -g -fpic -o tcpconnection.o tcpconnection.cpp
In file included from tcpconnected.h:19:0,
from tcpresolver.h:22,
from tcpconnection.cpp:14:
tcpbuffer.h: In member function ‘ssize_t AMQP::TcpBuffer::receivefrom(int)’:
tcpbuffer.h:406:66: error: no matching function for call to ‘max(long int, int&)’
if (result < available) buffer.resize(std::max(0L, result));
^
tcpbuffer.h:406:66: note: candidates are:
In file included from /usr/local/include/c++/4.8.2/bits/char_traits.h:39:0,
from /usr/local/include/c++/4.8.2/string:40,
from includes.h:14,
from tcpconnection.cpp:13:
/usr/local/include/c++/4.8.2/bits/stl_algobase.h:216:5: note: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&)
max(const _Tp& __a, const _Tp& __b)
^
/usr/local/include/c++/4.8.2/bits/stl_algobase.h:216:5: note: template argument deduction/substitution failed:
In file included from tcpconnected.h:19:0,
from tcpresolver.h:22,
from tcpconnection.cpp:14:
tcpbuffer.h:406:66: note: deduced conflicting types for parameter ‘const _Tp’ (‘long int’ and ‘int’)
if (result < available) buffer.resize(std::max(0L, result));
^
...
```
2016-01-15 13:44:29 +08:00
Toon Schoenmakers
d6f6dba660
Better to set multiple socket flags at once
2015-12-22 15:02:37 +01:00
Emiel Bruijntjes
226ef47beb
socket connections have close-on-exit bit set
2015-12-14 20:20:03 +01:00
Emiel Bruijntjes
e2ce7103aa
disable the nagle algorithm to speed up write operations to the tcp connections (and dramatically improving write performance) fixes issue 50
2015-12-07 14:05:49 +01:00
Indrek Juhkam
40687f3572
Include sys/uio.h to fix writev compile error on os x
2015-12-04 20:09:32 +02:00
Indrek Juhkam
767fb175b1
Provide an alternative to pipe2() on non-Linux systems
2015-12-04 19:38:24 +02:00
Toon Schoenmakers
93a0b60b6e
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
Emiel Bruijntjes
9ec63a1869
Merge branch 'master' of https://github.com/CopernicaMarketingSoftware/AMQP-CPP
2015-11-28 12:02:22 +01:00
Emiel Bruijntjes
155c989db5
added "override" keywords to overridden methods, fixed buffer overflow in setting up a connection
2015-11-28 11:38:15 +01:00
Emiel Bruijntjes
38e4b97eed
fixed that tcp connection ended up in an infinite loop when write operation failed because of broken pipe
2015-11-23 09:40:54 +01:00
Emiel Bruijntjes
08574bcf96
remove fpic from makefile
2015-11-17 13:08:38 +01:00
Emiel Bruijntjes
3ef9cf47b5
Merge branch 'master' of https://github.com/CopernicaMarketingSoftware/AMQP-CPP
2015-11-10 15:29:37 +01:00
Emiel Bruijntjes
41b07672e0
fixed possible crash when connection was destructed while it was still busy resolving the domain name
2015-11-10 15:29:25 +01:00
Toon Schoenmakers
1aeb0ca530
if Connection::close() was called before the handshake was completed, the instructions that were sent in the middle were not sent to the server
2015-11-06 16:02:01 +01:00
Toon Schoenmakers
1cc86e79e8
fix detection of connections that are closed by the server
2015-11-06 15:17:41 +01:00
Emiel Bruijntjes
1370afee94
fix compile error
2015-11-04 13:10:05 +01:00
Emiel Bruijntjes
23fa396683
fix compile error
2015-11-04 13:06:28 +01:00
Emiel Bruijntjes
dcf0b3576b
fix issue when tcp is closed
2015-11-04 13:05:03 +01:00
Emiel Bruijntjes
bfdca4825a
added "make pure" option, to make the library without tcp support
2015-11-02 09:08:30 +01:00
Emiel Bruijntjes
89efd4670f
fix windows build
2015-11-01 11:11:51 +01:00
Emiel Bruijntjes
0e5024d38a
Merge pull request #47 from keenlogics/Heartbeat
...
The server heartbeat is stored in Connection
2015-11-01 05:03:02 -05:00
Emiel Bruijntjes
481b35ced5
Merge branch 'master' of https://github.com/CopernicaMarketingSoftware/AMQP-CPP
2015-11-01 10:50:56 +01:00
Emiel Bruijntjes
d41423d5db
Added TcpChannel class so that Connection and Channel class are once again completely protocol agnostic
2015-11-01 09:51:43 +01:00
Emiel Bruijntjes
b4bd61580b
fixed to parsing incoming tcp data
2015-11-01 09:43:17 +01:00
Emiel Bruijntjes
df801953a1
improvements to work directly with tcp connections
2015-10-31 21:13:41 +01:00
Emiel Bruijntjes
189d6c9ef1
added Connection::waiting() method to find out if the connection object is waiting/expecting an answer from the rabbitmq server
2015-10-31 18:26:52 +01:00
Emiel Bruijntjes
f3955bcd51
implemented TcpConnection, so that users of the library do not have to setup their own tcp connections
2015-10-31 18:26:04 +01:00
Toon Schoenmakers
d79e0e7c7e
Added a static_fpic target so we can statically link this library into other libraries
...
Also got rid of the -flto, which is pretty useless in libraries anyway.
2015-10-30 14:29:55 +01:00
Sebastian Melinat
74a1a17553
During the handshake the heartbeat duration the server wants is stored in the connection so that clients can retrieve and use it for error detection
2015-10-21 15:26:53 +02:00
Jakub Stefanski
6782a7bfd4
Fix Windows build
...
Fixed windef.h shadowing of 'max' definition and added LEAN_AND_MEAN
definition for more lightweight build.
Added missing 'functional' includes.
2015-10-02 15:54:15 +02:00
Martijn Otto
b6c88febbd
Special treatment for Mac OS X: It uses a different parameter for setting the soname
2015-07-01 10:04:40 +02:00
RafalGoslawski
bcf77ea1c8
Add soname and release build traget, default make target is debug
2015-05-19 13:51:36 +02:00
Martijn Otto
a93b88697d
Fix double ready bug for channel, fixes #25
2015-05-18 10:56:50 +02:00
Martijn Otto
7ae4f9c5ff
Fixed a bug in the envelope, easy retrieval of field type and improved casting operators for numeric fields
2015-05-05 13:38:20 +02:00
Martijn Otto
fcc9522e16
Some bugfixes and performance enhancements
2015-04-30 14:18:18 +02:00
Martijn Otto
45deeaa754
Fixed a bug where a frame could be sent exceeding the maximum frame size (resulting in protocol errors) and added some optimizations
2015-04-30 10:59:03 +02:00
Martijn Otto
b9caf0199d
Received messages are now moved into the callback instead of provided as a const reference
2015-04-28 10:58:49 +02:00
Emiel Bruijntjes
ad3b95741e
various trics and changes so that windows compilers, and 32bit systems will not complain about stuff
2015-04-24 10:46:44 +02:00
Emiel Bruijntjes
3a4de6194c
removed symlinks from repository because not all systems (hello windows) understand them
2015-04-24 09:58:32 +02:00
Emiel Bruijntjes
f23dc72a4f
Fixed documentation, removed references to the ChannelHandler - an object that is no longer supported by AMQP-CPP
2015-01-26 14:47:30 +01:00
Emiel Bruijntjes
236dd02b13
fixed theoretical issue when deferredGet onSize() methods destructs the underlying channel object
2014-09-02 11:18:11 +02:00
Emiel Bruijntjes
9653578d4a
The Channel.get().onFinalize() function was called before the Channel.get().onSuccess() method, which is strange. This has been fixed. To fix this, we had to refactor the Deferred* into shared_ptrs
2014-09-02 10:32:55 +02:00
Emiel Bruijntjes
aceac8b677
the finalize callback is now called as part of the deferred object destructor, this ensures that the finalize callback will always be called
2014-08-29 13:18:08 +02:00
Emiel Bruijntjes
8759258a3e
Channel::get() and Channel::purgeQueue() methods always reported an error, even while there was no error
2014-08-29 13:16:05 +02:00
Emiel Bruijntjes
ebcdd71848
Added onSize() method to DeferredGet
2014-08-28 10:02:01 +02:00
Emiel Bruijntjes
c7b3f71f14
the connection.close function was only waiting for synchronous calls to complete, async calls that were waiting (after a synchronous) were still discarded, this has been fixed
2014-08-20 13:40:29 +02:00
Emiel Bruijntjes
d23e818f64
turns out that shared_from_this() can not be called from the constructor, so we made a special attach() function to postpone object initialization
2014-08-20 12:44:52 +02:00
Michael van der Werve
53b2bd9f0d
fixed typo in the connection implementation file
2014-08-20 12:03:15 +02:00
Emiel Bruijntjes
36734671cc
channel instructions that were given before the connection was fully initialized were immediately lost, if the connection was immediately closed
2014-08-20 11:59:05 +02:00
Emiel Bruijntjes
6997a70cf1
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
Emiel Bruijntjes
328820f898
renamed apple.h to endian.h because it turns out that it is also used for linux systems, and removed double implemented ChannelImpl::get() function
2014-08-14 15:25:44 +02:00
Emiel Bruijntjes
3e47191f90
fixed apple incompatibility
2014-08-14 15:19:08 +02:00
Emiel Bruijntjes
271cc39c17
whitespace change
2014-08-13 16:43:59 +02:00
Emiel Bruijntjes
5bc7b4b5b3
added destructor of ReducedBuffer
2014-08-13 15:02:54 +02:00
Emiel Bruijntjes
945a01f659
The Connection::parse() method can now also be called with a buffer object, which allows the user to implement the buffer much more efficiently: it no longer has to be an array
2014-08-13 13:01:27 +02:00
Richard Hodges
d2a84b5f8d
build - added new source files to CMakeLists
2014-08-07 11:09:02 +01:00
Emiel Bruijntjes
a8ff6de550
fixed bug in channel.get() calls
2014-08-07 11:00:06 +01:00
Emiel Bruijntjes
37a51cdc7b
basic.get is asynchronous until the entire body has been received, only then subsequent messages are sent + first work in progress on implementing smarter buffers
2014-08-07 11:00:06 +01:00
Emiel Bruijntjes
dca76db2f0
empty messages could not be consumed or get, this has now been fixed
2014-08-07 11:00:06 +01:00
Emiel Bruijntjes
bcbe50e22c
basic.get callbacks only have to be installed for a single message, so we uninstall it right after the message was handled
2014-08-07 11:00:06 +01:00
Emiel Bruijntjes
b4270f39bc
added Channel::get() that allows one to retrieve a single message from the channel
2014-08-07 11:00:06 +01:00
Emiel Bruijntjes
f905c9db49
Quality of service now supports "global" parameter (default is still false)
2014-08-07 11:00:05 +01:00
Emiel Bruijntjes
d99b117a60
fixed bug in channel.get() calls
2014-08-04 13:44:17 +02:00
Emiel Bruijntjes
e299aa5fac
basic.get is asynchronous until the entire body has been received, only then subsequent messages are sent + first work in progress on implementing smarter buffers
2014-08-01 11:55:07 +02:00
Emiel Bruijntjes
b97222c4db
empty messages could not be consumed or get, this has now been fixed
2014-08-01 10:37:18 +02:00
Emiel Bruijntjes
7956d706fb
basic.get callbacks only have to be installed for a single message, so we uninstall it right after the message was handled
2014-08-01 10:05:02 +02:00
Emiel Bruijntjes
42514e80db
Merge branch 'master' of https://github.com/CopernicaMarketingSoftware/AMQP-CPP
2014-07-31 13:11:30 +02:00
Emiel Bruijntjes
f39410039b
added Channel::get() that allows one to retrieve a single message from the channel
2014-07-31 12:58:13 +02:00
Martijn Otto
f2f241665f
Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP
2014-07-31 10:17:15 +02:00
Martijn Otto
98aba8f638
Fix for issue #12
2014-07-31 10:16:55 +02:00
Emiel Bruijntjes
cac3247304
Quality of service now supports "global" parameter (default is still false)
2014-07-31 10:10:15 +02:00
Richard Hodges
d4b10cbf35
bug - negate the result of send() before using the result in a DeferredResult constructor
2014-07-30 15:29:05 +01:00
Richard Hodges
d2a97c1dd3
bugfix - fixes bug where channel declaration deferred object is put in fail state after successful send of data
...
refs #12
2014-07-30 09:39:20 +01:00
Richard Hodges
b9ca150dba
merged from latest upstream
2014-07-28 15:16:32 +01:00
Richard Hodges
b41e2edc52
Merge remote-tracking branch 'upstream/master'
2014-07-28 15:07:06 +01:00
Emiel Bruijntjes
850252e1dd
link time optimization only for static libs
2014-07-25 09:34:01 +02:00
Richard Hodges
7c0642f30d
build - added CMakeLists.txt to allow integration into a CMAKE build tree
2014-07-11 18:17:03 +01:00
Emiel Bruijntjes
3a700226c8
BasicNack frame makes the consumer stop (dont know why) so we use the BackReject message instead when there is no need to reject multiple messages
2014-05-26 18:17:49 +02:00