• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 // File error statistics gathering.
6 
7 #ifndef NET_BASE_FILE_STREAM_METRICS_H_
8 #define NET_BASE_FILE_STREAM_METRICS_H_
9 
10 namespace net {
11 
12 enum FileErrorSource {
13   FILE_ERROR_SOURCE_OPEN = 0,
14   FILE_ERROR_SOURCE_WRITE,
15   FILE_ERROR_SOURCE_READ,
16   FILE_ERROR_SOURCE_SEEK,
17   FILE_ERROR_SOURCE_FLUSH,
18   FILE_ERROR_SOURCE_SET_EOF,
19   FILE_ERROR_SOURCE_GET_SIZE,
20   FILE_ERROR_SOURCE_CLOSE,
21   FILE_ERROR_SOURCE_COUNT,
22 };
23 
24 // UMA error statistics gathering.
25 // Put the error value into a bucket.
26 int GetFileErrorUmaBucket(int error);
27 
28 // The largest bucket number, plus 1.
29 int MaxFileErrorUmaBucket();
30 
31 // The highest error value we want to individually report.
32 int MaxFileErrorUmaValue();
33 
34 // |error| is a platform-specific error (Windows or Posix).
35 // |source| indicates the operation that resulted in the error.
36 // |record| is a flag indicating that we are interested in this error.
37 void RecordFileError(int error, FileErrorSource source, bool record);
38 
39 // Gets a description for the source of a file error.
40 const char* GetFileErrorSourceName(FileErrorSource source);
41 
42 }  // namespace net
43 
44 #endif  // NET_BASE_FILE_STREAM_METRICS_H_
45