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

Side by Side Diff: dbus/test_service.cc

Issue 9378039: dbus: add ObjectPath type (Closed) Base URL: http://git.chromium.org/git/chromium/src@master
Patch Set: add patch for cryptohome_client Created 8 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
« no previous file with comments | « dbus/object_proxy.cc ('k') | net/base/network_change_notifier_linux.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "dbus/test_service.h" 5 #include "dbus/test_service.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/test/test_timeouts.h" 8 #include "base/test/test_timeouts.h"
9 #include "base/threading/platform_thread.h" 9 #include "base/threading/platform_thread.h"
10 #include "dbus/bus.h" 10 #include "dbus/bus.h"
11 #include "dbus/exported_object.h" 11 #include "dbus/exported_object.h"
12 #include "dbus/message.h" 12 #include "dbus/message.h"
13 #include "dbus/object_path.h"
13 14
14 namespace dbus { 15 namespace dbus {
15 16
16 // Echo, SlowEcho, AsyncEcho, BrokenMethod. 17 // Echo, SlowEcho, AsyncEcho, BrokenMethod.
17 const int TestService::kNumMethodsToExport = 4; 18 const int TestService::kNumMethodsToExport = 4;
18 19
19 TestService::Options::Options() { 20 TestService::Options::Options() {
20 } 21 }
21 22
22 TestService::Options::~Options() { 23 TestService::Options::~Options() {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 } 90 }
90 91
91 void TestService::SendTestSignalFromRootInternal(const std::string& message) { 92 void TestService::SendTestSignalFromRootInternal(const std::string& message) {
92 dbus::Signal signal("org.chromium.TestInterface", "Test"); 93 dbus::Signal signal("org.chromium.TestInterface", "Test");
93 dbus::MessageWriter writer(&signal); 94 dbus::MessageWriter writer(&signal);
94 writer.AppendString(message); 95 writer.AppendString(message);
95 96
96 // Use "/" just like dbus-send does. 97 // Use "/" just like dbus-send does.
97 ExportedObject* root_object = 98 ExportedObject* root_object =
98 bus_->GetExportedObject("org.chromium.TestService", 99 bus_->GetExportedObject("org.chromium.TestService",
99 "/"); 100 dbus::ObjectPath("/"));
100 root_object->SendSignal(&signal); 101 root_object->SendSignal(&signal);
101 } 102 }
102 103
103 void TestService::OnExported(const std::string& interface_name, 104 void TestService::OnExported(const std::string& interface_name,
104 const std::string& method_name, 105 const std::string& method_name,
105 bool success) { 106 bool success) {
106 if (!success) { 107 if (!success) {
107 LOG(ERROR) << "Failed to export: " << interface_name << "." 108 LOG(ERROR) << "Failed to export: " << interface_name << "."
108 << method_name; 109 << method_name;
109 // Returning here will make WaitUntilServiceIsStarted() to time out 110 // Returning here will make WaitUntilServiceIsStarted() to time out
110 // and return false. 111 // and return false.
111 return; 112 return;
112 } 113 }
113 114
114 ++num_exported_methods_; 115 ++num_exported_methods_;
115 if (num_exported_methods_ == kNumMethodsToExport) 116 if (num_exported_methods_ == kNumMethodsToExport)
116 on_all_methods_exported_.Signal(); 117 on_all_methods_exported_.Signal();
117 } 118 }
118 119
119 void TestService::Run(MessageLoop* message_loop) { 120 void TestService::Run(MessageLoop* message_loop) {
120 Bus::Options bus_options; 121 Bus::Options bus_options;
121 bus_options.bus_type = Bus::SESSION; 122 bus_options.bus_type = Bus::SESSION;
122 bus_options.connection_type = Bus::PRIVATE; 123 bus_options.connection_type = Bus::PRIVATE;
123 bus_options.dbus_thread_message_loop_proxy = dbus_thread_message_loop_proxy_; 124 bus_options.dbus_thread_message_loop_proxy = dbus_thread_message_loop_proxy_;
124 bus_ = new Bus(bus_options); 125 bus_ = new Bus(bus_options);
125 126
126 exported_object_ = bus_->GetExportedObject( 127 exported_object_ = bus_->GetExportedObject(
127 "org.chromium.TestService", 128 "org.chromium.TestService",
128 "/org/chromium/TestObject"); 129 dbus::ObjectPath("/org/chromium/TestObject"));
129 130
130 int num_methods = 0; 131 int num_methods = 0;
131 exported_object_->ExportMethod( 132 exported_object_->ExportMethod(
132 "org.chromium.TestInterface", 133 "org.chromium.TestInterface",
133 "Echo", 134 "Echo",
134 base::Bind(&TestService::Echo, 135 base::Bind(&TestService::Echo,
135 base::Unretained(this)), 136 base::Unretained(this)),
136 base::Bind(&TestService::OnExported, 137 base::Bind(&TestService::OnExported,
137 base::Unretained(this))); 138 base::Unretained(this)));
138 ++num_methods; 139 ++num_methods;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 TestTimeouts::tiny_timeout_ms()); 207 TestTimeouts::tiny_timeout_ms());
207 } 208 }
208 209
209 void TestService::BrokenMethod( 210 void TestService::BrokenMethod(
210 MethodCall* method_call, 211 MethodCall* method_call,
211 dbus::ExportedObject::ResponseSender response_sender) { 212 dbus::ExportedObject::ResponseSender response_sender) {
212 response_sender.Run(NULL); 213 response_sender.Run(NULL);
213 } 214 }
214 215
215 } // namespace dbus 216 } // namespace dbus
OLDNEW
« no previous file with comments | « dbus/object_proxy.cc ('k') | net/base/network_change_notifier_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698