#ifndef DYNAMIC_DEPTH_INTERNAL_DYNAMIC_DEPTH_ELEMENT_H_ // NOLINT #define DYNAMIC_DEPTH_INTERNAL_DYNAMIC_DEPTH_ELEMENT_H_ // NOLINT #include #include "xmpmeta/xml/deserializer.h" #include "xmpmeta/xml/serializer.h" namespace dynamic_depth { /** * An interface for an element in the Dynamic Depth spec. */ class Element { public: virtual ~Element() {} // Appends child elements' namespaces' and their respective hrefs to the // given collection, and any parent nodes' names to prefix_names. // Key: Name of the namespace. // Value: Full namespace URL. // Example: ("Image", "http://ns.google.com/photos/dd/1.0/image/") virtual void GetNamespaces( std::unordered_map* ns_name_href_map) = 0; // Serializes this element. virtual bool Serialize( ::dynamic_depth::xmpmeta::xml::Serializer* serializer) const = 0; }; } // namespace dynamic_depth #endif // DYNAMIC_DEPTH_INTERNAL_DYNAMIC_DEPTH_ELEMENT_H_ // NOLINT