Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef DBUS_DBUS_STATISTICS_H_ | |
| 6 #define DBUS_DBUS_STATISTICS_H_ | |
| 7 | |
| 8 #include <set> | |
| 9 #include <string> | |
| 10 | |
| 11 #include "base/basictypes.h" | |
| 12 #include "base/time.h" | |
| 13 #include "dbus/dbus_export.h" | |
| 14 | |
| 15 namespace dbus { | |
| 16 | |
| 17 class CHROME_DBUS_EXPORT DbusStatistics { | |
|
satorux1
2012/11/12 00:40:43
Please write some class comment.
satorux1
2012/11/12 00:40:43
Dbus -> DBus, to be consistent with other classes
stevenjb
2012/11/12 19:46:40
Done.
stevenjb
2012/11/12 19:46:40
Done.
| |
| 18 public: | |
| 19 // Enum to specify which details to show in GetAsString | |
| 20 enum ShowInString { | |
| 21 SHOW_SERVICE = 0, // Service totals only | |
| 22 SHOW_INTERFACE = 1, // Service + interface totals | |
| 23 SHOW_METHOD = 2, // Service + interface + method totals | |
| 24 }; | |
| 25 | |
| 26 struct Stat { | |
| 27 Stat(const std::string& service, | |
| 28 const std::string& interface, | |
| 29 const std::string& method); | |
| 30 std::string service; | |
| 31 std::string interface; | |
| 32 std::string method; | |
| 33 int sent_calls; | |
| 34 int received_calls; | |
| 35 | |
| 36 bool Compare(const Stat& other) const; | |
|
satorux1
2012/11/12 00:40:43
Returns true when?
stevenjb
2012/11/12 19:46:40
Compare == < is pretty standard, but added a comme
| |
| 37 | |
| 38 struct PtrCompare { | |
| 39 bool operator()(Stat* lhs, Stat* rhs) const; | |
| 40 }; | |
| 41 }; | |
| 42 | |
| 43 DbusStatistics(); | |
|
hashimoto
2012/11/12 04:33:16
Since all public methods are static, how about hid
satorux1
2012/11/12 04:43:17
Good ideas. I think we can hide the DbusStatistics
stevenjb
2012/11/12 19:46:40
That makes sense. I think I started this expecting
| |
| 44 ~DbusStatistics(); | |
| 45 | |
| 46 // Initializes / shuts down dbus statistics gathering. Calling Initialize | |
| 47 // more than once will reset the statistics. | |
| 48 static void Initialize(); | |
| 49 static void Shutdown(); | |
| 50 | |
| 51 // Static methods do nothing uless Initialize() was called. | |
|
satorux1
2012/11/12 00:40:43
Please also write what these functions do.
stevenjb
2012/11/12 19:46:40
Done.
| |
| 52 static void AddSentCall(const std::string& service, | |
|
satorux1
2012/11/12 00:40:43
Call -> MethodCall to be a bit more descriptive?
stevenjb
2012/11/12 19:46:40
Done.
| |
| 53 const std::string& interface, | |
| 54 const std::string& method); | |
| 55 static void AddReceivedCall(const std::string& service, | |
|
satorux1
2012/11/12 00:40:43
ditto.
stevenjb
2012/11/12 19:46:40
Done.
| |
| 56 const std::string& interface, | |
| 57 const std::string& method); | |
| 58 | |
| 59 // Output the calls into a formatted string. |show| determines what level | |
| 60 // of detail to show: one line per service, per interface, or per method. | |
| 61 // If |show_per_minute| is true include per minute stats. | |
| 62 static std::string GetAsString(ShowInString show, bool show_per_minute); | |
|
satorux1
2012/11/12 00:40:43
boolean parameter like this makes the client code
stevenjb
2012/11/12 19:46:40
I find bitfields to be error-prone; C++ doesn't ha
| |
| 63 | |
| 64 // Testing | |
|
satorux1
2012/11/12 00:40:43
Please write a function comment.
stevenjb
2012/11/12 19:46:40
Done.
| |
| 65 static bool GetCallsForTesting(const std::string& service, | |
| 66 const std::string& interface, | |
| 67 const std::string& method, | |
| 68 int* sent, | |
| 69 int* received); | |
| 70 | |
| 71 private: | |
| 72 // Eunum to specify which field in Stat to incrament in AddStat | |
| 73 enum StatType { | |
| 74 TYPE_SENT, | |
| 75 TYPE_RECEIVED | |
| 76 }; | |
| 77 | |
| 78 typedef std::set<Stat*, Stat::PtrCompare> StatSet; | |
| 79 | |
| 80 // Add a call to |method| for |interface|. See also MethodCall in message.h. | |
| 81 void AddStat(const std::string& service, | |
| 82 const std::string& interface, | |
| 83 const std::string& method, | |
| 84 StatType type); | |
| 85 | |
| 86 // Look up the Stat entry in |stats_|. If |add_stat| is true, add a new entry | |
| 87 // if one does not already exist. | |
| 88 Stat* GetStat(const std::string& service, | |
| 89 const std::string& interface, | |
| 90 const std::string& method, | |
| 91 bool add_stat); | |
| 92 | |
| 93 StatSet stats_; | |
| 94 base::Time start_time_; | |
| 95 | |
| 96 DISALLOW_COPY_AND_ASSIGN(DbusStatistics); | |
| 97 }; | |
| 98 | |
| 99 } // namespace dbus | |
| 100 | |
| 101 #endif // DBUS_DBUS_STATISTICS_H_ | |
| OLD | NEW |