| Index: dbus/property.h
|
| diff --git a/dbus/property.h b/dbus/property.h
|
| index 5f36d69fdeaa2479c1d60d063e231b0a7a9607b1..b308c8218a4d2cad8447bf7a93d74b336d556761 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
|
|
|
|
|