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

Unified Diff: client/settings.h

Issue 1392953002: Don’t log an error when creating a new crash report database (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Add missing be Created 5 years, 2 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
« no previous file with comments | « no previous file | client/settings.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/settings.h
diff --git a/client/settings.h b/client/settings.h
index 61e18c4339e69628ffb76363eb2205dceb783c0e..ac22f68e8d8b2a7a1a4e3a848ae9dadc873e97af 100644
--- a/client/settings.h
+++ b/client/settings.h
@@ -23,7 +23,7 @@
#include "base/files/file_path.h"
#include "base/scoped_generic.h"
#include "util/file/file_io.h"
-#include "util/misc/initialization_state_dcheck.h"
+#include "util/misc/initialization_state.h"
#include "util/misc/uuid.h"
namespace crashpad {
@@ -108,8 +108,7 @@ class Settings {
// This must be constructed with MakeScopedLockedFileHandle(). It both unlocks
// and closes the file on destruction.
using ScopedLockedFileHandle =
- base::ScopedGeneric<FileHandle,
- internal::ScopedLockedFileHandleTraits>;
+ base::ScopedGeneric<FileHandle, internal::ScopedLockedFileHandleTraits>;
static ScopedLockedFileHandle MakeScopedLockedFileHandle(FileHandle file,
FileLocking locking);
@@ -118,8 +117,15 @@ class Settings {
ScopedLockedFileHandle OpenForReading();
// Opens the settings file for reading and writing. On error, logs a message
- // and returns the invalid handle.
- ScopedLockedFileHandle OpenForReadingAndWriting();
+ // and returns the invalid handle. |mode| determines how the file will be
+ // opened. |mode| must not be FileWriteMode::kTruncateOrCreate.
+ //
+ // If |log_open_error| is false, nothing will be logged for an error
+ // encountered when attempting to open the file, but this method will still
+ // return false. This is intended to be used to suppress error messages when
+ // attempting to create a new settings file when multiple attempts are made.
+ ScopedLockedFileHandle OpenForReadingAndWriting(FileWriteMode mode,
+ bool log_open_error);
// Opens the settings file and reads the data. If that fails, an error will
// be logged and the settings will be recovered and re-initialized. If that
@@ -133,10 +139,20 @@ class Settings {
// Reads the settings from |handle|. Logs an error and returns false on
// failure. This does not perform recovery.
- bool ReadSettings(FileHandle handle, Data* out_data);
+ //
+ // |handle| must be the result of OpenForReading() or
+ // OpenForReadingAndWriting().
+ //
+ // If |log_read_error| is false, nothing will be logged for a read error, but
+ // this method will still return false. This is intended to be used to
+ // suppress error messages when attempting to read a newly created settings
+ // file.
+ bool ReadSettings(FileHandle handle, Data* out_data, bool log_read_error);
// Writes the settings to |handle|. Logs an error and returns false on
// failure. This does not perform recovery.
+ //
+ // |handle| must be the result of OpenForReadingAndWriting().
bool WriteSettings(FileHandle handle, const Data& data);
// Recovers the settings file by re-initializing the data. If |handle| is the
@@ -149,13 +165,15 @@ class Settings {
// Initializes a settings file and writes the data to |handle|. Returns true
// on success and false on failure, with an error logged.
+ //
+ // |handle| must be the result of OpenForReadingAndWriting().
bool InitializeSettings(FileHandle handle);
const base::FilePath& file_path() const { return file_path_; }
base::FilePath file_path_;
- InitializationStateDcheck initialized_;
+ InitializationState initialized_;
DISALLOW_COPY_AND_ASSIGN(Settings);
};
« no previous file with comments | « no previous file | client/settings.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698