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

Side by Side Diff: dbus/property.h

Issue 1339763003: Export various dbus::Property template specializations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@widget-fun
Patch Set: Add a bug comment Created 5 years, 3 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 | no next file » | 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 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 void ReplaceSetValueForTesting(const T& value) { set_value_ = value; } 419 void ReplaceSetValueForTesting(const T& value) { set_value_ = value; }
420 420
421 private: 421 private:
422 // Current cached value of the property. 422 // Current cached value of the property.
423 T value_; 423 T value_;
424 424
425 // Replacement value of the property. 425 // Replacement value of the property.
426 T set_value_; 426 T set_value_;
427 }; 427 };
428 428
429 template <> Property<uint8>::Property(); 429 // Clang and GCC don't agree on how attributes should work for explicitly
430 template <> bool Property<uint8>::PopValueFromReader(MessageReader* reader); 430 // instantiated templates. GCC ignores attributes on explicit instantiations
431 template <> void Property<uint8>::AppendSetValueToWriter(MessageWriter* writer); 431 // (and emits a warning) while Clang requires the visiblity attribute on the
432 extern template class Property<uint8>; 432 // explicit instantiations for them to be visible to other compilation units.
433 433 // Hopefully clang and GCC agree one day, and this can be cleaned up:
434 template <> Property<bool>::Property(); 434 // https://llvm.org/bugs/show_bug.cgi?id=24815
435 template <> bool Property<bool>::PopValueFromReader(MessageReader* reader); 435 #pragma GCC diagnostic push
436 template <> void Property<bool>::AppendSetValueToWriter(MessageWriter* writer); 436 #pragma GCC diagnostic ignored "-Wattributes"
437 extern template class Property<bool>;
438
439 template <> Property<int16>::Property();
440 template <> bool Property<int16>::PopValueFromReader(MessageReader* reader);
441 template <> void Property<int16>::AppendSetValueToWriter(MessageWriter* writer);
442 extern template class Property<int16>;
443
444 template <> Property<uint16>::Property();
445 template <> bool Property<uint16>::PopValueFromReader(MessageReader* reader);
446 template <> void Property<uint16>::AppendSetValueToWriter(
447 MessageWriter* writer);
448 extern template class Property<uint16>;
449
450 template <> Property<int32>::Property();
451 template <> bool Property<int32>::PopValueFromReader(MessageReader* reader);
452 template <> void Property<int32>::AppendSetValueToWriter(MessageWriter* writer);
453 extern template class Property<int32>;
454
455 template <> Property<uint32>::Property();
456 template <> bool Property<uint32>::PopValueFromReader(MessageReader* reader);
457 template <> void Property<uint32>::AppendSetValueToWriter(
458 MessageWriter* writer);
459 extern template class Property<uint32>;
460
461 template <> Property<int64>::Property();
462 template <> bool Property<int64>::PopValueFromReader(MessageReader* reader);
463 template <> void Property<int64>::AppendSetValueToWriter(MessageWriter* writer);
464 extern template class Property<int64>;
465
466 template <> Property<uint64>::Property();
467 template <> bool Property<uint64>::PopValueFromReader(MessageReader* reader);
468 template <> void Property<uint64>::AppendSetValueToWriter(
469 MessageWriter* writer);
470 extern template class Property<uint64>;
471
472 template <> Property<double>::Property();
473 template <> bool Property<double>::PopValueFromReader(MessageReader* reader);
474 template <> void Property<double>::AppendSetValueToWriter(
475 MessageWriter* writer);
476 extern template class Property<double>;
477
478 template <> bool Property<std::string>::PopValueFromReader(
479 MessageReader* reader);
480 template <> void Property<std::string>::AppendSetValueToWriter(
481 MessageWriter* writer);
482 extern template class Property<std::string>;
483
484 template <> bool Property<ObjectPath>::PopValueFromReader(
485 MessageReader* reader);
486 template <> void Property<ObjectPath>::AppendSetValueToWriter(
487 MessageWriter* writer);
488 extern template class Property<ObjectPath>;
489
490 template <> bool Property<std::vector<std::string> >::PopValueFromReader(
491 MessageReader* reader);
492 template <> void Property<std::vector<std::string> >::AppendSetValueToWriter(
493 MessageWriter* writer);
494 extern template class Property<std::vector<std::string> >;
495
496 template <> bool Property<std::vector<ObjectPath> >::PopValueFromReader(
497 MessageReader* reader);
498 template <> void Property<std::vector<ObjectPath> >::AppendSetValueToWriter(
499 MessageWriter* writer);
500 extern template class Property<std::vector<ObjectPath> >;
501
502 template <> bool Property<std::vector<uint8> >::PopValueFromReader(
503 MessageReader* reader);
504 template <> void Property<std::vector<uint8> >::AppendSetValueToWriter(
505 MessageWriter* writer);
506 extern template class Property<std::vector<uint8> >;
507 437
508 template <> 438 template <>
509 bool Property<std::map<std::string, std::string>>::PopValueFromReader( 439 CHROME_DBUS_EXPORT Property<uint8>::Property();
440 template <>
441 CHROME_DBUS_EXPORT bool Property<uint8>::PopValueFromReader(
510 MessageReader* reader); 442 MessageReader* reader);
511 template <> 443 template <>
512 void Property<std::map<std::string, std::string>>::AppendSetValueToWriter( 444 CHROME_DBUS_EXPORT void Property<uint8>::AppendSetValueToWriter(
513 MessageWriter* writer); 445 MessageWriter* writer);
514 extern template class Property<std::map<std::string, std::string>>; 446 extern template class CHROME_DBUS_EXPORT Property<uint8>;
515 447
516 template <> 448 template <>
517 bool Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>:: 449 CHROME_DBUS_EXPORT Property<bool>::Property();
450 template <>
451 CHROME_DBUS_EXPORT bool Property<bool>::PopValueFromReader(
452 MessageReader* reader);
453 template <>
454 CHROME_DBUS_EXPORT void Property<bool>::AppendSetValueToWriter(
455 MessageWriter* writer);
456 extern template class CHROME_DBUS_EXPORT Property<bool>;
457
458 template <>
459 CHROME_DBUS_EXPORT Property<int16>::Property();
460 template <>
461 CHROME_DBUS_EXPORT bool Property<int16>::PopValueFromReader(
462 MessageReader* reader);
463 template <>
464 CHROME_DBUS_EXPORT void Property<int16>::AppendSetValueToWriter(
465 MessageWriter* writer);
466 extern template class CHROME_DBUS_EXPORT Property<int16>;
467
468 template <>
469 CHROME_DBUS_EXPORT Property<uint16>::Property();
470 template <>
471 CHROME_DBUS_EXPORT bool Property<uint16>::PopValueFromReader(
472 MessageReader* reader);
473 template <>
474 CHROME_DBUS_EXPORT void Property<uint16>::AppendSetValueToWriter(
475 MessageWriter* writer);
476 extern template class CHROME_DBUS_EXPORT Property<uint16>;
477
478 template <>
479 CHROME_DBUS_EXPORT Property<int32>::Property();
480 template <>
481 CHROME_DBUS_EXPORT bool Property<int32>::PopValueFromReader(
482 MessageReader* reader);
483 template <>
484 CHROME_DBUS_EXPORT void Property<int32>::AppendSetValueToWriter(
485 MessageWriter* writer);
486 extern template class CHROME_DBUS_EXPORT Property<int32>;
487
488 template <>
489 CHROME_DBUS_EXPORT Property<uint32>::Property();
490 template <>
491 CHROME_DBUS_EXPORT bool Property<uint32>::PopValueFromReader(
492 MessageReader* reader);
493 template <>
494 CHROME_DBUS_EXPORT void Property<uint32>::AppendSetValueToWriter(
495 MessageWriter* writer);
496 extern template class CHROME_DBUS_EXPORT Property<uint32>;
497
498 template <>
499 CHROME_DBUS_EXPORT Property<int64>::Property();
500 template <>
501 CHROME_DBUS_EXPORT bool Property<int64>::PopValueFromReader(
502 MessageReader* reader);
503 template <>
504 CHROME_DBUS_EXPORT void Property<int64>::AppendSetValueToWriter(
505 MessageWriter* writer);
506 extern template class CHROME_DBUS_EXPORT Property<int64>;
507
508 template <>
509 CHROME_DBUS_EXPORT Property<uint64>::Property();
510 template <>
511 CHROME_DBUS_EXPORT bool Property<uint64>::PopValueFromReader(
512 MessageReader* reader);
513 template <>
514 CHROME_DBUS_EXPORT void Property<uint64>::AppendSetValueToWriter(
515 MessageWriter* writer);
516 extern template class CHROME_DBUS_EXPORT Property<uint64>;
517
518 template <>
519 CHROME_DBUS_EXPORT Property<double>::Property();
520 template <>
521 CHROME_DBUS_EXPORT bool Property<double>::PopValueFromReader(
522 MessageReader* reader);
523 template <>
524 CHROME_DBUS_EXPORT void Property<double>::AppendSetValueToWriter(
525 MessageWriter* writer);
526 extern template class CHROME_DBUS_EXPORT Property<double>;
527
528 template <>
529 CHROME_DBUS_EXPORT bool Property<std::string>::PopValueFromReader(
530 MessageReader* reader);
531 template <>
532 CHROME_DBUS_EXPORT void Property<std::string>::AppendSetValueToWriter(
533 MessageWriter* writer);
534 extern template class CHROME_DBUS_EXPORT Property<std::string>;
535
536 template <>
537 CHROME_DBUS_EXPORT bool Property<ObjectPath>::PopValueFromReader(
538 MessageReader* reader);
539 template <>
540 CHROME_DBUS_EXPORT void Property<ObjectPath>::AppendSetValueToWriter(
541 MessageWriter* writer);
542 extern template class CHROME_DBUS_EXPORT Property<ObjectPath>;
543
544 template <>
545 CHROME_DBUS_EXPORT bool Property<std::vector<std::string>>::PopValueFromReader(
546 MessageReader* reader);
547 template <>
548 CHROME_DBUS_EXPORT void Property<
549 std::vector<std::string>>::AppendSetValueToWriter(MessageWriter* writer);
550 extern template class CHROME_DBUS_EXPORT Property<std::vector<std::string>>;
551
552 template <>
553 CHROME_DBUS_EXPORT bool Property<std::vector<ObjectPath>>::PopValueFromReader(
554 MessageReader* reader);
555 template <>
556 CHROME_DBUS_EXPORT void Property<
557 std::vector<ObjectPath>>::AppendSetValueToWriter(MessageWriter* writer);
558 extern template class CHROME_DBUS_EXPORT Property<std::vector<ObjectPath>>;
559
560 template <>
561 CHROME_DBUS_EXPORT bool Property<std::vector<uint8>>::PopValueFromReader(
562 MessageReader* reader);
563 template <>
564 CHROME_DBUS_EXPORT void Property<std::vector<uint8>>::AppendSetValueToWriter(
565 MessageWriter* writer);
566 extern template class CHROME_DBUS_EXPORT Property<std::vector<uint8>>;
567
568 template <>
569 CHROME_DBUS_EXPORT bool
570 Property<std::map<std::string, std::string>>::PopValueFromReader(
571 MessageReader* reader);
572 template <>
573 CHROME_DBUS_EXPORT void
574 Property<std::map<std::string, std::string>>::AppendSetValueToWriter(
575 MessageWriter* writer);
576 extern template class CHROME_DBUS_EXPORT
577 Property<std::map<std::string, std::string>>;
578
579 template <>
580 CHROME_DBUS_EXPORT bool
581 Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>::
518 PopValueFromReader(MessageReader* reader); 582 PopValueFromReader(MessageReader* reader);
519 template <> 583 template <>
520 void Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>:: 584 CHROME_DBUS_EXPORT void
585 Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>::
521 AppendSetValueToWriter(MessageWriter* writer); 586 AppendSetValueToWriter(MessageWriter* writer);
522 extern template class Property< 587 extern template class CHROME_DBUS_EXPORT
523 std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>; 588 Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>;
589
590 #pragma GCC diagnostic pop
524 591
525 } // namespace dbus 592 } // namespace dbus
526 593
527 #endif // DBUS_PROPERTY_H_ 594 #endif // DBUS_PROPERTY_H_
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698