From 8800d2917e7d0dc73b20f14104f1e65d0f0ae643 Mon Sep 17 00:00:00 2001 From: Mike Playle Date: Sun, 1 Apr 2018 10:54:05 +0100 Subject: [PATCH] Add method to return the amount of queued outgoing data --- include/amqpcpp/linux_tcp/tcpconnection.h | 6 ++++++ src/linux_tcp/sslconnected.h | 6 ++++++ src/linux_tcp/tcpconnected.h | 8 +++++++- src/linux_tcp/tcpconnection.cpp | 9 +++++++++ src/linux_tcp/tcpstate.h | 6 ++++++ 5 files changed, 34 insertions(+), 1 deletion(-) diff --git a/include/amqpcpp/linux_tcp/tcpconnection.h b/include/amqpcpp/linux_tcp/tcpconnection.h index 30e7c1b..b096b47 100644 --- a/include/amqpcpp/linux_tcp/tcpconnection.h +++ b/include/amqpcpp/linux_tcp/tcpconnection.h @@ -122,6 +122,12 @@ public: */ int fileno() const; + /** + * The number of outgoing bytes queued on this connection. + * @return size_t + */ + size_t bytesQueued() const; + /** * Process the TCP connection * diff --git a/src/linux_tcp/sslconnected.h b/src/linux_tcp/sslconnected.h index 7d4b90e..ad56208 100644 --- a/src/linux_tcp/sslconnected.h +++ b/src/linux_tcp/sslconnected.h @@ -335,6 +335,12 @@ public: * @return int */ virtual int fileno() const override { return _socket; } + + /** + * The number of outgoing bytes queued on this connection. + * @return size_t + */ + virtual size_t bytesQueued() const { return _out.size(); } /** * Process the filedescriptor in the object diff --git a/src/linux_tcp/tcpconnected.h b/src/linux_tcp/tcpconnected.h index bc04223..83a1a4d 100644 --- a/src/linux_tcp/tcpconnected.h +++ b/src/linux_tcp/tcpconnected.h @@ -157,7 +157,13 @@ public: * @return int */ virtual int fileno() const override { return _socket; } - + + /** + * The number of outgoing bytes queued on this connection. + * @return size_t + */ + virtual size_t bytesQueued() const { return _out.size(); } + /** * Process the filedescriptor in the object * @param monitor Monitor to check if the object is still alive diff --git a/src/linux_tcp/tcpconnection.cpp b/src/linux_tcp/tcpconnection.cpp index b57922b..504fcf7 100644 --- a/src/linux_tcp/tcpconnection.cpp +++ b/src/linux_tcp/tcpconnection.cpp @@ -43,6 +43,15 @@ int TcpConnection::fileno() const return _state->fileno(); } +/** + * The number of outgoing bytes queued on this connection. + * @return size_t + */ +size_t TcpConnection::bytesQueued() const +{ + return _state->bytesQueued(); +} + /** * 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 1c3a280..c12a61c 100644 --- a/src/linux_tcp/tcpstate.h +++ b/src/linux_tcp/tcpstate.h @@ -63,6 +63,12 @@ public: */ virtual int fileno() const { return -1; } + /** + * The number of outgoing bytes queued on this connection. + * @return size_t + */ + virtual size_t bytesQueued() const { return 0; } + /** * Process the filedescriptor in the object *