cc: Added inline to Tile::IsReadyToDraw
[chromium-blink-merge.git] / net / base / file_stream_metrics.cc
blob4dc0576325f3a312704d787ac85bfc80baa14986
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.
5 #include "net/base/file_stream_metrics.h"
7 #include "base/basictypes.h"
8 #include "base/logging.h"
9 #include "base/metrics/histogram.h"
11 namespace net {
13 namespace {
15 const char* FileErrorSourceStrings[] = {
16 "OPEN",
17 "WRITE",
18 "READ",
19 "SEEK",
20 "FLUSH",
21 "SET_EOF",
22 "GET_SIZE"
25 COMPILE_ASSERT(ARRAYSIZE_UNSAFE(FileErrorSourceStrings) ==
26 FILE_ERROR_SOURCE_COUNT,
27 file_error_source_enum_has_changed);
29 void RecordFileErrorTypeCount(FileErrorSource source) {
30 UMA_HISTOGRAM_ENUMERATION(
31 "Net.FileErrorType_Counts", source, FILE_ERROR_SOURCE_COUNT);
34 } // namespace
36 void RecordFileError(int error, FileErrorSource source, bool record) {
37 LOG(ERROR) << " " << __FUNCTION__ << "()"
38 << " error = " << error
39 << " source = " << source
40 << " record = " << record;
42 if (!record)
43 return;
45 RecordFileErrorTypeCount(source);
47 int bucket = GetFileErrorUmaBucket(error);
49 // Fixed values per platform.
50 static const int max_bucket = MaxFileErrorUmaBucket();
51 static const int max_error = MaxFileErrorUmaValue();
53 switch(source) {
54 case FILE_ERROR_SOURCE_OPEN:
55 UMA_HISTOGRAM_ENUMERATION("Net.FileError_Open", error, max_error);
56 UMA_HISTOGRAM_ENUMERATION("Net.FileErrorRange_Open", bucket, max_bucket);
57 break;
59 case FILE_ERROR_SOURCE_WRITE:
60 UMA_HISTOGRAM_ENUMERATION("Net.FileError_Write", error, max_error);
61 UMA_HISTOGRAM_ENUMERATION("Net.FileErrorRange_Write", bucket, max_bucket);
62 break;
64 case FILE_ERROR_SOURCE_READ:
65 UMA_HISTOGRAM_ENUMERATION("Net.FileError_Read", error, max_error);
66 UMA_HISTOGRAM_ENUMERATION("Net.FileErrorRange_Read", bucket, max_bucket);
67 break;
69 case FILE_ERROR_SOURCE_SEEK:
70 UMA_HISTOGRAM_ENUMERATION("Net.FileError_Seek", error, max_error);
71 UMA_HISTOGRAM_ENUMERATION("Net.FileErrorRange_Seek", bucket, max_bucket);
72 break;
74 case FILE_ERROR_SOURCE_FLUSH:
75 UMA_HISTOGRAM_ENUMERATION("Net.FileError_Flush", error, max_error);
76 UMA_HISTOGRAM_ENUMERATION("Net.FileErrorRange_Flush", bucket, max_bucket);
77 break;
79 case FILE_ERROR_SOURCE_SET_EOF:
80 UMA_HISTOGRAM_ENUMERATION("Net.FileError_SetEof", error, max_error);
81 UMA_HISTOGRAM_ENUMERATION("Net.FileErrorRange_SetEof", bucket,
82 max_bucket);
83 break;
85 case FILE_ERROR_SOURCE_GET_SIZE:
86 UMA_HISTOGRAM_ENUMERATION("Net.FileError_GetSize", error, max_error);
87 UMA_HISTOGRAM_ENUMERATION("Net.FileErrorRange_GetSize", bucket,
88 max_bucket);
89 break;
91 default:
92 break;
96 const char* GetFileErrorSourceName(FileErrorSource source) {
97 DCHECK_NE(FILE_ERROR_SOURCE_COUNT, source);
98 return FileErrorSourceStrings[source];
101 } // namespace net