diff options
| author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2025-03-11 16:48:39 +0100 | 
|---|---|---|
| committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2025-03-11 16:48:39 +0100 | 
| commit | 228ec291a58869a19b368a536f3ea0fcd97a57b6 (patch) | |
| tree | 957d2be8f67f0fbd6ae70c49e3705061982c8fbf /lib/Socket.cpp | |
| parent | b2a964b6338466b74d6ef217f7453a1c7c2f72c9 (diff) | |
| download | ODR-SourceCompanion-228ec291a58869a19b368a536f3ea0fcd97a57b6.tar.gz ODR-SourceCompanion-228ec291a58869a19b368a536f3ea0fcd97a57b6.tar.bz2 ODR-SourceCompanion-228ec291a58869a19b368a536f3ea0fcd97a57b6.zip | |
Update common 5959418
Diffstat (limited to 'lib/Socket.cpp')
| -rw-r--r-- | lib/Socket.cpp | 22 | 
1 files changed, 22 insertions, 0 deletions
| diff --git a/lib/Socket.cpp b/lib/Socket.cpp index 938b573..5c920d7 100644 --- a/lib/Socket.cpp +++ b/lib/Socket.cpp @@ -24,6 +24,7 @@  #include "Socket.h" +#include <numeric>  #include <stdexcept>  #include <cstdio>  #include <cstring> @@ -1063,6 +1064,17 @@ void TCPConnection::process()  #endif  } +TCPConnection::stats_t TCPConnection::get_stats() const +{ +    TCPConnection::stats_t s; +    const vector<size_t> buffer_sizes = queue.map<size_t>( +            [](const vector<uint8_t>& vec) { return vec.size(); } +            ); + +    s.buffer_fullness = std::accumulate(buffer_sizes.cbegin(), buffer_sizes.cend(), 0); +    s.remote_address = m_sock.get_remote_address(); +    return s; +}  TCPDataDispatcher::TCPDataDispatcher(size_t max_queue_size, size_t buffers_to_preroll) :      m_max_queue_size(max_queue_size), @@ -1136,6 +1148,16 @@ void TCPDataDispatcher::process()      }  } + +std::vector<TCPConnection::stats_t> TCPDataDispatcher::get_stats() const +{ +    std::vector<TCPConnection::stats_t> s; +    for (const auto& conn : m_connections) { +        s.push_back(conn.get_stats()); +    } +    return s; +} +  TCPReceiveServer::TCPReceiveServer(size_t blocksize) :      m_blocksize(blocksize)  { | 
