1// Copyright (c) 2012 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.
4
5#ifndef CLOUD_PRINT_SERVICE_CHROME_LAUNCHER_H_
6#define CLOUD_PRINT_SERVICE_CHROME_LAUNCHER_H_
7
8#include <string>
9#include <vector>
10
11#include "base/basictypes.h"
12#include "base/files/file_path.h"
13#include "base/memory/scoped_ptr.h"
14#include "base/threading/simple_thread.h"
15
16class ChromeLauncher : public base::DelegateSimpleThread::Delegate {
17 public:
18  explicit ChromeLauncher(const base::FilePath& user_data);
19
20  virtual ~ChromeLauncher();
21
22  bool Start();
23  void Stop();
24
25  virtual void Run() OVERRIDE;
26
27  static std::string CreateServiceStateFile(
28      const std::string& proxy_id,
29      const std::vector<std::string>& printers);
30
31 private:
32  base::FilePath user_data_;
33  base::WaitableEvent stop_event_;
34  scoped_ptr<base::DelegateSimpleThread> thread_;
35
36  DISALLOW_COPY_AND_ASSIGN(ChromeLauncher);
37};
38
39#endif  // CLOUD_PRINT_SERVICE_CHROME_LAUNCHER_H_
40