| Index: dbus/dbus_statistics.h
|
| diff --git a/dbus/dbus_statistics.h b/dbus/dbus_statistics.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2bd9fd9baf706a5de556a3543eab063852ddb063
|
| --- /dev/null
|
| +++ b/dbus/dbus_statistics.h
|
| @@ -0,0 +1,74 @@
|
| +// 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"
|
| +
|
| +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_
|
|
|