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

Side by Side Diff: dbus/property.h

Issue 1368713002: dbus: add support for synchronous PropertySet::Get (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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 | « no previous file | dbus/property.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 #ifndef DBUS_PROPERTY_H_ 5 #ifndef DBUS_PROPERTY_H_
6 #define DBUS_PROPERTY_H_ 6 #define DBUS_PROPERTY_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 252
253 // Requests an updated value from the remote object for |property| 253 // Requests an updated value from the remote object for |property|
254 // incurring a round-trip. |callback| will be called when the new 254 // incurring a round-trip. |callback| will be called when the new
255 // value is available. This may not be implemented by some interfaces, 255 // value is available. This may not be implemented by some interfaces,
256 // and may be overriden by sub-classes if interfaces use different 256 // and may be overriden by sub-classes if interfaces use different
257 // method calls. 257 // method calls.
258 virtual void Get(PropertyBase* property, GetCallback callback); 258 virtual void Get(PropertyBase* property, GetCallback callback);
259 virtual void OnGet(PropertyBase* property, GetCallback callback, 259 virtual void OnGet(PropertyBase* property, GetCallback callback,
260 Response* response); 260 Response* response);
261 261
262 // The synchronous version of Get().
263 // This should never be used on an interactive thread.
264 virtual bool GetAndBlock(PropertyBase* property);
265
262 // Queries the remote object for values of all properties and updates 266 // Queries the remote object for values of all properties and updates
263 // initial values. Sub-classes may override to use a different D-Bus 267 // initial values. Sub-classes may override to use a different D-Bus
264 // method, or if the remote object does not support retrieving all 268 // method, or if the remote object does not support retrieving all
265 // properties, either ignore or obtain each property value individually. 269 // properties, either ignore or obtain each property value individually.
266 virtual void GetAll(); 270 virtual void GetAll();
267 virtual void OnGetAll(Response* response); 271 virtual void OnGetAll(Response* response);
268 272
269 // Callback for Set() method, |success| indicates whether or not the 273 // Callback for Set() method, |success| indicates whether or not the
270 // new property value was accepted by the remote object. 274 // new property value was accepted by the remote object.
271 typedef base::Callback<void(bool success)> SetCallback; 275 typedef base::Callback<void(bool success)> SetCallback;
272 276
273 // Requests that the remote object for |property| change the property to 277 // Requests that the remote object for |property| change the property to
274 // its new value. |callback| will be called to indicate the success or 278 // its new value. |callback| will be called to indicate the success or
275 // failure of the request, however the new value may not be available 279 // failure of the request, however the new value may not be available
276 // depending on the remote object. This method may be overridden by 280 // depending on the remote object. This method may be overridden by
277 // sub-classes if interfaces use different method calls. 281 // sub-classes if interfaces use different method calls.
278 virtual void Set(PropertyBase* property, SetCallback callback); 282 virtual void Set(PropertyBase* property, SetCallback callback);
279 // The sychronous version of Set().
280 virtual bool SetAndBlock(PropertyBase* property);
281 virtual void OnSet(PropertyBase* property, SetCallback callback, 283 virtual void OnSet(PropertyBase* property, SetCallback callback,
282 Response* response); 284 Response* response);
283 285
286 // The synchronous version of Set().
287 // This should never be used on an interactive thread.
288 virtual bool SetAndBlock(PropertyBase* property);
289
284 // Update properties by reading an array of dictionary entries, each 290 // Update properties by reading an array of dictionary entries, each
285 // containing a string with the name and a variant with the value, from 291 // containing a string with the name and a variant with the value, from
286 // |message_reader|. Returns false if message is in incorrect format. 292 // |message_reader|. Returns false if message is in incorrect format.
287 bool UpdatePropertiesFromReader(MessageReader* reader); 293 bool UpdatePropertiesFromReader(MessageReader* reader);
288 294
289 // Updates a single property by reading a string with the name and a 295 // Updates a single property by reading a string with the name and a
290 // variant with the value from |message_reader|. Returns false if message 296 // variant with the value from |message_reader|. Returns false if message
291 // is in incorrect format, or property type doesn't match. 297 // is in incorrect format, or property type doesn't match.
292 bool UpdatePropertyFromReader(MessageReader* reader); 298 bool UpdatePropertyFromReader(MessageReader* reader);
293 299
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 // Retrieves the cached value. 381 // Retrieves the cached value.
376 const T& value() const { return value_; } 382 const T& value() const { return value_; }
377 383
378 // Requests an updated value from the remote object incurring a 384 // Requests an updated value from the remote object incurring a
379 // round-trip. |callback| will be called when the new value is available. 385 // round-trip. |callback| will be called when the new value is available.
380 // This may not be implemented by some interfaces. 386 // This may not be implemented by some interfaces.
381 virtual void Get(dbus::PropertySet::GetCallback callback) { 387 virtual void Get(dbus::PropertySet::GetCallback callback) {
382 property_set()->Get(this, callback); 388 property_set()->Get(this, callback);
383 } 389 }
384 390
391 // The synchronous version of Get().
392 // This should never be used on an interactive thread.
393 virtual bool GetAndBlock() {
394 return property_set()->GetAndBlock(this);
395 }
396
385 // Requests that the remote object change the property value to |value|, 397 // Requests that the remote object change the property value to |value|,
386 // |callback| will be called to indicate the success or failure of the 398 // |callback| will be called to indicate the success or failure of the
387 // request, however the new value may not be available depending on the 399 // request, however the new value may not be available depending on the
388 // remote object. 400 // remote object.
389 virtual void Set(const T& value, dbus::PropertySet::SetCallback callback) { 401 virtual void Set(const T& value, dbus::PropertySet::SetCallback callback) {
390 set_value_ = value; 402 set_value_ = value;
391 property_set()->Set(this, callback); 403 property_set()->Set(this, callback);
392 } 404 }
393 405
394 // The sychronous version of Set(). 406 // The synchronous version of Set().
407 // This should never be used on an interactive thread.
395 virtual bool SetAndBlock(const T& value) { 408 virtual bool SetAndBlock(const T& value) {
396 set_value_ = value; 409 set_value_ = value;
397 return property_set()->SetAndBlock(this); 410 return property_set()->SetAndBlock(this);
398 } 411 }
399 412
400 // Method used by PropertySet to retrieve the value from a MessageReader, 413 // Method used by PropertySet to retrieve the value from a MessageReader,
401 // no knowledge of the contained type is required, this method returns 414 // no knowledge of the contained type is required, this method returns
402 // true if its expected type was found, false if not. 415 // true if its expected type was found, false if not.
403 bool PopValueFromReader(MessageReader* reader) override; 416 bool PopValueFromReader(MessageReader* reader) override;
404 417
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>:: 606 Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>::
594 AppendSetValueToWriter(MessageWriter* writer); 607 AppendSetValueToWriter(MessageWriter* writer);
595 extern template class CHROME_DBUS_EXPORT 608 extern template class CHROME_DBUS_EXPORT
596 Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>; 609 Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>;
597 610
598 #pragma GCC diagnostic pop 611 #pragma GCC diagnostic pop
599 612
600 } // namespace dbus 613 } // namespace dbus
601 614
602 #endif // DBUS_PROPERTY_H_ 615 #endif // DBUS_PROPERTY_H_
OLDNEW
« no previous file with comments | « no previous file | dbus/property.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698