1*a62be085SSadaf Ebrahimi #ifndef DYNAMIC_DEPTH_INCLUDES_XMPMETA_XMP_DATA_H_ // NOLINT 2*a62be085SSadaf Ebrahimi #define DYNAMIC_DEPTH_INCLUDES_XMPMETA_XMP_DATA_H_ // NOLINT 3*a62be085SSadaf Ebrahimi 4*a62be085SSadaf Ebrahimi #include <libxml/tree.h> 5*a62be085SSadaf Ebrahimi 6*a62be085SSadaf Ebrahimi namespace dynamic_depth { 7*a62be085SSadaf Ebrahimi namespace xmpmeta { 8*a62be085SSadaf Ebrahimi 9*a62be085SSadaf Ebrahimi // XmpData contains the standard, and optionally extended, XMP metadata from a 10*a62be085SSadaf Ebrahimi // JPEG file. See xmp_parser for reading XmpData from a JPEG or reading 11*a62be085SSadaf Ebrahimi // attributes from XmpData. 12*a62be085SSadaf Ebrahimi class XmpData { 13*a62be085SSadaf Ebrahimi public: 14*a62be085SSadaf Ebrahimi XmpData(); 15*a62be085SSadaf Ebrahimi ~XmpData(); 16*a62be085SSadaf Ebrahimi 17*a62be085SSadaf Ebrahimi // Frees any allocated resources and resets the xmlDocPtrs to null. 18*a62be085SSadaf Ebrahimi void Reset(); 19*a62be085SSadaf Ebrahimi 20*a62be085SSadaf Ebrahimi // The standard XMP section. 21*a62be085SSadaf Ebrahimi const xmlDocPtr StandardSection() const; 22*a62be085SSadaf Ebrahimi xmlDocPtr* MutableStandardSection(); 23*a62be085SSadaf Ebrahimi 24*a62be085SSadaf Ebrahimi // The extended XMP section. 25*a62be085SSadaf Ebrahimi const xmlDocPtr ExtendedSection() const; 26*a62be085SSadaf Ebrahimi xmlDocPtr* MutableExtendedSection(); 27*a62be085SSadaf Ebrahimi 28*a62be085SSadaf Ebrahimi private: 29*a62be085SSadaf Ebrahimi xmlDocPtr xmp_; 30*a62be085SSadaf Ebrahimi xmlDocPtr xmp_extended_; 31*a62be085SSadaf Ebrahimi }; 32*a62be085SSadaf Ebrahimi 33*a62be085SSadaf Ebrahimi } // namespace xmpmeta 34*a62be085SSadaf Ebrahimi } // namespace dynamic_depth 35*a62be085SSadaf Ebrahimi 36*a62be085SSadaf Ebrahimi #endif // DYNAMIC_DEPTH_INCLUDES_XMPMETA_XMP_DATA_H_ // NOLINT 37