diff options
author | dcheng <dcheng@chromium.org> | 2015-09-18 11:29:06 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-18 18:30:06 +0000 |
commit | fc6e2304f630345c79c95291191f4b64880736a1 (patch) | |
tree | c7cac8512ff75652525b2d57f34ed778387f540f /dbus | |
parent | d350943f049ddcf83b371cf97d652d4d6a8f4f18 (diff) | |
download | chromium_src-fc6e2304f630345c79c95291191f4b64880736a1.zip chromium_src-fc6e2304f630345c79c95291191f4b64880736a1.tar.gz chromium_src-fc6e2304f630345c79c95291191f4b64880736a1.tar.bz2 |
Export various dbus::Property template specializations.
BUG=409111
R=stevenjb@chromium.org
Committed: https://chromium.googlesource.com/chromium/src/+/40855d43fa71c215829b53a1034b1b653b4b8557
Review URL: https://codereview.chromium.org/1339763003
Cr-Commit-Position: refs/heads/master@{#349717}
Diffstat (limited to 'dbus')
-rw-r--r-- | dbus/property.h | 241 |
1 files changed, 154 insertions, 87 deletions
diff --git a/dbus/property.h b/dbus/property.h index 5f36d69..b308c82 100644 --- a/dbus/property.h +++ b/dbus/property.h @@ -426,101 +426,168 @@ class CHROME_DBUS_EXPORT Property : public PropertyBase { T set_value_; }; -template <> Property<uint8>::Property(); -template <> bool Property<uint8>::PopValueFromReader(MessageReader* reader); -template <> void Property<uint8>::AppendSetValueToWriter(MessageWriter* writer); -extern template class Property<uint8>; - -template <> Property<bool>::Property(); -template <> bool Property<bool>::PopValueFromReader(MessageReader* reader); -template <> void Property<bool>::AppendSetValueToWriter(MessageWriter* writer); -extern template class Property<bool>; - -template <> Property<int16>::Property(); -template <> bool Property<int16>::PopValueFromReader(MessageReader* reader); -template <> void Property<int16>::AppendSetValueToWriter(MessageWriter* writer); -extern template class Property<int16>; - -template <> Property<uint16>::Property(); -template <> bool Property<uint16>::PopValueFromReader(MessageReader* reader); -template <> void Property<uint16>::AppendSetValueToWriter( - MessageWriter* writer); -extern template class Property<uint16>; - -template <> Property<int32>::Property(); -template <> bool Property<int32>::PopValueFromReader(MessageReader* reader); -template <> void Property<int32>::AppendSetValueToWriter(MessageWriter* writer); -extern template class Property<int32>; - -template <> Property<uint32>::Property(); -template <> bool Property<uint32>::PopValueFromReader(MessageReader* reader); -template <> void Property<uint32>::AppendSetValueToWriter( - MessageWriter* writer); -extern template class Property<uint32>; - -template <> Property<int64>::Property(); -template <> bool Property<int64>::PopValueFromReader(MessageReader* reader); -template <> void Property<int64>::AppendSetValueToWriter(MessageWriter* writer); -extern template class Property<int64>; - -template <> Property<uint64>::Property(); -template <> bool Property<uint64>::PopValueFromReader(MessageReader* reader); -template <> void Property<uint64>::AppendSetValueToWriter( - MessageWriter* writer); -extern template class Property<uint64>; - -template <> Property<double>::Property(); -template <> bool Property<double>::PopValueFromReader(MessageReader* reader); -template <> void Property<double>::AppendSetValueToWriter( - MessageWriter* writer); -extern template class Property<double>; - -template <> bool Property<std::string>::PopValueFromReader( - MessageReader* reader); -template <> void Property<std::string>::AppendSetValueToWriter( - MessageWriter* writer); -extern template class Property<std::string>; - -template <> bool Property<ObjectPath>::PopValueFromReader( - MessageReader* reader); -template <> void Property<ObjectPath>::AppendSetValueToWriter( - MessageWriter* writer); -extern template class Property<ObjectPath>; - -template <> bool Property<std::vector<std::string> >::PopValueFromReader( - MessageReader* reader); -template <> void Property<std::vector<std::string> >::AppendSetValueToWriter( - MessageWriter* writer); -extern template class Property<std::vector<std::string> >; - -template <> bool Property<std::vector<ObjectPath> >::PopValueFromReader( - MessageReader* reader); -template <> void Property<std::vector<ObjectPath> >::AppendSetValueToWriter( - MessageWriter* writer); -extern template class Property<std::vector<ObjectPath> >; - -template <> bool Property<std::vector<uint8> >::PopValueFromReader( - MessageReader* reader); -template <> void Property<std::vector<uint8> >::AppendSetValueToWriter( - MessageWriter* writer); -extern template class Property<std::vector<uint8> >; - -template <> -bool Property<std::map<std::string, std::string>>::PopValueFromReader( +// Clang and GCC don't agree on how attributes should work for explicitly +// instantiated templates. GCC ignores attributes on explicit instantiations +// (and emits a warning) while Clang requires the visiblity attribute on the +// explicit instantiations for them to be visible to other compilation units. +// Hopefully clang and GCC agree one day, and this can be cleaned up: +// https://llvm.org/bugs/show_bug.cgi?id=24815 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wattributes" + +template <> +CHROME_DBUS_EXPORT Property<uint8>::Property(); +template <> +CHROME_DBUS_EXPORT bool Property<uint8>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property<uint8>::AppendSetValueToWriter( + MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<uint8>; + +template <> +CHROME_DBUS_EXPORT Property<bool>::Property(); +template <> +CHROME_DBUS_EXPORT bool Property<bool>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property<bool>::AppendSetValueToWriter( + MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<bool>; + +template <> +CHROME_DBUS_EXPORT Property<int16>::Property(); +template <> +CHROME_DBUS_EXPORT bool Property<int16>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property<int16>::AppendSetValueToWriter( + MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<int16>; + +template <> +CHROME_DBUS_EXPORT Property<uint16>::Property(); +template <> +CHROME_DBUS_EXPORT bool Property<uint16>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property<uint16>::AppendSetValueToWriter( + MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<uint16>; + +template <> +CHROME_DBUS_EXPORT Property<int32>::Property(); +template <> +CHROME_DBUS_EXPORT bool Property<int32>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property<int32>::AppendSetValueToWriter( + MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<int32>; + +template <> +CHROME_DBUS_EXPORT Property<uint32>::Property(); +template <> +CHROME_DBUS_EXPORT bool Property<uint32>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property<uint32>::AppendSetValueToWriter( + MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<uint32>; + +template <> +CHROME_DBUS_EXPORT Property<int64>::Property(); +template <> +CHROME_DBUS_EXPORT bool Property<int64>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property<int64>::AppendSetValueToWriter( + MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<int64>; + +template <> +CHROME_DBUS_EXPORT Property<uint64>::Property(); +template <> +CHROME_DBUS_EXPORT bool Property<uint64>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property<uint64>::AppendSetValueToWriter( + MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<uint64>; + +template <> +CHROME_DBUS_EXPORT Property<double>::Property(); +template <> +CHROME_DBUS_EXPORT bool Property<double>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property<double>::AppendSetValueToWriter( + MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<double>; + +template <> +CHROME_DBUS_EXPORT bool Property<std::string>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property<std::string>::AppendSetValueToWriter( + MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<std::string>; + +template <> +CHROME_DBUS_EXPORT bool Property<ObjectPath>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property<ObjectPath>::AppendSetValueToWriter( + MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<ObjectPath>; + +template <> +CHROME_DBUS_EXPORT bool Property<std::vector<std::string>>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property< + std::vector<std::string>>::AppendSetValueToWriter(MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<std::vector<std::string>>; + +template <> +CHROME_DBUS_EXPORT bool Property<std::vector<ObjectPath>>::PopValueFromReader( MessageReader* reader); template <> -void Property<std::map<std::string, std::string>>::AppendSetValueToWriter( +CHROME_DBUS_EXPORT void Property< + std::vector<ObjectPath>>::AppendSetValueToWriter(MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<std::vector<ObjectPath>>; + +template <> +CHROME_DBUS_EXPORT bool Property<std::vector<uint8>>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void Property<std::vector<uint8>>::AppendSetValueToWriter( + MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<std::vector<uint8>>; + +template <> +CHROME_DBUS_EXPORT bool +Property<std::map<std::string, std::string>>::PopValueFromReader( + MessageReader* reader); +template <> +CHROME_DBUS_EXPORT void +Property<std::map<std::string, std::string>>::AppendSetValueToWriter( MessageWriter* writer); -extern template class Property<std::map<std::string, std::string>>; +extern template class CHROME_DBUS_EXPORT + Property<std::map<std::string, std::string>>; template <> -bool Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>:: +CHROME_DBUS_EXPORT bool +Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>:: PopValueFromReader(MessageReader* reader); template <> -void Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>:: +CHROME_DBUS_EXPORT void +Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>:: AppendSetValueToWriter(MessageWriter* writer); -extern template class Property< - std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>; +extern template class CHROME_DBUS_EXPORT + Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>; + +#pragma GCC diagnostic pop } // namespace dbus |