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