chrome_launcher.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org// Copyright (c) 2012 The Chromium Authors. All rights reserved.
26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org// Use of this source code is governed by a BSD-style license that can be
36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org// found in the LICENSE file.
46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef CLOUD_PRINT_SERVICE_CHROME_LAUNCHER_H_
66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define CLOUD_PRINT_SERVICE_CHROME_LAUNCHER_H_
76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <string>
96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "base/basictypes.h"
116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "base/files/file_path.h"
126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "base/memory/scoped_ptr.h"
136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "base/threading/simple_thread.h"
146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass ChromeLauncher : public base::DelegateSimpleThread::Delegate {
166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org public:
176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  explicit ChromeLauncher(const base::FilePath& user_data);
186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  virtual ~ChromeLauncher();
206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  bool Start();
226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  void Stop();
236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  virtual void Run() OVERRIDE;
256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org private:
276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  base::FilePath user_data_;
286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  base::WaitableEvent stop_event_;
296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  scoped_ptr<base::DelegateSimpleThread> thread_;
306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  DISALLOW_COPY_AND_ASSIGN(ChromeLauncher);
326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif  // CLOUD_PRINT_SERVICE_CHROME_LAUNCHER_H_
356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org