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