Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / remoting / host / setup / daemon_controller_delegate_mac.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 REMOTING_HOST_SETUP_DAEMON_CONTROLLER_DELEGATE_MAC_H_
6 #define REMOTING_HOST_SETUP_DAEMON_CONTROLLER_DELEGATE_MAC_H_
7
8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "remoting/host/setup/daemon_controller.h"
11
12 namespace remoting {
13
14 class DaemonControllerDelegateMac : public DaemonController::Delegate {
15  public:
16   DaemonControllerDelegateMac();
17   ~DaemonControllerDelegateMac() override;
18
19   // DaemonController::Delegate interface.
20   DaemonController::State GetState() override;
21   scoped_ptr<base::DictionaryValue> GetConfig() override;
22   void InstallHost(const DaemonController::CompletionCallback& done) override;
23   void SetConfigAndStart(
24       scoped_ptr<base::DictionaryValue> config,
25       bool consent,
26       const DaemonController::CompletionCallback& done) override;
27   void UpdateConfig(scoped_ptr<base::DictionaryValue> config,
28                     const DaemonController::CompletionCallback& done) override;
29   void Stop(const DaemonController::CompletionCallback& done) override;
30   void SetWindow(void* window_handle) override;
31   std::string GetVersion() override;
32   DaemonController::UsageStatsConsent GetUsageStatsConsent() override;
33
34  private:
35   void ShowPreferencePane(const std::string& config_data,
36                           const DaemonController::CompletionCallback& done);
37   void RegisterForPreferencePaneNotifications(
38       const DaemonController::CompletionCallback &done);
39   void DeregisterForPreferencePaneNotifications();
40   void PreferencePaneCallbackDelegate(CFStringRef name);
41
42   static bool DoShowPreferencePane(const std::string& config_data);
43   static void PreferencePaneCallback(CFNotificationCenterRef center,
44                                      void* observer,
45                                      CFStringRef name,
46                                      const void* object,
47                                      CFDictionaryRef user_info);
48
49   DaemonController::CompletionCallback current_callback_;
50
51   DISALLOW_COPY_AND_ASSIGN(DaemonControllerDelegateMac);
52 };
53
54 }  // namespace remoting
55
56 #endif  // REMOTING_HOST_SETUP_DAEMON_CONTROLLER_DELEGATE_MAC_H_