Emiel Bruijntjes
|
34699cfcd3
|
fixed formatting
|
2015-11-01 11:10:01 +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
|
66ade94fc0
|
moved the #pragma once statement
|
2015-11-01 10:48:13 +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 |
Emiel Bruijntjes
|
d18fd082d2
|
use move semantics in Login class (small optimization)
|
2015-10-31 18:23:24 +01:00 |
Emiel Bruijntjes
|
fc5a053089
|
added "Address" class to parse "amqp://" urls
|
2015-10-31 18:22:41 +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 |
Nikita Kniazev
|
ca522a32a5
|
AMQP::Envelope copy constructor missing base class constructor call
|
2015-09-28 12:56:52 +03:00 |
Toon Schoenmakers
|
12af6e854a
|
Added a method to check how many channels a connection has
|
2015-09-10 14:33:25 +02:00 |
Toon Schoenmakers
|
a0d7063c4e
|
Fixed a few incorrect signatures in docblocks
|
2015-08-03 16:25:25 +02:00 |
Martijn Otto
|
db3613112e
|
Removed some macros for FreeBSD: Apparantly they are not needed. We might need to remove them for NetBSD and DragonFly as well
|
2015-07-01 09:48:56 +02:00 |
Martijn Otto
|
7a11c23f03
|
When a deferred handler is in error state, registering a finalize callback should also cause it to be called immediately
|
2015-06-12 16:48:25 +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 |
Martijn Otto
|
803ba6cc88
|
Added publish method with r-value std::string
|
2015-04-22 14:24:00 +02:00 |
Emiel Bruijntjes
|
df6b8ae743
|
in reaction to pull request #21 the "const uint**_t" return values have been changed into "uint**_t" return values
|
2015-02-17 09:02:51 +01:00 |
Sebastian Melinat
|
09850e792f
|
Bugfix: ConnectionImpl::reportError calls ChannelImpl::reportError of every channel. The channel then removes itselfs from the connection. That caused the for loop to run out of bounds. Fixed by switching to while
|
2015-01-28 11:47:03 +01: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
|
6cc25c4b27
|
removed operator= from channels and connections
|
2014-08-29 13:24:24 +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
|
d35dba71a1
|
disabled copy constructors for channel and connection objects, because the end-user is not supposed to copy them
|
2014-08-29 13:17:17 +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 |
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 |
Michael van der Werve
|
170ef1f82a
|
when a channel is destructed during a success-callback, the program crashed, this has been fixed by using shared_ptr
|
2014-08-19 17:43:12 +02:00 |
Michael van der Werve
|
07d9361d84
|
compile fixes
|
2014-08-19 15:00:20 +02:00 |
Michael van der Werve
|
acda90655d
|
login and vhost can now be fetched from the connection class
|
2014-08-19 14:54:30 +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
|
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
|
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
|
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
|
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
|
f39410039b
|
added Channel::get() that allows one to retrieve a single message from the channel
|
2014-07-31 12:58:13 +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
|
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 |
Richard Hodges
|
7c0642f30d
|
build - added CMakeLists.txt to allow integration into a CMAKE build tree
|
2014-07-11 18:17:03 +01:00 |
Martijn Otto
|
ca8a39ea45
|
Fix memory leak
|
2014-05-06 16:49:43 +02:00 |
Martijn Otto
|
a9570277b7
|
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 |
Emiel Bruijntjes
|
e0b709fa63
|
in case of a connection error, we no longer call the channel wide error handler
|
2014-04-16 12:04:44 +02:00 |
Emiel Bruijntjes
|
e903cdb4ee
|
the derived deferred classes now also re-implement the onSuccess() method to ensure that the same object type is returned, to support propert chaining
|
2014-04-16 11:43:27 +02:00 |
Emiel Bruijntjes
|
1fecc57d67
|
when a connection gets in error state, all deferred results will now also call their error callback, and the channel wide error handler is called _after_ all individual error handlers are called
|
2014-04-16 09:25:08 +02:00 |
Emiel Bruijntjes
|
59e0b61e6b
|
installed test program, added onMessage() function in deferredconsumer
|
2014-04-15 14:49:03 +02:00 |
Emiel Bruijntjes
|
82249ee368
|
update documentation, error callbacks now get a const char * instead of a std::string
|
2014-04-15 14:22:30 +02:00 |
Emiel Bruijntjes
|
3d4a1b865e
|
removed some @todo tags
|
2014-04-15 13:22:06 +02:00 |
Emiel Bruijntjes
|
b13398b09d
|
setTimeout function removed from connection handler, the finalize and error callbacks are called right away if installed on an object that already is in an error state
|
2014-04-15 13:18:32 +02:00 |
Emiel Bruijntjes
|
60b59524e7
|
when an error is detected on a channel, all subsequent and cached deferred objects are notified about the error too
|
2014-04-15 13:14:16 +02:00 |
Emiel Bruijntjes
|
d08270701e
|
refactored dealing with error messages
|
2014-04-15 13:01:27 +02:00 |
Emiel Bruijntjes
|
ae7a32a8bf
|
when a consumer is cancelled, it is also removed from the map of active consumers in the the ChannelImpl object
|
2014-04-15 12:36:11 +02:00 |
Emiel Bruijntjes
|
3b78247363
|
error callbacks get a const char *, no longer a std::string
|
2014-04-15 12:29:22 +02:00 |
Emiel Bruijntjes
|
301b8153e3
|
deferred objects are now correctly destructed + added extra checks so that no crashes occur when someone destructs a channel inside a callback function
|
2014-04-15 12:25:56 +02:00 |
Emiel Bruijntjes
|
745ab512a5
|
the consumer message callback can now also be installed via the Deferred objects, and it is no longer passed a consumer tag, because it already is obvious what the consumer tag is supposed to be
|
2014-04-15 11:39:52 +02:00 |
Emiel Bruijntjes
|
921f24ae06
|
de-templified the deferred objects, to make them easier to understand for other programmers
|
2014-04-15 10:43:33 +02:00 |
Emiel Bruijntjes
|
7b20f46519
|
removed channel parameter from the callbacks, because this can easily be captured
|
2014-04-15 08:52:49 +02:00 |
Emiel Bruijntjes
|
b8d4581569
|
cast to array and cast to object implemented, refactored shared-ptr and clone() methods to utilize std::make_shared (see issue #7)
|
2014-04-14 17:14:36 +02:00 |
Emiel Bruijntjes
|
bcc6eaff82
|
added const access for operator[] (issue #7)
|
2014-04-14 16:06:29 +02:00 |
Martijn Otto
|
83621790f4
|
Give the connection object to the timeout as well
|
2014-04-14 15:31:15 +02:00 |
Martijn Otto
|
05412e0d2b
|
Merged recent commits
|
2014-04-14 14:23:37 +02:00 |
Martijn Otto
|
f10e33c7c7
|
Fix logic error in the array type
|
2014-04-14 14:18:51 +02:00 |
Martijn Otto
|
1c0495378a
|
Implemented deferred consumers and a setTimeout method on the connection handler for indicating immediate failures on deferred objects
|
2014-04-14 14:10:57 +02:00 |
Emiel Bruijntjes
|
cf5def0e89
|
fixed operator[] for arrays and strings, implemented << operator for field and fieldproxy objects to simplify debugging (reported from issue #7)
|
2014-04-14 13:34:46 +02:00 |
Martijn Otto
|
d2c17869e0
|
Moved the remaining methods over to deferred handlers
|
2014-04-10 12:51:04 +02:00 |
Martijn Otto
|
e1b0e3dea1
|
Added a generic callback class that acts as a container for the different types of callbacks
|
2014-04-08 16:12:04 +02:00 |
Martijn Otto
|
2939272bc8
|
Work in progress to convert channel handler to callback system
|
2014-04-08 14:42:07 +02:00 |
Luca Marturana
|
17be969d49
|
Add pragma once
|
2014-04-02 15:40:35 +02:00 |
Luca Marturana
|
41c1402d15
|
Const modifier to table get and some array operations
|
2014-04-02 12:59:24 +02:00 |
Luca Marturana
|
47f5ec2710
|
On connection::parse char* can be const
|
2014-04-02 11:53:46 +02:00 |
Emiel Bruijntjes
|
6cfead9902
|
{auto} if connection.close() was called before the connection was set up, the instructions that were called between setting up the connection and the call to close() were lost. This forced users to always use the onConnected() handler to wait for the first instruction to be sent. But this is not according to the library design, so now the instructions that are given before the close() will be executed too;
|
2014-02-21 00:54:40 -08:00 |
Emiel Bruijntjes
|
d4e543e74a
|
Login object now has methods to retrieve user name and password
|
2014-02-04 06:57:25 -08:00 |
Martijn Otto
|
fb742ba06d
|
Keep a local copy of the string in the envelope, so that the data does not go out of scope
|
2014-01-28 15:06:20 +01:00 |
Emiel Bruijntjes
|
42f61a65bf
|
Copy constructor added to Login class
|
2014-01-26 12:02:23 -08:00 |
Emiel Bruijntjes
|
aba769f5cb
|
monitor class moved from include directory to src
|
2014-01-06 13:34:54 -08:00 |
Emiel Bruijntjes
|
a442a4773a
|
use default compiler
|
2014-01-06 09:21:15 -08:00 |
Emiel Bruijntjes
|
a9e6045414
|
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 |
Emiel Bruijntjes
|
d1ab8b179a
|
implemented returned messages
|
2014-01-06 06:49:31 -08:00 |
Emiel Bruijntjes
|
efc556ee0a
|
added support for recovering
|
2014-01-06 05:38:48 -08:00 |
Emiel Bruijntjes
|
5a636f5b57
|
Implemented nack/reject
|
2014-01-06 05:28:58 -08:00 |
Emiel Bruijntjes
|
d1ae133f42
|
implemented channel.ack() method
|
2014-01-05 12:21:09 -08:00 |
Emiel Bruijntjes
|
cf1cbfa551
|
implemented consuming, refactored a lot of code from cpp files to header files
|
2014-01-05 09:50:41 -08:00 |
Emiel Bruijntjes
|
5269f51a92
|
Implemented setting the quality of service (and it turns out that the prefetch size is not implemented in rabbitMQ, nor is setting the qos for the entire connection, so we have only implemented it for a channel)
|
2014-01-05 05:19:35 -08:00 |
Emiel Bruijntjes
|
5e96e2d832
|
it now is possible to publish messages to an exchange with this library
|
2014-01-05 04:08:35 -08:00 |
Emiel Bruijntjes
|
9c1e44f512
|
First setup for implementing the publish method
|
2014-01-04 12:01:02 -08:00 |
Emiel Bruijntjes
|
e5b705b742
|
Implemented buffering of outgoing messages before the connection is set up, so that it is possible to create channel objects and call AMQP methods even while the connection handshake is still in progress
|
2014-01-04 11:34:36 -08:00 |
Emiel Bruijntjes
|
a6fc442bc5
|
updated docblocks and readme file
|
2014-01-04 09:20:45 -08:00 |
Emiel Bruijntjes
|
7a6527dddf
|
updated Makefile, removed vhost from Login object, now also the commit of the README file and the header files
|
2014-01-04 05:11:06 -08:00 |
Emiel Bruijntjes
|
ea4f82ac8f
|
Initial commit with the implementation of all methods apart from the publish and consume methods
|
2014-01-04 03:45:04 -08:00 |