#ifndef REMOTING_HOST_CRASH_CRASH_FILE_UPLOADER_H_
#define REMOTING_HOST_CRASH_CRASH_FILE_UPLOADER_H_
#include <memory>
#include "base/files/file_path.h"
#include "base/files/file_path_watcher.h"
#include "base/memory/scoped_refptr.h"
#include "base/threading/thread_checker.h"
namespace base {
class SingleThreadTaskRunner;
}
namespace network {
class SharedURLLoaderFactory;
}
namespace remoting {
class CrashFileUploader {
public:
CrashFileUploader(
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
scoped_refptr<base::SingleThreadTaskRunner> core_task_runner);
CrashFileUploader(const CrashFileUploader&) = delete;
CrashFileUploader& operator=(const CrashFileUploader&) = delete;
~CrashFileUploader();
void Upload(const base::FilePath& crash_guid);
private:
class Core;
std::unique_ptr<Core> core_;
scoped_refptr<base::SingleThreadTaskRunner> core_task_runner_;
THREAD_CHECKER(thread_checker_);
};
}
#endif