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

Unified Diff: net/base/file_stream.h

Issue 7583049: Record UMA statistics for file_stream operations. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Saved the error code in case it's modified by recording it. Created 9 years, 4 months 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: net/base/file_stream.h
diff --git a/net/base/file_stream.h b/net/base/file_stream.h
index 5e07adcf6a703714a5919dfd2ad0689bc7b92e35..60b33bce752cd3fa67ee5fc9f910d474c878e212 100644
--- a/net/base/file_stream.h
+++ b/net/base/file_stream.h
@@ -20,6 +20,29 @@ class FilePath;
namespace net {
+enum RecordingClass {
cbentzel 2011/08/15 19:49:11 This CL would be a lot easier without the Recordin
ahendrickson 2011/08/15 23:42:26 Done.
+ RECORDING_CLASS_NONE = 0,
+ RECORDING_CLASS_DOWNLOADS = 1,
+ // Add more flags here as necessary. Max 31.
+ RECORDING_CLASS_MAX,
+};
+
+enum FileErrorTypes {
cbentzel 2011/08/15 19:49:11 This doesn't need to be exposed in this header - i
cbentzel 2011/08/15 19:49:11 Nit: maybe FileError rather than FileErrorTypes
ahendrickson 2011/08/15 23:42:26 Renamed to FileErrorSource.
ahendrickson 2011/08/15 23:42:26 Done.
+ FILE_ERROR_TYPES_IS_NOT_OPEN = 0,
+ FILE_ERROR_TYPES_OPEN,
+ FILE_ERROR_TYPES_WRITE,
+ FILE_ERROR_TYPES_READ,
+ FILE_ERROR_TYPES_SEEK,
+ FILE_ERROR_TYPES_FLUSH,
+ FILE_ERROR_TYPES_SET_EOF,
+ FILE_ERROR_TYPES_GET_SIZE,
+ FILE_ERROR_TYPES_COUNT,
+};
+
+void EnableRecordingForClass(int class_flags);
+
+void RecordFileError(int error, FileErrorTypes type, int class_flags);
cbentzel 2011/08/15 19:49:11 This would also move to the new header.
ahendrickson 2011/08/15 23:42:26 Done.
+
// TODO(darin): Move this to a more generic location.
// This explicit mapping matches both FILE_ on Windows and SEEK_ on Linux.
enum Whence {
@@ -31,6 +54,7 @@ enum Whence {
class NET_API FileStream {
public:
FileStream();
+ explicit FileStream(int class_flags);
cbentzel 2011/08/15 19:49:11 Remove the new constructors and just use EnableRec
ahendrickson 2011/08/15 23:42:26 Done.
// Construct a FileStream with an existing file handle and opening flags.
// |file| is valid file handle.
@@ -40,6 +64,14 @@ class NET_API FileStream {
// is destructed.
FileStream(base::PlatformFile file, int flags);
+ // Construct a FileStream with an existing file handle and opening flags.
cbentzel 2011/08/15 19:49:11 Ditto.
ahendrickson 2011/08/15 23:42:26 Done.
+ // |file| is valid file handle.
+ // |flags| is a bitfield of base::PlatformFileFlags when the file handle was
+ // opened.
+ // The already opened file will not be automatically closed when FileStream
+ // is destructed.
+ FileStream(base::PlatformFile file, int flags, int class_flags);
+
~FileStream();
// Call this method to close the FileStream. It is OK to call Close
@@ -132,6 +164,8 @@ class NET_API FileStream {
// This method should not be called if the stream was opened READ_ONLY.
int Flush();
+ void EnableRecording(bool enable, int class_flags);
cbentzel 2011/08/15 19:49:11 Just make this void EnableRecording(); enable i
ahendrickson 2011/08/15 23:42:26 Done.
+
private:
class AsyncContext;
friend class AsyncContext;
@@ -143,6 +177,7 @@ class NET_API FileStream {
base::PlatformFile file_;
int open_flags_;
bool auto_closed_;
+ int class_flags_;
DISALLOW_COPY_AND_ASSIGN(FileStream);
};

Powered by Google App Engine
This is Rietveld 408576698