diff --git a/CMakeLists.txt b/CMakeLists.txt index b632d5f..ff729d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,8 +14,8 @@ cmake_minimum_required(VERSION 3.2 FATAL_ERROR) # project name project(amqpcpp) -set (VERSION_MAJOR 3) -set (VERSION_MINOR 2) +set (VERSION_MAJOR 4) +set (VERSION_MINOR 0) set (VERSION_PATCH 0) set (SO_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}) diff --git a/Makefile b/Makefile index a5a9ca6..0ea9e6e 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,8 @@ PREFIX ?= /usr INCLUDE_DIR = ${PREFIX}/include LIBRARY_DIR = ${PREFIX}/lib export LIBRARY_NAME = amqpcpp -export SONAME = 3.2 -export VERSION = 3.2.0 +export SONAME = 4.0 +export VERSION = 4.0.0 all: $(MAKE) -C src all diff --git a/include/amqpcpp/linux_tcp/tcpconnection.h b/include/amqpcpp/linux_tcp/tcpconnection.h index dd1aabd..2040793 100644 --- a/include/amqpcpp/linux_tcp/tcpconnection.h +++ b/include/amqpcpp/linux_tcp/tcpconnection.h @@ -238,6 +238,8 @@ public: /** * Is the connection in a usable state / not yet closed or being closed + * When a connection is usable, you can send further commands over it. When it is + * unusable, it may still be connected and finished queued commands. * @return bool */ bool usable() const @@ -245,6 +247,12 @@ public: return _connection.usable(); } + /** + * Is the connection closed and full dead? The entire TCP connection has been discarded. + * @return bool + */ + bool closed() const; + /** * The max frame size. Useful if you set up a buffer to parse incoming data: it does not have to exceed this size. * @return uint32_t diff --git a/src/linux_tcp/tcpclosed.h b/src/linux_tcp/tcpclosed.h index 90d5fd6..e33d4f8 100644 --- a/src/linux_tcp/tcpclosed.h +++ b/src/linux_tcp/tcpclosed.h @@ -41,6 +41,12 @@ public: * Destructor */ virtual ~TcpClosed() noexcept = default; + + /** + * Is this a closed / dead state? + * @return bool + */ + virtual bool closed() const override { return true; } }; /** diff --git a/src/linux_tcp/tcpconnection.cpp b/src/linux_tcp/tcpconnection.cpp index d01792c..f4763d9 100644 --- a/src/linux_tcp/tcpconnection.cpp +++ b/src/linux_tcp/tcpconnection.cpp @@ -57,6 +57,15 @@ std::size_t TcpConnection::queued() const return _state->queued(); } +/** + * Is the connection closed and full dead? The entire TCP connection has been discarded. + * @return bool + */ +bool TcpConnection::closed() const +{ + return _state->closed(); +} + /** * Process the TCP connection * This method should be called when the filedescriptor that is registered diff --git a/src/linux_tcp/tcpstate.h b/src/linux_tcp/tcpstate.h index 190091c..4699498 100644 --- a/src/linux_tcp/tcpstate.h +++ b/src/linux_tcp/tcpstate.h @@ -62,6 +62,12 @@ public: * @return size_t */ virtual std::size_t queued() const { return 0; } + + /** + * Is this a closed / dead state? + * @return bool + */ + virtual bool closed() const { return false; } /** * Process the filedescriptor in the object