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

Side by Side Diff: dbus/bus.cc

Issue 14386016: dbus: Use base::MessageLoop. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | dbus/bus_unittest.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/bus.h" 5 #include "dbus/bus.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/message_loop_proxy.h" 10 #include "base/message_loop_proxy.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 // Returns true if the underlying file descriptor is ready to be watched. 43 // Returns true if the underlying file descriptor is ready to be watched.
44 bool IsReadyToBeWatched() { 44 bool IsReadyToBeWatched() {
45 return dbus_watch_get_enabled(raw_watch_); 45 return dbus_watch_get_enabled(raw_watch_);
46 } 46 }
47 47
48 // Starts watching the underlying file descriptor. 48 // Starts watching the underlying file descriptor.
49 void StartWatching() { 49 void StartWatching() {
50 const int file_descriptor = dbus_watch_get_unix_fd(raw_watch_); 50 const int file_descriptor = dbus_watch_get_unix_fd(raw_watch_);
51 const int flags = dbus_watch_get_flags(raw_watch_); 51 const int flags = dbus_watch_get_flags(raw_watch_);
52 52
53 MessageLoopForIO::Mode mode = MessageLoopForIO::WATCH_READ; 53 base::MessageLoopForIO::Mode mode = base::MessageLoopForIO::WATCH_READ;
54 if ((flags & DBUS_WATCH_READABLE) && (flags & DBUS_WATCH_WRITABLE)) 54 if ((flags & DBUS_WATCH_READABLE) && (flags & DBUS_WATCH_WRITABLE))
55 mode = MessageLoopForIO::WATCH_READ_WRITE; 55 mode = base::MessageLoopForIO::WATCH_READ_WRITE;
56 else if (flags & DBUS_WATCH_READABLE) 56 else if (flags & DBUS_WATCH_READABLE)
57 mode = MessageLoopForIO::WATCH_READ; 57 mode = base::MessageLoopForIO::WATCH_READ;
58 else if (flags & DBUS_WATCH_WRITABLE) 58 else if (flags & DBUS_WATCH_WRITABLE)
59 mode = MessageLoopForIO::WATCH_WRITE; 59 mode = base::MessageLoopForIO::WATCH_WRITE;
60 else 60 else
61 NOTREACHED(); 61 NOTREACHED();
62 62
63 const bool persistent = true; // Watch persistently. 63 const bool persistent = true; // Watch persistently.
64 const bool success = MessageLoopForIO::current()->WatchFileDescriptor( 64 const bool success = base::MessageLoopForIO::current()->WatchFileDescriptor(
65 file_descriptor, 65 file_descriptor, persistent, mode, &file_descriptor_watcher_, this);
66 persistent,
67 mode,
68 &file_descriptor_watcher_,
69 this);
70 CHECK(success) << "Unable to allocate memory"; 66 CHECK(success) << "Unable to allocate memory";
71 } 67 }
72 68
73 // Stops watching the underlying file descriptor. 69 // Stops watching the underlying file descriptor.
74 void StopWatching() { 70 void StopWatching() {
75 file_descriptor_watcher_.StopWatchingFileDescriptor(); 71 file_descriptor_watcher_.StopWatchingFileDescriptor();
76 } 72 }
77 73
78 private: 74 private:
79 // Implement MessagePumpLibevent::Watcher. 75 // Implement MessagePumpLibevent::Watcher.
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 async_operations_set_up_(false), 185 async_operations_set_up_(false),
190 shutdown_completed_(false), 186 shutdown_completed_(false),
191 num_pending_watches_(0), 187 num_pending_watches_(0),
192 num_pending_timeouts_(0), 188 num_pending_timeouts_(0),
193 address_(options.address), 189 address_(options.address),
194 on_disconnected_closure_(options.disconnected_callback) { 190 on_disconnected_closure_(options.disconnected_callback) {
195 // This is safe to call multiple times. 191 // This is safe to call multiple times.
196 dbus_threads_init_default(); 192 dbus_threads_init_default();
197 // The origin message loop is unnecessary if the client uses synchronous 193 // The origin message loop is unnecessary if the client uses synchronous
198 // functions only. 194 // functions only.
199 if (MessageLoop::current()) 195 if (base::MessageLoop::current())
200 origin_task_runner_ = MessageLoop::current()->message_loop_proxy(); 196 origin_task_runner_ = base::MessageLoop::current()->message_loop_proxy();
201 } 197 }
202 198
203 Bus::~Bus() { 199 Bus::~Bus() {
204 DCHECK(!connection_); 200 DCHECK(!connection_);
205 DCHECK(owned_service_names_.empty()); 201 DCHECK(owned_service_names_.empty());
206 DCHECK(match_rules_added_.empty()); 202 DCHECK(match_rules_added_.empty());
207 DCHECK(filter_functions_added_.empty()); 203 DCHECK(filter_functions_added_.empty());
208 DCHECK(registered_object_paths_.empty()); 204 DCHECK(registered_object_paths_.empty());
209 DCHECK_EQ(0, num_pending_watches_); 205 DCHECK_EQ(0, num_pending_watches_);
210 // TODO(satorux): This check fails occasionally in browser_tests for tests 206 // TODO(satorux): This check fails occasionally in browser_tests for tests
(...skipping 763 matching lines...) Expand 10 before | Expand all | Expand 10 after
974 kDisconnectedSignal)) { 970 kDisconnectedSignal)) {
975 Bus* self = static_cast<Bus*>(data); 971 Bus* self = static_cast<Bus*>(data);
976 self->AssertOnDBusThread(); 972 self->AssertOnDBusThread();
977 self->OnConnectionDisconnected(connection); 973 self->OnConnectionDisconnected(connection);
978 return DBUS_HANDLER_RESULT_HANDLED; 974 return DBUS_HANDLER_RESULT_HANDLED;
979 } 975 }
980 return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; 976 return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
981 } 977 }
982 978
983 } // namespace dbus 979 } // namespace dbus
OLDNEW
« no previous file with comments | « no previous file | dbus/bus_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698