blob: e17436d3bb19df85edf5a743df6bc7a41511d560 [file] [log] [blame]
// Copyright 2014 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FEEDBACK_FEEDBACK_DAEMON_H_
#define FEEDBACK_FEEDBACK_DAEMON_H_
#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h"
#include "base/threading/sequenced_worker_pool.h"
#include "feedback/feedback_service.h"
#include <string>
namespace feedback {
class FeedbackUploader;
class Daemon final {
public:
// |url| specifies which url the reports will be sent to. Note that product
// IDs may be unique to that server, so the clients also need to be
// configured properly for the chosen server.
explicit Daemon(const std::string& url);
~Daemon();
// Does all the work. Blocks until the daemon is finished.
void Run();
private:
base::MessageLoop loop_;
scoped_refptr<base::SequencedWorkerPool> pool_;
scoped_ptr<feedback::FeedbackUploader> uploader_;
DISALLOW_COPY_AND_ASSIGN(Daemon);
};
} // namespace feedback
#endif // FEEDBACK_FEEDBACK_DAEMON_H_