Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: chromeos/dbus/services/display_power_service_provider.cc

Issue 886103002: Make SetDisplayPower() take a callback to signal completion (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chromeos/dbus/services/display_power_service_provider.h" 5 #include "chromeos/dbus/services/display_power_service_provider.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "dbus/message.h" 8 #include "dbus/message.h"
9 #include "third_party/cros_system_api/dbus/service_constants.h" 9 #include "third_party/cros_system_api/dbus/service_constants.h"
10 10
11 namespace chromeos { 11 namespace chromeos {
12 12
13 namespace {
14
15 void DisplayConfigurationCallback(
Daniel Erat 2015/01/30 17:14:07 nit: put a verb in this (RunConfigurationCallback(
dnicoara 2015/01/30 18:25:28 Done.
16 dbus::MethodCall* method_call,
17 dbus::ExportedObject::ResponseSender response_sender,
18 bool status) {
19 response_sender.Run(dbus::Response::FromMethodCall(method_call));
20 }
21
22 } // namespace
23
13 DisplayPowerServiceProvider::DisplayPowerServiceProvider( 24 DisplayPowerServiceProvider::DisplayPowerServiceProvider(
14 scoped_ptr<Delegate> delegate) 25 scoped_ptr<Delegate> delegate)
15 : delegate_(delegate.Pass()), 26 : delegate_(delegate.Pass()),
16 weak_ptr_factory_(this) { 27 weak_ptr_factory_(this) {
17 } 28 }
18 29
19 DisplayPowerServiceProvider::~DisplayPowerServiceProvider() {} 30 DisplayPowerServiceProvider::~DisplayPowerServiceProvider() {}
20 31
21 void DisplayPowerServiceProvider::Start( 32 void DisplayPowerServiceProvider::Start(
22 scoped_refptr<dbus::ExportedObject> exported_object) { 33 scoped_refptr<dbus::ExportedObject> exported_object) {
(...skipping 20 matching lines...) Expand all
43 LOG(ERROR) << "Failed to export " << interface_name << "." 54 LOG(ERROR) << "Failed to export " << interface_name << "."
44 << method_name; 55 << method_name;
45 } 56 }
46 } 57 }
47 58
48 void DisplayPowerServiceProvider::SetDisplayPower( 59 void DisplayPowerServiceProvider::SetDisplayPower(
49 dbus::MethodCall* method_call, 60 dbus::MethodCall* method_call,
50 dbus::ExportedObject::ResponseSender response_sender) { 61 dbus::ExportedObject::ResponseSender response_sender) {
51 dbus::MessageReader reader(method_call); 62 dbus::MessageReader reader(method_call);
52 int int_state = 0; 63 int int_state = 0;
64 Delegate::ResponseCallback callback =
65 base::Bind(&DisplayConfigurationCallback, method_call, response_sender);
53 if (reader.PopInt32(&int_state)) { 66 if (reader.PopInt32(&int_state)) {
54 DisplayPowerState state = static_cast<DisplayPowerState>(int_state); 67 DisplayPowerState state = static_cast<DisplayPowerState>(int_state);
55 delegate_->SetDisplayPower(state); 68 delegate_->SetDisplayPower(state, callback);
56 } else { 69 } else {
57 LOG(ERROR) << "Unable to parse " << kSetDisplayPower << " request"; 70 LOG(ERROR) << "Unable to parse " << kSetDisplayPower << " request";
71 callback.Run(false);
58 } 72 }
59
60 response_sender.Run(dbus::Response::FromMethodCall(method_call));
61 } 73 }
62 74
63 void DisplayPowerServiceProvider::SetDisplaySoftwareDimming( 75 void DisplayPowerServiceProvider::SetDisplaySoftwareDimming(
64 dbus::MethodCall* method_call, 76 dbus::MethodCall* method_call,
65 dbus::ExportedObject::ResponseSender response_sender) { 77 dbus::ExportedObject::ResponseSender response_sender) {
66 dbus::MessageReader reader(method_call); 78 dbus::MessageReader reader(method_call);
67 bool dimmed = false; 79 bool dimmed = false;
68 if (reader.PopBool(&dimmed)) { 80 if (reader.PopBool(&dimmed)) {
69 delegate_->SetDimming(dimmed); 81 delegate_->SetDimming(dimmed);
70 } else { 82 } else {
71 LOG(ERROR) << "Unable to parse " << kSetDisplaySoftwareDimming 83 LOG(ERROR) << "Unable to parse " << kSetDisplaySoftwareDimming
72 << " request"; 84 << " request";
73 } 85 }
74 response_sender.Run(dbus::Response::FromMethodCall(method_call)); 86 response_sender.Run(dbus::Response::FromMethodCall(method_call));
75 } 87 }
76 88
77 } // namespace chromeos 89 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698