OLD | NEW |
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/property.h" | 5 #include "dbus/property.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include <stddef.h> |
| 8 |
8 #include "base/bind.h" | 9 #include "base/bind.h" |
9 #include "base/logging.h" | 10 #include "base/logging.h" |
10 | 11 |
11 #include "dbus/message.h" | 12 #include "dbus/message.h" |
12 #include "dbus/object_path.h" | 13 #include "dbus/object_path.h" |
13 #include "dbus/object_proxy.h" | 14 #include "dbus/object_proxy.h" |
14 | 15 |
15 namespace dbus { | 16 namespace dbus { |
16 | 17 |
17 // | 18 // |
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 void PropertySet::NotifyPropertyChanged(const std::string& name) { | 296 void PropertySet::NotifyPropertyChanged(const std::string& name) { |
296 if (!property_changed_callback_.is_null()) | 297 if (!property_changed_callback_.is_null()) |
297 property_changed_callback_.Run(name); | 298 property_changed_callback_.Run(name); |
298 } | 299 } |
299 | 300 |
300 // | 301 // |
301 // Property<Byte> specialization. | 302 // Property<Byte> specialization. |
302 // | 303 // |
303 | 304 |
304 template <> | 305 template <> |
305 Property<uint8>::Property() : value_(0) { | 306 Property<uint8_t>::Property() |
306 } | 307 : value_(0) {} |
307 | 308 |
308 template <> | 309 template <> |
309 bool Property<uint8>::PopValueFromReader(MessageReader* reader) { | 310 bool Property<uint8_t>::PopValueFromReader(MessageReader* reader) { |
310 return reader->PopVariantOfByte(&value_); | 311 return reader->PopVariantOfByte(&value_); |
311 } | 312 } |
312 | 313 |
313 template <> | 314 template <> |
314 void Property<uint8>::AppendSetValueToWriter(MessageWriter* writer) { | 315 void Property<uint8_t>::AppendSetValueToWriter(MessageWriter* writer) { |
315 writer->AppendVariantOfByte(set_value_); | 316 writer->AppendVariantOfByte(set_value_); |
316 } | 317 } |
317 | 318 |
318 // | 319 // |
319 // Property<bool> specialization. | 320 // Property<bool> specialization. |
320 // | 321 // |
321 | 322 |
322 template <> | 323 template <> |
323 Property<bool>::Property() : value_(false) { | 324 Property<bool>::Property() : value_(false) { |
324 } | 325 } |
325 | 326 |
326 template <> | 327 template <> |
327 bool Property<bool>::PopValueFromReader(MessageReader* reader) { | 328 bool Property<bool>::PopValueFromReader(MessageReader* reader) { |
328 return reader->PopVariantOfBool(&value_); | 329 return reader->PopVariantOfBool(&value_); |
329 } | 330 } |
330 | 331 |
331 template <> | 332 template <> |
332 void Property<bool>::AppendSetValueToWriter(MessageWriter* writer) { | 333 void Property<bool>::AppendSetValueToWriter(MessageWriter* writer) { |
333 writer->AppendVariantOfBool(set_value_); | 334 writer->AppendVariantOfBool(set_value_); |
334 } | 335 } |
335 | 336 |
336 // | 337 // |
337 // Property<int16> specialization. | 338 // Property<int16_t> specialization. |
338 // | 339 // |
339 | 340 |
340 template <> | 341 template <> |
341 Property<int16>::Property() : value_(0) { | 342 Property<int16_t>::Property() |
342 } | 343 : value_(0) {} |
343 | 344 |
344 template <> | 345 template <> |
345 bool Property<int16>::PopValueFromReader(MessageReader* reader) { | 346 bool Property<int16_t>::PopValueFromReader(MessageReader* reader) { |
346 return reader->PopVariantOfInt16(&value_); | 347 return reader->PopVariantOfInt16(&value_); |
347 } | 348 } |
348 | 349 |
349 template <> | 350 template <> |
350 void Property<int16>::AppendSetValueToWriter(MessageWriter* writer) { | 351 void Property<int16_t>::AppendSetValueToWriter(MessageWriter* writer) { |
351 writer->AppendVariantOfInt16(set_value_); | 352 writer->AppendVariantOfInt16(set_value_); |
352 } | 353 } |
353 | 354 |
354 // | 355 // |
355 // Property<uint16> specialization. | 356 // Property<uint16_t> specialization. |
356 // | 357 // |
357 | 358 |
358 template <> | 359 template <> |
359 Property<uint16>::Property() : value_(0) { | 360 Property<uint16_t>::Property() |
360 } | 361 : value_(0) {} |
361 | 362 |
362 template <> | 363 template <> |
363 bool Property<uint16>::PopValueFromReader(MessageReader* reader) { | 364 bool Property<uint16_t>::PopValueFromReader(MessageReader* reader) { |
364 return reader->PopVariantOfUint16(&value_); | 365 return reader->PopVariantOfUint16(&value_); |
365 } | 366 } |
366 | 367 |
367 template <> | 368 template <> |
368 void Property<uint16>::AppendSetValueToWriter(MessageWriter* writer) { | 369 void Property<uint16_t>::AppendSetValueToWriter(MessageWriter* writer) { |
369 writer->AppendVariantOfUint16(set_value_); | 370 writer->AppendVariantOfUint16(set_value_); |
370 } | 371 } |
371 | 372 |
372 // | 373 // |
373 // Property<int32> specialization. | 374 // Property<int32_t> specialization. |
374 // | 375 // |
375 | 376 |
376 template <> | 377 template <> |
377 Property<int32>::Property() : value_(0) { | 378 Property<int32_t>::Property() |
378 } | 379 : value_(0) {} |
379 | 380 |
380 template <> | 381 template <> |
381 bool Property<int32>::PopValueFromReader(MessageReader* reader) { | 382 bool Property<int32_t>::PopValueFromReader(MessageReader* reader) { |
382 return reader->PopVariantOfInt32(&value_); | 383 return reader->PopVariantOfInt32(&value_); |
383 } | 384 } |
384 | 385 |
385 template <> | 386 template <> |
386 void Property<int32>::AppendSetValueToWriter(MessageWriter* writer) { | 387 void Property<int32_t>::AppendSetValueToWriter(MessageWriter* writer) { |
387 writer->AppendVariantOfInt32(set_value_); | 388 writer->AppendVariantOfInt32(set_value_); |
388 } | 389 } |
389 | 390 |
390 // | 391 // |
391 // Property<uint32> specialization. | 392 // Property<uint32_t> specialization. |
392 // | 393 // |
393 | 394 |
394 template <> | 395 template <> |
395 Property<uint32>::Property() : value_(0) { | 396 Property<uint32_t>::Property() |
396 } | 397 : value_(0) {} |
397 | 398 |
398 template <> | 399 template <> |
399 bool Property<uint32>::PopValueFromReader(MessageReader* reader) { | 400 bool Property<uint32_t>::PopValueFromReader(MessageReader* reader) { |
400 return reader->PopVariantOfUint32(&value_); | 401 return reader->PopVariantOfUint32(&value_); |
401 } | 402 } |
402 | 403 |
403 template <> | 404 template <> |
404 void Property<uint32>::AppendSetValueToWriter(MessageWriter* writer) { | 405 void Property<uint32_t>::AppendSetValueToWriter(MessageWriter* writer) { |
405 writer->AppendVariantOfUint32(set_value_); | 406 writer->AppendVariantOfUint32(set_value_); |
406 } | 407 } |
407 | 408 |
408 // | 409 // |
409 // Property<int64> specialization. | 410 // Property<int64_t> specialization. |
410 // | 411 // |
411 | 412 |
412 template <> | 413 template <> |
413 Property<int64>::Property() : value_(0), set_value_(0) { | 414 Property<int64_t>::Property() |
414 } | 415 : value_(0), set_value_(0) {} |
415 | 416 |
416 template <> | 417 template <> |
417 bool Property<int64>::PopValueFromReader(MessageReader* reader) { | 418 bool Property<int64_t>::PopValueFromReader(MessageReader* reader) { |
418 return reader->PopVariantOfInt64(&value_); | 419 return reader->PopVariantOfInt64(&value_); |
419 } | 420 } |
420 | 421 |
421 template <> | 422 template <> |
422 void Property<int64>::AppendSetValueToWriter(MessageWriter* writer) { | 423 void Property<int64_t>::AppendSetValueToWriter(MessageWriter* writer) { |
423 writer->AppendVariantOfInt64(set_value_); | 424 writer->AppendVariantOfInt64(set_value_); |
424 } | 425 } |
425 | 426 |
426 // | 427 // |
427 // Property<uint64> specialization. | 428 // Property<uint64_t> specialization. |
428 // | 429 // |
429 | 430 |
430 template <> | 431 template <> |
431 Property<uint64>::Property() : value_(0) { | 432 Property<uint64_t>::Property() |
432 } | 433 : value_(0) {} |
433 | 434 |
434 template <> | 435 template <> |
435 bool Property<uint64>::PopValueFromReader(MessageReader* reader) { | 436 bool Property<uint64_t>::PopValueFromReader(MessageReader* reader) { |
436 return reader->PopVariantOfUint64(&value_); | 437 return reader->PopVariantOfUint64(&value_); |
437 } | 438 } |
438 | 439 |
439 template <> | 440 template <> |
440 void Property<uint64>::AppendSetValueToWriter(MessageWriter* writer) { | 441 void Property<uint64_t>::AppendSetValueToWriter(MessageWriter* writer) { |
441 writer->AppendVariantOfUint64(set_value_); | 442 writer->AppendVariantOfUint64(set_value_); |
442 } | 443 } |
443 | 444 |
444 // | 445 // |
445 // Property<double> specialization. | 446 // Property<double> specialization. |
446 // | 447 // |
447 | 448 |
448 template <> | 449 template <> |
449 Property<double>::Property() : value_(0.0) { | 450 Property<double>::Property() : value_(0.0) { |
450 } | 451 } |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 template <> | 530 template <> |
530 void Property<std::vector<ObjectPath> >::AppendSetValueToWriter( | 531 void Property<std::vector<ObjectPath> >::AppendSetValueToWriter( |
531 MessageWriter* writer) { | 532 MessageWriter* writer) { |
532 MessageWriter variant_writer(NULL); | 533 MessageWriter variant_writer(NULL); |
533 writer->OpenVariant("ao", &variant_writer); | 534 writer->OpenVariant("ao", &variant_writer); |
534 variant_writer.AppendArrayOfObjectPaths(set_value_); | 535 variant_writer.AppendArrayOfObjectPaths(set_value_); |
535 writer->CloseContainer(&variant_writer); | 536 writer->CloseContainer(&variant_writer); |
536 } | 537 } |
537 | 538 |
538 // | 539 // |
539 // Property<std::vector<uint8> > specialization. | 540 // Property<std::vector<uint8_t> > specialization. |
540 // | 541 // |
541 | 542 |
542 template <> | 543 template <> |
543 bool Property<std::vector<uint8> >::PopValueFromReader(MessageReader* reader) { | 544 bool Property<std::vector<uint8_t>>::PopValueFromReader(MessageReader* reader) { |
544 MessageReader variant_reader(NULL); | 545 MessageReader variant_reader(NULL); |
545 if (!reader->PopVariant(&variant_reader)) | 546 if (!reader->PopVariant(&variant_reader)) |
546 return false; | 547 return false; |
547 | 548 |
548 value_.clear(); | 549 value_.clear(); |
549 const uint8* bytes = NULL; | 550 const uint8_t* bytes = NULL; |
550 size_t length = 0; | 551 size_t length = 0; |
551 if (!variant_reader.PopArrayOfBytes(&bytes, &length)) | 552 if (!variant_reader.PopArrayOfBytes(&bytes, &length)) |
552 return false; | 553 return false; |
553 value_.assign(bytes, bytes + length); | 554 value_.assign(bytes, bytes + length); |
554 return true; | 555 return true; |
555 } | 556 } |
556 | 557 |
557 template <> | 558 template <> |
558 void Property<std::vector<uint8> >::AppendSetValueToWriter( | 559 void Property<std::vector<uint8_t>>::AppendSetValueToWriter( |
559 MessageWriter* writer) { | 560 MessageWriter* writer) { |
560 MessageWriter variant_writer(NULL); | 561 MessageWriter variant_writer(NULL); |
561 writer->OpenVariant("ay", &variant_writer); | 562 writer->OpenVariant("ay", &variant_writer); |
562 variant_writer.AppendArrayOfBytes(set_value_.data(), set_value_.size()); | 563 variant_writer.AppendArrayOfBytes(set_value_.data(), set_value_.size()); |
563 writer->CloseContainer(&variant_writer); | 564 writer->CloseContainer(&variant_writer); |
564 } | 565 } |
565 | 566 |
566 // | 567 // |
567 // Property<std::map<std::string, std::string>> specialization. | 568 // Property<std::map<std::string, std::string>> specialization. |
568 // | 569 // |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
622 !variant_reader.PopArray(&array_reader)) | 623 !variant_reader.PopArray(&array_reader)) |
623 return false; | 624 return false; |
624 | 625 |
625 value_.clear(); | 626 value_.clear(); |
626 while (array_reader.HasMoreData()) { | 627 while (array_reader.HasMoreData()) { |
627 dbus::MessageReader struct_reader(NULL); | 628 dbus::MessageReader struct_reader(NULL); |
628 if (!array_reader.PopStruct(&struct_reader)) | 629 if (!array_reader.PopStruct(&struct_reader)) |
629 return false; | 630 return false; |
630 | 631 |
631 std::pair<std::vector<uint8_t>, uint16_t> entry; | 632 std::pair<std::vector<uint8_t>, uint16_t> entry; |
632 const uint8* bytes = NULL; | 633 const uint8_t* bytes = NULL; |
633 size_t length = 0; | 634 size_t length = 0; |
634 if (!struct_reader.PopArrayOfBytes(&bytes, &length)) | 635 if (!struct_reader.PopArrayOfBytes(&bytes, &length)) |
635 return false; | 636 return false; |
636 entry.first.assign(bytes, bytes + length); | 637 entry.first.assign(bytes, bytes + length); |
637 if (!struct_reader.PopUint16(&entry.second)) | 638 if (!struct_reader.PopUint16(&entry.second)) |
638 return false; | 639 return false; |
639 value_.push_back(entry); | 640 value_.push_back(entry); |
640 } | 641 } |
641 return true; | 642 return true; |
642 } | 643 } |
(...skipping 10 matching lines...) Expand all Loading... |
653 array_writer.OpenStruct(&struct_writer); | 654 array_writer.OpenStruct(&struct_writer); |
654 struct_writer.AppendArrayOfBytes(std::get<0>(pair).data(), | 655 struct_writer.AppendArrayOfBytes(std::get<0>(pair).data(), |
655 std::get<0>(pair).size()); | 656 std::get<0>(pair).size()); |
656 struct_writer.AppendUint16(std::get<1>(pair)); | 657 struct_writer.AppendUint16(std::get<1>(pair)); |
657 array_writer.CloseContainer(&struct_writer); | 658 array_writer.CloseContainer(&struct_writer); |
658 } | 659 } |
659 variant_writer.CloseContainer(&array_writer); | 660 variant_writer.CloseContainer(&array_writer); |
660 writer->CloseContainer(&variant_writer); | 661 writer->CloseContainer(&variant_writer); |
661 } | 662 } |
662 | 663 |
663 template class Property<uint8>; | 664 template class Property<uint8_t>; |
664 template class Property<bool>; | 665 template class Property<bool>; |
665 template class Property<int16>; | 666 template class Property<int16_t>; |
666 template class Property<uint16>; | 667 template class Property<uint16_t>; |
667 template class Property<int32>; | 668 template class Property<int32_t>; |
668 template class Property<uint32>; | 669 template class Property<uint32_t>; |
669 template class Property<int64>; | 670 template class Property<int64_t>; |
670 template class Property<uint64>; | 671 template class Property<uint64_t>; |
671 template class Property<double>; | 672 template class Property<double>; |
672 template class Property<std::string>; | 673 template class Property<std::string>; |
673 template class Property<ObjectPath>; | 674 template class Property<ObjectPath>; |
674 template class Property<std::vector<std::string> >; | 675 template class Property<std::vector<std::string> >; |
675 template class Property<std::vector<ObjectPath> >; | 676 template class Property<std::vector<ObjectPath> >; |
676 template class Property<std::vector<uint8> >; | 677 template class Property<std::vector<uint8_t>>; |
677 template class Property<std::map<std::string, std::string>>; | 678 template class Property<std::map<std::string, std::string>>; |
678 template class Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>; | 679 template class Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>; |
679 | 680 |
680 } // namespace dbus | 681 } // namespace dbus |
OLD | NEW |