diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2011-02-08 12:51:33 +0000 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2011-06-24 16:01:46 +0100 |
commit | fce1f6b55fc0f9716dc2e049acc10697fb9b6f84 (patch) | |
tree | b80117c1e733e70476e2d62f4e103ff5514f2f75 /dbus/dbus-connection.c | |
parent | 8a3e7581e70b9937db392aa24f6885d3bcc00fe8 (diff) | |
download | dbus-fce1f6b55fc0f9716dc2e049acc10697fb9b6f84.tar.gz |
DBusConnection, DBusTransport: add queue statistics
Reviewed-by: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=34040
Diffstat (limited to 'dbus/dbus-connection.c')
-rw-r--r-- | dbus/dbus-connection.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c index 9ec85c06..62792dba 100644 --- a/dbus/dbus-connection.c +++ b/dbus/dbus-connection.c @@ -6157,6 +6157,36 @@ dbus_connection_get_outgoing_size (DBusConnection *connection) return res; } +#ifdef DBUS_ENABLE_STATS +void +_dbus_connection_get_stats (DBusConnection *connection, + dbus_uint32_t *in_messages, + dbus_uint32_t *in_bytes, + dbus_uint32_t *in_fds, + dbus_uint32_t *out_messages, + dbus_uint32_t *out_bytes, + dbus_uint32_t *out_fds) +{ + CONNECTION_LOCK (connection); + + if (in_messages != NULL) + *in_messages = connection->n_incoming; + + _dbus_transport_get_stats (connection->transport, in_bytes, in_fds); + + if (out_messages != NULL) + *out_messages = connection->n_outgoing; + + if (out_bytes != NULL) + *out_bytes = _dbus_counter_get_size_value (connection->outgoing_counter); + + if (out_fds != NULL) + *out_fds = _dbus_counter_get_unix_fd_value (connection->outgoing_counter); + + CONNECTION_UNLOCK (connection); +} +#endif /* DBUS_ENABLE_STATS */ + /** * Gets the approximate number of uni fds of all messages in the * outgoing message queue. |