158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// found in the LICENSE file. 458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#ifndef REMOTING_HOST_SETUP_DAEMON_CONTROLLER_DELEGATE_MAC_H_ 658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#define REMOTING_HOST_SETUP_DAEMON_CONTROLLER_DELEGATE_MAC_H_ 758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "base/memory/ref_counted.h" 958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 1058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "remoting/host/setup/daemon_controller.h" 1158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace remoting { 1358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)class DaemonControllerDelegateMac : public DaemonController::Delegate { 1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) public: 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) DaemonControllerDelegateMac(); 1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual ~DaemonControllerDelegateMac(); 1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // DaemonController::Delegate interface. 2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual DaemonController::State GetState() OVERRIDE; 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual scoped_ptr<base::DictionaryValue> GetConfig() OVERRIDE; 22a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void InstallHost( 23a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch const DaemonController::CompletionCallback& done) OVERRIDE; 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void SetConfigAndStart( 2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) scoped_ptr<base::DictionaryValue> config, 2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool consent, 2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const DaemonController::CompletionCallback& done) OVERRIDE; 2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void UpdateConfig( 2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) scoped_ptr<base::DictionaryValue> config, 3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const DaemonController::CompletionCallback& done) OVERRIDE; 3158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void Stop(const DaemonController::CompletionCallback& done) OVERRIDE; 3258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void SetWindow(void* window_handle) OVERRIDE; 3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual std::string GetVersion() OVERRIDE; 3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual DaemonController::UsageStatsConsent GetUsageStatsConsent() OVERRIDE; 3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) private: 3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void ShowPreferencePane(const std::string& config_data, 3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const DaemonController::CompletionCallback& done); 3958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void RegisterForPreferencePaneNotifications( 4058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const DaemonController::CompletionCallback &done); 4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void DeregisterForPreferencePaneNotifications(); 4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void PreferencePaneCallbackDelegate(CFStringRef name); 4358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) static bool DoShowPreferencePane(const std::string& config_data); 4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) static void PreferencePaneCallback(CFNotificationCenterRef center, 4658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void* observer, 4758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) CFStringRef name, 4858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const void* object, 4958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) CFDictionaryRef user_info); 5058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) DaemonController::CompletionCallback current_callback_; 5258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(DaemonControllerDelegateMac); 5458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}; 5558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} // namespace remoting 5758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif // REMOTING_HOST_SETUP_DAEMON_CONTROLLER_DELEGATE_MAC_H_ 59