// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_FEEDBACK_SYSTEM_LOGS_SYSTEM_LOGS_FETCHER_H_ #define COMPONENTS_FEEDBACK_SYSTEM_LOGS_SYSTEM_LOGS_FETCHER_H_ #include <stddef.h> #include <map> #include <memory> #include <string> #include <vector> #include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h" #include "build/chromeos_buildflags.h" #include "components/feedback/feedback_common.h" #include "components/feedback/redaction_tool/redaction_tool.h" #include "components/feedback/system_logs/system_logs_source.h" namespace system_logs { // Callback that the SystemLogsFetcher uses to return data. SysLogsFetcherCallback; // The SystemLogsFetcher fetches key-value data from a list of log sources. // // EXAMPLE: // class Example { // public: // void ProcessLogs(std::unique_ptr<SystemLogsResponse> response) { // // do something with the logs // } // void GetLogs() { // SystemLogsFetcher* fetcher = new SystemLogsFetcher(/*scrub_data=*/ true); // fetcher->AddSource(std::make_unique<LogSourceOne>()); // fetcher->AddSource(std::make_unique<LogSourceTwo>()); // fetcher->Fetch(base::BindOnce(&Example::ProcessLogs, this)); // } // }; class SystemLogsFetcher { … }; } // namespace system_logs #endif // COMPONENTS_FEEDBACK_SYSTEM_LOGS_SYSTEM_LOGS_FETCHER_H_