12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- // Copyright (c) 2012 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef DBUS_DBUS_STATISTICS_H_
- #define DBUS_DBUS_STATISTICS_H_
- #include <string>
- #include "dbus/dbus_export.h"
- // The functions defined here are used to gather DBus statistics, and
- // provide them in a format convenient for debugging. These functions are only
- // valid when called from the main thread (the thread which Initialize() was
- // called from). Calls from other threads will be ignored.
- namespace dbus {
- namespace statistics {
- // Enum to specify what level of detail to show in GetAsString
- enum ShowInString {
- SHOW_SERVICE = 0, // Service totals only
- SHOW_INTERFACE = 1, // Service + interface totals
- SHOW_METHOD = 2, // Service + interface + method totals
- };
- // Enum to specify how to format the display in GetAsString
- enum FormatString {
- FORMAT_TOTALS = 0, // Raw totals only
- FORMAT_PER_MINUTE = 1, // Per-minute only
- FORMAT_ALL = 2 // Include all format details
- };
- // Initializes / shuts down dbus statistics gathering. Calling Initialize
- // more than once will reset the statistics.
- CHROME_DBUS_EXPORT void Initialize();
- CHROME_DBUS_EXPORT void Shutdown();
- // Add sent/received calls to the statistics gathering class. These methods
- // do nothing unless Initialize() was called.
- CHROME_DBUS_EXPORT void AddSentMethodCall(const std::string& service,
- const std::string& interface,
- const std::string& method);
- CHROME_DBUS_EXPORT void AddReceivedSignal(const std::string& service,
- const std::string& interface,
- const std::string& method);
- // Track synchronous calls independently since we want to highlight
- // (and remove) these.
- CHROME_DBUS_EXPORT void AddBlockingSentMethodCall(const std::string& service,
- const std::string& interface,
- const std::string& method);
- // Output the calls into a formatted string. |show| determines what level
- // of detail to show: one line per service, per interface, or per method.
- // If |show_per_minute| is true include per minute stats.
- // Example output for SHOW_METHOD, FORMAT_TOTALS:
- // org.chromium.Mtpd.EnumerateStorage: Sent: 100
- // org.chromium.Mtpd.MTPStorageSignal: Received: 20
- // Example output for SHOW_INTERFACE, FORMAT_ALL:
- // org.chromium.Mtpd: Sent: 100 (10/min) Received: 20 (2/min)
- CHROME_DBUS_EXPORT std::string GetAsString(ShowInString show,
- FormatString format);
- namespace testing {
- // Sets |sent| to the number of sent calls, |received| to the number of
- // received calls, and |blocking| to the number of sent blocking calls for
- // service+interface+method. Used in unittests.
- CHROME_DBUS_EXPORT bool GetCalls(const std::string& service,
- const std::string& interface,
- const std::string& method,
- int* sent,
- int* received,
- int* blocking);
- } // namespace testing
- } // namespace statistics
- } // namespace dbus
- #endif // DBUS_DBUS_STATISTICS_H_
|