1 // Copyright (c) 2011 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_SYSLOGS_PROVIDER_H_
6 #define CHROME_BROWSER_CHROMEOS_SYSTEM_SYSLOGS_PROVIDER_H_
11 #include "base/callback.h"
12 #include "chrome/common/cancelable_task_tracker.h"
17 // Maximum number of bytes in system info log chunk to be still included
18 // in product specific data.
19 extern const size_t kFeedbackMaxLength;
21 // Maximum number of lines in system info log chunk to be still included
22 // in product specific data.
23 extern const size_t kFeedbackMaxLineCount;
25 typedef std::map<std::string, std::string> LogDictionaryType;
27 // This interface provides access to Chrome OS syslogs.
28 class SyslogsProvider {
30 static SyslogsProvider* GetInstance();
32 // The callback type used with RequestSyslogs().
33 typedef base::Callback<void(LogDictionaryType*,
34 std::string*)> ReadCompleteCallback;
36 // Used to specify the syslogs context with RequestSyslogs().
44 // Request system logs. Read happens on the FILE thread and callback is
45 // called on the thread this is called from. Logs are owned by callback
46 // function (use delete when done with them).
47 // Call CancelableTaskTracker::TryCancel() with the returned task ID to cancel
49 virtual CancelableTaskTracker::TaskId RequestSyslogs(
51 SyslogsContext context,
52 const ReadCompleteCallback& callback,
53 CancelableTaskTracker* tracker) = 0;
56 virtual ~SyslogsProvider() {}
60 } // namespace chromeos
62 #endif // CHROME_BROWSER_CHROMEOS_SYSTEM_SYSLOGS_PROVIDER_H_