1 // Copyright 2014 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.
5 #ifndef CHROME_BROWSER_CHROMEOS_SYSTEM_LOGS_DEBUG_LOG_WRITER_H_
6 #define CHROME_BROWSER_CHROMEOS_SYSTEM_LOGS_DEBUG_LOG_WRITER_H_
8 #include "base/basictypes.h"
9 #include "base/callback_forward.h"
10 #include "base/files/file_path.h"
14 class DebugLogWriter
{
16 // Called once StoreDebugLogs is complete. Takes two parameters:
17 // - log_path: where the log file was saved in the case of success;
18 // - succeeded: was the log file saved successfully.
19 typedef base::Callback
<void(const base::FilePath
& log_path
, bool succeeded
)>
22 // Stores debug logs in either .tgz or .tar archive (depending on value of
23 // |should_compress|) on the |fileshelf|. The file is created on the
24 // worker pool, then writing to it is triggered from the UI thread, and
25 // finally it is closed (on success) or deleted (on failure) on the worker
26 // pool, prior to calling |callback|.
27 static void StoreLogs(const base::FilePath
& fileshelf
,
29 const StoreLogsCallback
& callback
);
31 // Stores both system and user logs in .tgz archive on the |fileshelf|.
32 // |sequence_token_name| defines named sequence for task running on
33 // blocking pool (file operations).
34 static void StoreCombinedLogs(const base::FilePath
& fileshelf
,
35 const std::string
& sequence_token_name
,
36 const StoreLogsCallback
& callback
);
40 DISALLOW_COPY_AND_ASSIGN(DebugLogWriter
);
43 } // namespace chromeos
45 #endif // CHROME_BROWSER_CHROMEOS_SYSTEM_LOGS_DEBUG_LOG_WRITER_H_