Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3279)

Unified Diff: base/test/trace_event_analyzer.cc

Issue 8438058: Clean up some API in trace_event_analyzer.h and add some getters. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: added test for new APIs Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/test/trace_event_analyzer.cc
diff --git a/base/test/trace_event_analyzer.cc b/base/test/trace_event_analyzer.cc
index 3e0f3737943429af8a1d2aeea750dfe36001c0ea..0a2a15aec85ef6584313ced54218f45b9c7d83b8 100644
--- a/base/test/trace_event_analyzer.cc
+++ b/base/test/trace_event_analyzer.cc
@@ -72,12 +72,8 @@ bool TraceEvent::SetFromJSON(const base::Value* event_value) {
return false;
}
-bool TraceEvent::GetAbsTimeToOtherEvent(double* duration) const {
- if (!other_event)
- return false;
-
- *duration = fabs(other_event->timestamp - timestamp);
- return true;
+double TraceEvent::GetAbsTimeToOtherEvent() const {
+ return fabs(other_event->timestamp - timestamp);
}
bool TraceEvent::GetArgAsString(const std::string& name,
@@ -100,6 +96,46 @@ bool TraceEvent::GetArgAsNumber(const std::string& name,
return false;
}
+bool TraceEvent::HasStringArg(const std::string& name) const {
+ return (arg_strings.find(name) != arg_strings.end());
+}
+
+bool TraceEvent::HasNumberArg(const std::string& name) const {
+ return (arg_numbers.find(name) != arg_numbers.end());
+}
+
+std::string TraceEvent::GetKnownArgAsString(const std::string& name) const {
+ std::string arg_string;
+ if (GetArgAsString(name, &arg_string))
+ return arg_string;
+ NOTREACHED();
+ return "";
+}
+
+double TraceEvent::GetKnownArgAsDouble(const std::string& name) const {
+ double arg_double;
+ if (GetArgAsNumber(name, &arg_double))
+ return arg_double;
+ NOTREACHED();
+ return 0;
+}
+
+int TraceEvent::GetKnownArgAsInt(const std::string& name) const {
+ double arg_double;
+ if (GetArgAsNumber(name, &arg_double))
+ return static_cast<int>(arg_double);
+ NOTREACHED();
+ return 0;
+}
+
+bool TraceEvent::GetKnownArgAsBool(const std::string& name) const {
+ double arg_double;
+ if (GetArgAsNumber(name, &arg_double))
+ return (arg_double != 0.0);
+ NOTREACHED();
+ return false;
+}
+
// QueryNode
QueryNode::QueryNode(const Query& query) : query_(query) {
@@ -386,9 +422,8 @@ base::debug::TraceValue Query::GetMemberValue(const TraceEvent& event) const {
return the_event->timestamp;
case EVENT_DURATION:
{
- double duration;
- if (the_event->GetAbsTimeToOtherEvent(&duration))
- return duration;
+ if (the_event->has_other_event())
+ return the_event->GetAbsTimeToOtherEvent();
else
return base::debug::TraceValue();
}
@@ -401,13 +436,12 @@ base::debug::TraceValue Query::GetMemberValue(const TraceEvent& event) const {
case EVENT_NAME:
case OTHER_NAME:
return the_event->name;
- case EVENT_HAS_ARG:
- case OTHER_HAS_ARG:
- // Search for the argument name and return true if found.
- return static_cast<double>((the_event->arg_strings.find(string_) !=
- the_event->arg_strings.end()) ||
- (the_event->arg_numbers.find(string_) !=
- the_event->arg_numbers.end()) ? 1 : 0);
+ case EVENT_HAS_STRING_ARG:
+ case OTHER_HAS_STRING_ARG:
+ return (the_event->HasStringArg(string_) ? 1.0 : 0.0);
+ case EVENT_HAS_NUMBER_ARG:
+ case OTHER_HAS_NUMBER_ARG:
+ return (the_event->HasNumberArg(string_) ? 1.0 : 0.0);
case EVENT_ARG:
case OTHER_ARG:
{

Powered by Google App Engine
This is Rietveld 408576698