- add sources.
[platform/framework/web/crosswalk.git] / src / cloud_print / service / win / service_listener.h
1 // Copyright 2013 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_SERVICE_LISTENER_H_
6 #define CLOUD_PRINT_SERVICE_SERVICE_LISTENER_H_
7
8 #include "base/compiler_specific.h"
9 #include "base/files/file_path.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "ipc/ipc_listener.h"
12
13 namespace base {
14 class Thread;
15 }  // base
16
17 namespace IPC {
18 class Channel;
19 }  // IPC
20
21 // Simple IPC listener to run on service side to collect service environment and
22 // to send back to setup utility.
23 class ServiceListener : public IPC::Listener {
24  public:
25   explicit ServiceListener(const base::FilePath& user_data_dir);
26   virtual ~ServiceListener();
27
28   virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
29   virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
30
31  private:
32   void Disconnect();
33   void Connect();
34
35   scoped_ptr<base::Thread> ipc_thread_;
36   scoped_ptr<IPC::Channel> channel_;
37   base::FilePath user_data_dir_;
38 };
39
40 #endif  // CLOUD_PRINT_SERVICE_SERVICE_LISTENER_H_
41