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

Side by Side Diff: chromecast/crash/linux/dummy_minidump_generator.h

Issue 1227963002: Replace system IO calls in chromecast/crash with Chrome utilities. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: nit. Created 5 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROMECAST_CRASH_LINUX_DUMMY_MINIDUMP_GENERATOR_H_ 5 #ifndef CHROMECAST_CRASH_LINUX_DUMMY_MINIDUMP_GENERATOR_H_
6 #define CHROMECAST_CRASH_LINUX_DUMMY_MINIDUMP_GENERATOR_H_ 6 #define CHROMECAST_CRASH_LINUX_DUMMY_MINIDUMP_GENERATOR_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "chromecast/crash/linux/minidump_generator.h" 11 #include "chromecast/crash/linux/minidump_generator.h"
12 12
13 namespace chromecast { 13 namespace chromecast {
14 14
15 class DummyMinidumpGenerator : public MinidumpGenerator { 15 class DummyMinidumpGenerator : public MinidumpGenerator {
16 public: 16 public:
17 // A dummy minidump generator to move an existing minidump into 17 // A dummy minidump generator to move an existing minidump into
18 // crash_uploader's monitoring path ($HOME/minidumps). The path is monitored 18 // crash_uploader's monitoring path ($HOME/minidumps). The path is monitored
19 // with file lock-control, so that third process should not write to it 19 // with file lock-control, so that third process should not write to it
20 // directly. 20 // directly.
21 explicit DummyMinidumpGenerator(const std::string& existing_minidump_path); 21 explicit DummyMinidumpGenerator(const std::string& existing_minidump_path);
22 22
23 // MinidumpGenerator implementation: 23 // MinidumpGenerator implementation:
24 // Moves the minidump located at |existing_minidump_path_| to |minidump_path|.
25 // Returns true if successful, false otherwise. Note that this function MUST
26 // be called on a thread without IO restrictions, or it will fail fatally.
24 bool Generate(const std::string& minidump_path) override; 27 bool Generate(const std::string& minidump_path) override;
25 28
26 // Provide access to internal utility for testing.
27 bool CopyAndDeleteForTest(const std::string& dest_path) {
28 return CopyAndDelete(dest_path);
29 }
30
31 private: 29 private:
32 // Copies the contents of the file at |existing_minidump_path_| to the file at
33 // |dest_path|. If the copy operation succeeds, delete the file at
34 // |existing_minidump_path_|. Returns false if |existing_minidump_path_| can't
35 // be opened, or if the copy operation fails. Ideally, we would use Chrome
36 // utilities for a task like this, but we must ensure that this operation can
37 // occur on any thread (regardless of IO restrictions).
38 bool CopyAndDelete(const std::string& dest_path);
39
40 const std::string existing_minidump_path_; 30 const std::string existing_minidump_path_;
41 31
42 DISALLOW_COPY_AND_ASSIGN(DummyMinidumpGenerator); 32 DISALLOW_COPY_AND_ASSIGN(DummyMinidumpGenerator);
43 }; 33 };
44 34
45 } // namespace chromecast 35 } // namespace chromecast
46 36
47 #endif // CHROMECAST_CRASH_LINUX_DUMMY_MINIDUMP_GENERATOR_H_ 37 #endif // CHROMECAST_CRASH_LINUX_DUMMY_MINIDUMP_GENERATOR_H_
OLDNEW
« no previous file with comments | « chromecast/crash/linux/crash_util.cc ('k') | chromecast/crash/linux/dummy_minidump_generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698