OLD | NEW |
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 CHROME_BROWSER_CHROMEOS_POLICY_SYSTEM_LOG_UPLOAD_JOB_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_POLICY_SYSTEM_LOG_UPLOAD_JOB_H_ |
6 #define CHROME_BROWSER_CHROMEOS_POLICY_SYSTEM_LOG_UPLOAD_JOB_H_ | 6 #define CHROME_BROWSER_CHROMEOS_POLICY_SYSTEM_LOG_UPLOAD_JOB_H_ |
7 | 7 |
8 #include "base/cancelable_callback.h" | 8 #include "base/cancelable_callback.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
11 #include "base/memory/weak_ptr.h" | 11 #include "base/memory/weak_ptr.h" |
12 #include "chrome/browser/chromeos/policy/upload_job.h" | 12 #include "chrome/browser/chromeos/policy/upload_job.h" |
13 | 13 |
14 namespace policy { | 14 namespace policy { |
15 | 15 |
16 // Class responsible for doing a single system log upload. | 16 // Class responsible for doing a single system log upload. |
17 class SystemLogUploadJob : public UploadJob::Delegate { | 17 class SystemLogUploadJob : public UploadJob::Delegate { |
18 public: | 18 public: |
| 19 // Http header constants to upload. |
| 20 static const char* const kNameFieldTemplate; |
| 21 static const char* const kFileTypeHeaderName; |
| 22 static const char* const kFileTypeLogFile; |
| 23 static const char* const kContentTypePlainText; |
| 24 |
19 // Structure that stores the system log files as pairs: (file name, loaded | 25 // Structure that stores the system log files as pairs: (file name, loaded |
20 // from the disk binary file data). | 26 // from the disk binary file data). |
21 typedef std::vector<std::pair<std::string, std::string>> SystemLogs; | 27 typedef std::vector<std::pair<std::string, std::string>> SystemLogs; |
22 | 28 |
23 // A delegate interface used by SystemLogUploadJob to read the system logs | 29 // A delegate interface used by SystemLogUploadJob to read the system logs |
24 // from the disk and create an upload job. | 30 // from the disk and create an upload job. |
25 class Delegate { | 31 class Delegate { |
26 public: | 32 public: |
27 typedef base::Callback<void(const SystemLogs* system_logs)> | 33 typedef base::Callback<void(const SystemLogs* system_logs)> |
28 LogUploadCallback; | 34 LogUploadCallback; |
29 | 35 |
30 virtual ~Delegate() {} | 36 virtual ~Delegate() {} |
31 | 37 |
32 // Loads system logs and invokes |upload_callback|. | 38 // Loads system logs and invokes |upload_callback|. |
33 virtual void LoadSystemLogs(const LogUploadCallback& upload_callback) = 0; | 39 virtual void LoadSystemLogs(const LogUploadCallback& upload_callback) = 0; |
34 | 40 |
35 // Creates a new fully configured instance of an UploadJob. This method | 41 // Creates a new fully configured instance of an UploadJob. This method |
36 // may be called any number of times. | 42 // may be called any number of times. |
37 virtual scoped_ptr<UploadJob> CreateUploadJob(const GURL&, | 43 virtual scoped_ptr<UploadJob> CreateUploadJob(const GURL&, |
38 UploadJob::Delegate*) = 0; | 44 UploadJob::Delegate*) = 0; |
39 }; | 45 }; |
40 | 46 |
41 SystemLogUploadJob(scoped_ptr<Delegate> syslog_delegate, | 47 SystemLogUploadJob(scoped_ptr<Delegate> syslog_delegate, |
42 const base::Closure& succeeded_callback, | 48 const base::Closure& succeeded_callback, |
43 const base::Closure& failed_callback); | 49 const base::Closure& failed_callback); |
44 | 50 |
45 ~SystemLogUploadJob() override; | 51 ~SystemLogUploadJob() override; |
46 | 52 |
47 // Starts the system log upload, could be called only once for every created | 53 // Starts the system log upload, could be called only once for every created |
48 // upload job. | 54 // upload job, can be overridden for testing. |
49 void Run(); | 55 virtual void Run(); |
50 | 56 |
51 private: | 57 private: |
52 // UploadJob::Delegate: | 58 // UploadJob::Delegate: |
53 void OnSuccess() override; | 59 void OnSuccess() override; |
54 void OnFailure(UploadJob::ErrorCode error_code) override; | 60 void OnFailure(UploadJob::ErrorCode error_code) override; |
55 | 61 |
56 // Callback invoked to start loading system logs. | 62 // Callback invoked to start loading system logs. |
57 void StartLoadSystemLogs(); | 63 void StartLoadSystemLogs(); |
58 | 64 |
59 // Callback invoked when system logs are successfully loaded, | 65 // Callback invoked when system logs are successfully loaded, |
(...skipping 17 matching lines...) Expand all Loading... |
77 // Note: This should remain the last member so it'll be destroyed and | 83 // Note: This should remain the last member so it'll be destroyed and |
78 // invalidate the weak pointers before any other members are destroyed. | 84 // invalidate the weak pointers before any other members are destroyed. |
79 base::WeakPtrFactory<SystemLogUploadJob> weak_factory_; | 85 base::WeakPtrFactory<SystemLogUploadJob> weak_factory_; |
80 | 86 |
81 DISALLOW_COPY_AND_ASSIGN(SystemLogUploadJob); | 87 DISALLOW_COPY_AND_ASSIGN(SystemLogUploadJob); |
82 }; | 88 }; |
83 | 89 |
84 } // namespace policy | 90 } // namespace policy |
85 | 91 |
86 #endif // CHROME_BROWSER_CHROMEOS_POLICY_SYSTEM_LOG_UPLOAD_JOB_H_ | 92 #endif // CHROME_BROWSER_CHROMEOS_POLICY_SYSTEM_LOG_UPLOAD_JOB_H_ |
OLD | NEW |