Commit Graph

32 Commits

Author SHA1 Message Date
Emiel Bruijntjes 28b6c903e1 finished implementing amqps:// support 2018-03-09 13:55:49 +01:00
Aart Stuurman b211fc7779 fixed 32 bit warnings. 2018-01-24 00:38:07 +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 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
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
Maksim Kuzevanov e3b7e6abd6 fix undefined behaviour due to a reference to a destroyed temporary object 2016-07-01 17:29:40 +03:00
Emiel Bruijntjes 3d9b5b444b fixed issues that caused reading data to be broken 2016-06-15 14:50:33 -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
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
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
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
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 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 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
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
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
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 aba769f5cb monitor class moved from include directory to src 2014-01-06 13:34:54 -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 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 c87739312a updated Makefile, removed vhost from Login object 2014-01-04 05:10:25 -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