xmp_toolkit_ruby 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. checksums.yaml +7 -0
  2. data/.idea/.gitignore +8 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +88 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/AGENTS.md +72 -0
  8. data/CHANGELOG.md +45 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +287 -0
  11. data/Rakefile +25 -0
  12. data/cliff.toml +138 -0
  13. data/docker/Dockerfile +87 -0
  14. data/docker/ProductConfig.cmake.patch +11 -0
  15. data/docker/ToolchainGCC.cmake.patch +11 -0
  16. data/exe/xmp_toolkit_ruby +8 -0
  17. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/LICENSE +31 -0
  18. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/build/XMP_BuildInfo.h +17 -0
  19. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/TXMPFiles.hpp +853 -0
  20. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/TXMPIterator.hpp +234 -0
  21. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/TXMPMeta.hpp +1753 -0
  22. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/TXMPUtils.hpp +967 -0
  23. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP.hpp +98 -0
  24. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP.incl_cpp +69 -0
  25. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h +225 -0
  26. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h +71 -0
  27. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h +76 -0
  28. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/BaseInterfaces/IVersionable.h +71 -0
  29. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IConfigurationManager.h +167 -0
  30. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IError.h +377 -0
  31. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IErrorNotifier.h +52 -0
  32. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IMemoryAllocator.h +65 -0
  33. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IObjectFactory.h +90 -0
  34. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IUTF8String.h +504 -0
  35. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Utilities/TWrapperFunctions.h +252 -0
  36. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Utilities/TWrapperFunctions2.h +564 -0
  37. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/XMPCommonDefines.h +194 -0
  38. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/XMPCommonErrorCodes.h +114 -0
  39. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/XMPCommonFwdDeclarations.h +158 -0
  40. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/XMPCommonLatestInterfaceVersions.h +51 -0
  41. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IConfigurable.cpp +204 -0
  42. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IConfigurationManager.cpp +92 -0
  43. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IError.cpp +207 -0
  44. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IErrorNotifier.cpp +26 -0
  45. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IUTF8String.cpp +299 -0
  46. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IArrayNode.h +303 -0
  47. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IClientDOMParser.h +88 -0
  48. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IClientDOMSerializer.h +94 -0
  49. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/ICompositeNode.h +331 -0
  50. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/ICoreConfigurationManager.h +107 -0
  51. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/ICoreObjectFactory.h +279 -0
  52. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IDOMImplementationRegistry.h +150 -0
  53. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IDOMParser.h +181 -0
  54. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IDOMSerializer.h +120 -0
  55. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IMetadata.h +145 -0
  56. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IMetadataConverterUtils.h +116 -0
  57. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/INameSpacePrefixMap.h +236 -0
  58. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/INode.h +582 -0
  59. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/INodeIterator.h +193 -0
  60. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IPath.h +212 -0
  61. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IPathSegment.h +225 -0
  62. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/ISimpleNode.h +150 -0
  63. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IStructureNode.h +306 -0
  64. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/XMPCoreDefines.h +94 -0
  65. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/XMPCoreErrorCodes.h +116 -0
  66. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/XMPCoreFwdDeclarations.h +325 -0
  67. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/XMPCoreLatestInterfaceVersions.h +97 -0
  68. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IArrayNode.cpp +163 -0
  69. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IClientDOMParser.cpp +76 -0
  70. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IClientDOMSerializer.cpp +73 -0
  71. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/ICompositeNode.cpp +121 -0
  72. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/ICoreConfigurationManager.cpp +88 -0
  73. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/ICoreObjectFactory.cpp +83 -0
  74. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IDOMImplementationRegistry.cpp +122 -0
  75. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IDOMParser.cpp +116 -0
  76. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IDOMSerializer.cpp +109 -0
  77. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IMetadata.cpp +113 -0
  78. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IMetadataConverterUtils.cpp +92 -0
  79. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/INameSpacePrefixMap.cpp +187 -0
  80. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/INode.cpp +377 -0
  81. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/INodeIterator.cpp +105 -0
  82. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IPath.cpp +157 -0
  83. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IPathSegment.cpp +146 -0
  84. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/ISimpleNode.cpp +111 -0
  85. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IStructureNode.cpp +104 -0
  86. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP_Const.h +1590 -0
  87. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP_Environment.h +223 -0
  88. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP_IO.hpp +169 -0
  89. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP_Version.h +52 -0
  90. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/TXMPFiles.incl_cpp +484 -0
  91. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/TXMPIterator.incl_cpp +223 -0
  92. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/TXMPMeta.incl_cpp +917 -0
  93. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/TXMPUtils.incl_cpp +445 -0
  94. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMPFiles.hpp +281 -0
  95. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMPIterator.hpp +74 -0
  96. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMPMeta.hpp +635 -0
  97. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMPUtils.hpp +314 -0
  98. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMP_Common.hpp +132 -0
  99. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug/libXMPCore.so +0 -0
  100. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug/libXMPCoreStatic.a +0 -0
  101. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug/libXMPFiles.so +0 -0
  102. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug/libXMPFilesStatic.a +0 -0
  103. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/macintosh/universal/Debug/libXMPCoreStatic.a +0 -0
  104. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/macintosh/universal/Debug/libXMPFilesStatic.a +0 -0
  105. data/ext/xmp_toolkit_ruby/extconf.rb +101 -0
  106. data/ext/xmp_toolkit_ruby/xmp_toolkit.cpp +321 -0
  107. data/ext/xmp_toolkit_ruby/xmp_toolkit.hpp +69 -0
  108. data/ext/xmp_toolkit_ruby/xmp_toolkit_ruby.cpp +44 -0
  109. data/lib/xmp_toolkit_ruby/cli.rb +95 -0
  110. data/lib/xmp_toolkit_ruby/namespaces.rb +77 -0
  111. data/lib/xmp_toolkit_ruby/plugins/LICENSE +31 -0
  112. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/MODULE_IDENTIFIER.txt +1 -0
  113. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/XMPPLUGINUIDS.txt +31 -0
  114. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpi +0 -0
  115. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.so +0 -0
  116. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/MODULE_IDENTIFIER.txt +1 -0
  117. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/XMPPLUGINUIDS.txt +31 -0
  118. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpi +0 -0
  119. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.so +0 -0
  120. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/PDF_Handler +0 -0
  121. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/Info.plist +52 -0
  122. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MODULE_IDENTIFIER.txt +1 -0
  123. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/MiniPDFL +0 -0
  124. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Resources/English.lproj/InfoPlist.strings +0 -0
  125. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Resources/Info.plist +35 -0
  126. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/MiniPDFL +0 -0
  127. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings +0 -0
  128. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist +35 -0
  129. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources +146 -0
  130. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL +0 -0
  131. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings +0 -0
  132. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist +35 -0
  133. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources +146 -0
  134. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/XMPPLUGINUIDS.txt +31 -0
  135. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/PDF_Handler +0 -0
  136. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/Info.plist +52 -0
  137. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt +1 -0
  138. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL +0 -0
  139. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Resources/English.lproj/InfoPlist.strings +0 -0
  140. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Resources/Info.plist +35 -0
  141. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL +0 -0
  142. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings +0 -0
  143. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist +35 -0
  144. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources +146 -0
  145. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL +0 -0
  146. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings +0 -0
  147. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist +35 -0
  148. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources +146 -0
  149. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt +31 -0
  150. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/_CodeSignature/CodeResources +216 -0
  151. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/PDF_Handler +0 -0
  152. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/Info.plist +52 -0
  153. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MODULE_IDENTIFIER.txt +1 -0
  154. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/MiniPDFL +0 -0
  155. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Resources/English.lproj/InfoPlist.strings +0 -0
  156. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Resources/Info.plist +35 -0
  157. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/MiniPDFL +0 -0
  158. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings +0 -0
  159. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist +35 -0
  160. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources +146 -0
  161. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL +0 -0
  162. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings +0 -0
  163. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist +35 -0
  164. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources +146 -0
  165. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/XMPPLUGINUIDS.txt +31 -0
  166. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/_CodeSignature/CodeResources +216 -0
  167. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/linux/PDF_Handler.exp +11 -0
  168. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/mac/PDF_Handler.exp +2 -0
  169. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/mac/PDF_Handler.plist +28 -0
  170. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/mac/PDF_HandlerPList.h +12 -0
  171. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/win/CopyPDFL.bat +14 -0
  172. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/win/PDF_Handler-32.rc +8 -0
  173. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/win/PDF_Handler-64.rc +8 -0
  174. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/win/PDF_Handler.def +9 -0
  175. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/windows/windows_x64/MiniPDFL.dll +0 -0
  176. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpi +0 -0
  177. data/lib/xmp_toolkit_ruby/version.rb +5 -0
  178. data/lib/xmp_toolkit_ruby/xmp_file_format.rb +87 -0
  179. data/lib/xmp_toolkit_ruby/xmp_file_handler_flags.rb +49 -0
  180. data/lib/xmp_toolkit_ruby.rb +237 -0
  181. data/sig/xmp_toolkit_ruby.rbs +4 -0
  182. data/tasks/changelog.rake +29 -0
  183. metadata +357 -0
@@ -0,0 +1,120 @@
1
+ #ifndef IDOMSerializer_h__
2
+ #define IDOMSerializer_h__ 1
3
+
4
+ // =================================================================================================
5
+ // Copyright Adobe
6
+ // Copyright 2014 Adobe
7
+ // All Rights Reserved
8
+ //
9
+ // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
10
+ // of the Adobe license agreement accompanying it.
11
+ // =================================================================================================
12
+
13
+ #include "XMPCore/XMPCoreFwdDeclarations.h"
14
+ #include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
15
+ #include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
16
+ #include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h"
17
+
18
+ namespace AdobeXMPCore {
19
+ //!
20
+ //! @brief Version1 of the interface that represents an object that can serialize an XMP Data Model to a buffer.
21
+ //! Provides the functions to serialize the XMP Data Model.
22
+ //!
23
+ class XMP_PUBLIC IDOMSerializer_v1
24
+ : public virtual IConfigurable
25
+ , public virtual ISharedObject
26
+ , public virtual IVersionable
27
+ {
28
+ public:
29
+
30
+ //!
31
+ //! @brief Serializes the given XMP Node into an IUTF8String object.
32
+ //! \param[in] node An object of type \#INode which needs to be serialized.
33
+ //! \param[in] nameSpacePrefixMap An object of type \#INameSpacePrefixMap which contains preferred prefixes for namespaces.
34
+ //! \return An object of \#AdobeXMPCommon::IUTF8String type containing the serialized form of the node.
35
+ //!
36
+ virtual spIUTF8String APICALL Serialize( const spINode & node, const spcINameSpacePrefixMap & nameSpacePrefixMap = spcINameSpacePrefixMap() ) = 0;
37
+
38
+ //!
39
+ //! @brief Virtual copy constructor.
40
+ //! Creates an exact replica of the object.
41
+ //! \return A shared pointer to an object of \#IDOMSerializer which is the exact replica of the current serializer.
42
+ //!
43
+ virtual spIDOMSerializer APICALL Clone() const = 0;
44
+
45
+ //!
46
+ //! \cond XMP_INTERNAL_DOCUMENTATION
47
+
48
+ //!
49
+ //! @{
50
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
51
+ //! \return Either a const or non const pointer to IDOMSerializer interface.
52
+ //!
53
+ virtual pIDOMSerializer APICALL GetActualIDOMSerializer() __NOTHROW__ = 0;
54
+ XMP_PRIVATE pcIDOMSerializer GetActualIDOMSerializer() const __NOTHROW__ {
55
+ return const_cast< IDOMSerializer_v1 * >( this )->GetActualIDOMSerializer();
56
+ }
57
+ //!
58
+ //! @}
59
+
60
+ //!
61
+ //! @{
62
+ //! @brief Returns the pointer to internal interfaces.
63
+ //! \return Either a const or non const pointer to IDOMSerializer_I interface.
64
+ //!
65
+ virtual AdobeXMPCore_Int::pIDOMSerializer_I APICALL GetIDOMSerializer_I() __NOTHROW__ = 0;
66
+
67
+ XMP_PRIVATE AdobeXMPCore_Int::pcIDOMSerializer_I GetIDOMSerializer_I() const __NOTHROW__ {
68
+ return const_cast< IDOMSerializer_v1 * >( this )->GetIDOMSerializer_I();
69
+ }
70
+ //!
71
+ //! @}
72
+
73
+ //!
74
+ //! @{
75
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
76
+ //! where as the returned shared pointer depends on the version client is interested in.
77
+ //! \return Shared pointer to const or non constant interface.
78
+ //!
79
+ XMP_PRIVATE static spIDOMSerializer MakeShared( pIDOMSerializer_base ptr );
80
+ XMP_PRIVATE static spcIDOMSerializer MakeShared( pcIDOMSerializer_base ptr ) {
81
+ return MakeShared( const_cast< pIDOMSerializer_base >( ptr ) );
82
+ }
83
+
84
+ //!
85
+ //! @}
86
+
87
+ //!
88
+ //! @brief Returns the unique ID assigned to the interface.
89
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
90
+ //!
91
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIDOMSerializerID; }
92
+
93
+ //!
94
+ //! @brief Returns the version of the interface.
95
+ //! \return 32 bit unsigned integer representing the version of the interface.
96
+ //!
97
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
98
+ //! \endcond
99
+
100
+ protected:
101
+ //!
102
+ //! Destructor
103
+ //!
104
+ virtual ~IDOMSerializer_v1() __NOTHROW__ {}
105
+
106
+ //! \cond XMP_INTERNAL_DOCUMENTATION
107
+ virtual pIUTF8String_base APICALL serialize( pINode_base node, pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__ = 0;
108
+ virtual pIDOMSerializer_base APICALL clone( pcIError_base & error ) const __NOTHROW__ = 0;
109
+
110
+ #ifdef FRIEND_CLASS_DECLARATION
111
+ FRIEND_CLASS_DECLARATION();
112
+ #endif
113
+ REQ_FRIEND_CLASS_DECLARATION();
114
+ //! \endcond
115
+
116
+ };
117
+ }
118
+
119
+ #endif // IDOMSerializer_h__
120
+
@@ -0,0 +1,145 @@
1
+ #ifndef __IMetadata_h__
2
+ #define __IMetadata_h__ 1
3
+
4
+ // =================================================================================================
5
+ // Copyright Adobe
6
+ // Copyright 2014 Adobe
7
+ // All Rights Reserved
8
+ //
9
+ // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
10
+ // of the Adobe license agreement accompanying it.
11
+ // =================================================================================================
12
+
13
+ #include "XMPCore/Interfaces/IStructureNode.h"
14
+
15
+ namespace AdobeXMPCore {
16
+
17
+ //!
18
+ //! \brief Version1 of the interface that represents the whole xmp metadata for an asset.
19
+ //! @details Provides all the functions to add or remove nodes to and from metadata.
20
+ //! \attention Support multi threading through locks but can be enabled/disabled by the client. By default
21
+ //! every object created does not support multi-threading.
22
+ //!
23
+
24
+ class XMP_PUBLIC IMetadata_v1
25
+ : public virtual IStructureNode_v1
26
+ {
27
+ public:
28
+ //!
29
+
30
+ //! @brief Gets the about URI string for the XMP metadata.
31
+ //! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String object containing URI string.
32
+ //! \note By default this is an empty string.
33
+ //!
34
+ virtual spcIUTF8String APICALL GetAboutURI() const = 0;
35
+
36
+ //!
37
+ //! @brief Sets the about URI string for the XMP metadata.
38
+ //! \param[in] uri Pointer to a constant char buffer containing uri string.
39
+ //! \param[in] uriLength Number of characters in uri. In case name is null terminated set it to \#AdobeXMPCommon::npos.
40
+ //!
41
+ virtual void APICALL SetAboutURI( const char * uri, sizet uriLength ) __NOTHROW__ = 0;
42
+
43
+ //!
44
+ //! @brief Enables support for a particular feature.
45
+ //! \param[in] key A const char buffer containing key for the feature.
46
+ //! \param[in] keyLength Number of characters in key.
47
+ //! \note Following keys are supported:
48
+ //! - alias Enable support for aliases on the metadata object.
49
+ //!
50
+ virtual void APICALL EnableFeature( const char * key, sizet keyLength ) const __NOTHROW__ = 0;
51
+
52
+ //!
53
+ //! @brief Disables support for a particular feature.
54
+ //! \param[in] key A const char buffer containing key for the feature.
55
+ //! \param[in] keyLength Number of characters in key.
56
+ //!
57
+ virtual void APICALL DisableFeature( const char * key, sizet keyLength ) const __NOTHROW__ = 0;
58
+
59
+ //! \cond XMP_INTERNAL_DOCUMENTATION
60
+
61
+ //!
62
+ //! @{
63
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
64
+ //! \return Either a const or non const pointer to IMetadata interface.
65
+ //!
66
+ virtual pIMetadata APICALL GetActualIMetadata() __NOTHROW__ = 0;
67
+ XMP_PRIVATE pcIMetadata GetActualIMetadata() const __NOTHROW__ {
68
+ return const_cast< IMetadata_v1 * >( this )->GetActualIMetadata();
69
+ }
70
+ //!
71
+ //! @}
72
+
73
+ //!
74
+ //! @{
75
+ //! @brief Returns the pointer to internal interfaces.
76
+ //! \return Either a const or non const pointer to IMetadata_I interface.
77
+ //!
78
+ virtual AdobeXMPCore_Int::pIMetadata_I APICALL GetIMetadata_I() __NOTHROW__ = 0;
79
+
80
+ XMP_PRIVATE AdobeXMPCore_Int::pcIMetadata_I GetIMetadata_I() const __NOTHROW__ {
81
+ return const_cast< IMetadata_v1 * >( this )->GetIMetadata_I();
82
+ }
83
+ //!
84
+ //! @}
85
+
86
+ //!
87
+ //! @{
88
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
89
+ //! where as the returned shared pointer depends on the version client is interested in.
90
+ //! \return Shared pointer to const or non constant interface.
91
+ //!
92
+ XMP_PRIVATE static spIMetadata MakeShared( pIMetadata_base ptr );
93
+ XMP_PRIVATE static spcIMetadata MakeShared( pcIMetadata_base ptr ) {
94
+ return MakeShared( const_cast< pIMetadata_base >( ptr ) );
95
+ }
96
+ //!
97
+ //! @}
98
+
99
+ //!
100
+ //! @brief Returns the unique ID assigned to the interface.
101
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
102
+ //!
103
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIMetadataID; }
104
+
105
+ //!
106
+ //! @brief Returns the version of the interface.
107
+ //! \return 32 bit unsigned integer representing the version of the interface.
108
+ //!
109
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
110
+ //! \endcond
111
+
112
+ // static factory functions
113
+
114
+ //!
115
+ //! @brief Creates an empty IMetadata object.
116
+ //! \return A shared pointer to an empty \#IMetadata object.
117
+ //!
118
+ XMP_PRIVATE static spIMetadata CreateMetadata();
119
+
120
+ protected:
121
+ //!
122
+ //! Destructor
123
+ //!
124
+ virtual ~IMetadata_v1() __NOTHROW__ {}
125
+
126
+ //! Hiding some functions from derived classes
127
+ using INode_v1::GetParent;
128
+ using INode_v1::GetNameSpace;
129
+ using INode_v1::SetNameSpace;
130
+ using INode_v1::GetName;
131
+ using INode_v1::SetName;
132
+
133
+ //! \cond XMP_INTERNAL_DOCUMENTATION
134
+ virtual pcIUTF8String_base APICALL getAboutURI( pcIError_base & error ) const __NOTHROW__ = 0;
135
+
136
+ #ifdef FRIEND_CLASS_DECLARATION
137
+ FRIEND_CLASS_DECLARATION();
138
+ #endif
139
+ REQ_FRIEND_CLASS_DECLARATION();
140
+ //! \endcond
141
+
142
+ };
143
+ }
144
+
145
+ #endif // __IMetadata_h__
@@ -0,0 +1,116 @@
1
+ #ifndef __IMetadataConverterUtils_h__
2
+ #define __IMetadataConverterUtils_h__ 1
3
+
4
+ // =================================================================================================
5
+ // Copyright Adobe
6
+ // Copyright 2014 Adobe
7
+ // All Rights Reserved
8
+ //
9
+ // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
10
+ // of the Adobe license agreement accompanying it.
11
+ // =================================================================================================
12
+ #include <string>
13
+ #define TXMP_STRING_TYPE std::string
14
+ #include "XMP.hpp"
15
+
16
+ #include "XMPCore/XMPCoreFwdDeclarations.h"
17
+ #include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
18
+ #include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
19
+ #include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h"
20
+
21
+
22
+
23
+ namespace AdobeXMPCore {
24
+
25
+ //!
26
+ //! @brief Version1 of the interface that represents an utility functions that can convert old xmp object(SXMPMeta) to new xmp object(IMetadata) and vice versa.
27
+ //!
28
+
29
+ class XMP_PUBLIC IMetadataConverterUtils_v1
30
+ : public virtual ISharedObject
31
+ , public virtual IVersionable
32
+ {
33
+ public:
34
+
35
+ //!
36
+ //! @brief Converts SXMPMeta object to IMetadata object.
37
+ //! \return An shared pointer of type AdobeXMPCore::spIMetadata indicating converted meta object.
38
+ //!
39
+ static spIMetadata ConvertXMPMetatoIMetadata(const SXMPMeta* inOldXMP);
40
+
41
+ //!
42
+ //! @brief Converts IMetadata object to SXMPMeta object.
43
+ //! \return SXMPMeta object indicating converted meta object.
44
+ //!
45
+ static SXMPMeta ConvertIMetadatatoXMPMeta(AdobeXMPCore::spIMetadata inNewXMP);
46
+
47
+ //! \cond XMP_INTERNAL_DOCUMENTATION
48
+
49
+ //!
50
+ //! @{
51
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
52
+ //! \return Either a const or non const pointer to IMetadataConverterUtils interface.
53
+ //!
54
+ virtual pIMetadataConverterUtils APICALL GetActualIMetadataConverterUtils() __NOTHROW__ = 0;
55
+ XMP_PRIVATE pcIMetadataConverterUtils GetActualIMetadataConverterUtils() const __NOTHROW__ {
56
+ return const_cast< IMetadataConverterUtils_v1 * >( this )->GetActualIMetadataConverterUtils();}
57
+ //!
58
+ //! @}
59
+
60
+ //!
61
+ //! @{
62
+ //! @brief Returns the pointer to internal interfaces.
63
+ //! \return Either a const or non const pointer to IMetadataConverterUtils_I interface.
64
+ //!
65
+ virtual AdobeXMPCore_Int::pIMetadataConverterUtils_I APICALL GetIMetadataConverterUtils_I() __NOTHROW__ = 0;
66
+
67
+ XMP_PRIVATE AdobeXMPCore_Int::pcIMetadataConverterUtils_I GetIMetadataConverterUtils_I() const __NOTHROW__ {
68
+ return const_cast< IMetadataConverterUtils_v1 * >( this )->GetIMetadataConverterUtils_I();}
69
+ //!
70
+ //! @}
71
+
72
+ //!
73
+ //! @{
74
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
75
+ //! where as the returned shared pointer depends on the version client is interested in.
76
+ //! \return Shared pointer to const or non constant interface.
77
+ //!
78
+ XMP_PRIVATE static spIMetadataConverterUtils MakeShared( pIMetadataConverterUtils_base ptr );
79
+ XMP_PRIVATE static spcIMetadataConverterUtils MakeShared( pcIMetadataConverterUtils_base ptr ) {
80
+ return MakeShared( const_cast< pIMetadataConverterUtils_base >( ptr ) );
81
+ }
82
+ //!
83
+ //! @}
84
+
85
+ //!
86
+ //! @brief Returns the unique ID assigned to the interface.
87
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
88
+ //!
89
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIMetadataConverterUtilsID; }
90
+
91
+ //!
92
+ //! @brief Returns the version of the interface.
93
+ //! \return 32 bit unsigned integer representing the version of the interface.
94
+ //!
95
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
96
+ //! \endcond
97
+
98
+
99
+
100
+ protected:
101
+ //!
102
+ //! Destructor
103
+ //!
104
+ virtual ~IMetadataConverterUtils_v1() __NOTHROW__ {}
105
+
106
+ #ifdef FRIEND_CLASS_DECLARATION
107
+ FRIEND_CLASS_DECLARATION();
108
+ #endif
109
+ REQ_FRIEND_CLASS_DECLARATION();
110
+ //! \endcond
111
+
112
+ };
113
+ }
114
+
115
+
116
+ #endif /*__IMetadataConverterUtils_h__*/
@@ -0,0 +1,236 @@
1
+ #ifndef INameSpacePrefixMap_h__
2
+ #define INameSpacePrefixMap_h__ 1
3
+
4
+ // =================================================================================================
5
+ // Copyright Adobe
6
+ // Copyright 2014 Adobe
7
+ // All Rights Reserved
8
+ //
9
+ // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
10
+ // of the Adobe license agreement accompanying it.
11
+ // =================================================================================================
12
+
13
+ #include "XMPCore/XMPCoreFwdDeclarations.h"
14
+ #include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
15
+ #include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
16
+ #include "XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h"
17
+
18
+ namespace AdobeXMPCore {
19
+
20
+ //!
21
+ //! \brief Version1 of the interface that represents map where each entry consists of prefix string
22
+ //! as the key and corresponding nameSpace string as its value.
23
+ //! \details Provides all the functions to get/set the entries inside the map.
24
+ //! \attention Supports Multi-threading at object level through locks.
25
+ //!
26
+ class XMP_PUBLIC INameSpacePrefixMap_v1
27
+ : public virtual ISharedObject
28
+ , public virtual IVersionable
29
+ , public virtual IThreadSafe
30
+ {
31
+ public:
32
+
33
+ //!
34
+ //! @brief Adds a new pair of prefix string and its corresponding nameSpace string or replace an existing entry.
35
+ //! \param[in] prefix Pointer to a constant char buffer containing prefix string.
36
+ //! \param[in] prefixLength Number of characters in prefix. In case prefix is null terminated set it to \#AdobeXMPCommon::npos.
37
+ //! \param[in] nameSpace Pointer to a constant char buffer containing nameSpace string.
38
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
39
+ //! \return A bool type object containing true in case operation was successful, false otherwise.
40
+ //! \note Raises warning in case of
41
+ //! - prefix or nameSpace are null pointers
42
+ //! - prefixLength or nameSpaceLength is 0.
43
+ //!
44
+ virtual bool APICALL Insert( const char * prefix, sizet prefixLength, const char * nameSpace, sizet nameSpaceLength ) = 0;
45
+
46
+ //!
47
+ //! @brief Finds the prefix string in the map and removes an entry corresponding to it in the map.
48
+ //! \param[in] prefix Pointer to a const char buffer containing prefix string.
49
+ //! \param[in] prefixLength Number of characters in prefix. In case prefix is null terminated set it to \#AdobeXMPCommon::npos.
50
+ //! \return A bool type object containing true in case entry was found and then deleted from the map, false otherwise.
51
+ //! \note Raises warning in case of
52
+ //! - prefix is null pointer, or
53
+ //! - prefixLength is 0.
54
+ //! \attention Throws AdobeXMPCommon::pcIError in case of failure in removing or searching process.
55
+ //!
56
+ virtual bool APICALL RemovePrefix( const char * prefix, sizet prefixLength ) = 0;
57
+
58
+ //!
59
+ //! @brief Finds the nameSpace string in the map and removes an entry corresponding to it in the map.
60
+ //! \param[in] nameSpace Pointer to a constant char buffer containing nameSpace string.
61
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
62
+ //! \return A bool type object containing true in case entry was found and then deleted from the map, false otherwise.
63
+ //! \note Raises warning in case of
64
+ //! - nameSpace is null pointer, or
65
+ //! - nameSpaceLength is 0.
66
+ //! \attention Throws AdobeXMPCommon::pcIError in case of failure in removing or searching process.
67
+ //!
68
+ virtual bool APICALL RemoveNameSpace( const char * nameSpace, sizet nameSpaceLength ) = 0;
69
+
70
+ //!
71
+ //! @brief Checks for the existence of a particular prefix in the map.
72
+ //! \param[in] prefix Pointer to a const char buffer containing prefix string.
73
+ //! \param[in] prefixLength Number of characters in prefix. In case prefix is null terminated set it to \#AdobeXMPCommon::npos.
74
+ //! \return A bool type object containing true in case there is an entry present corresponding to the prefix string, otherwise false.
75
+ //! \note Raises warning in case of
76
+ //! - prefix is null pointer, or
77
+ //! - prefixLength is 0.
78
+ //!
79
+ virtual bool APICALL IsPrefixPresent( const char * prefix, sizet prefixLength ) const = 0;
80
+
81
+ //!
82
+ //! @brief Checks for the existence of a particular nameSpace in the map.
83
+ //! \param[in] nameSpace Pointer to a constant char buffer containing nameSpace string.
84
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
85
+ //! \return A bool type object containing true in case there is an entry present corresponding to the nameSpace string, otherwise false.
86
+ //! \note Raises warning in case of
87
+ //! - nameSpace is null pointer, or
88
+ //! - nameSpaceLength is 0.
89
+ //!
90
+ virtual bool APICALL IsNameSpacePresent( const char * nameSpace, sizet nameSpaceLength ) const = 0;
91
+
92
+ //!
93
+ //! @brief Gets the nameSpace string corresponding to the prefix string.
94
+ //! \param[in] prefix Pointer to a const char buffer containing prefix string.
95
+ //! \param[in] prefixLength Number of characters in prefix. In case prefix is null terminated set it to \#AdobeXMPCommon::npos.
96
+ //! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String object containing nameSpace string corresponding to
97
+ //! prefix string if a mapping exists, otherwise invalid shared pointer is returned.
98
+ //! \note Raises warning in case of
99
+ //! - prefix is null pointer, or
100
+ //! - prefixLength is 0.
101
+ //!
102
+ virtual spcIUTF8String APICALL GetNameSpace( const char * prefix, sizet prefixLength ) const = 0;
103
+
104
+ //!
105
+ //! @brief Get the prefix string corresponding to the nameSpace string.
106
+ //! \param[in] nameSpace Pointer to a constant char buffer containing nameSpace string.
107
+ //! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
108
+ //! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String object containing prefix string corresponding to
109
+ //! nameSpace string if a mapping exists, otherwise invalid shared pointer is returned.
110
+ //! \note Raises warning in case of
111
+ //! - nameSpace is null pointer, or
112
+ //! - nameSpaceLength is 0.
113
+ //!
114
+ virtual spcIUTF8String APICALL GetPrefix( const char * nameSpace, sizet nameSpaceLength ) const = 0;
115
+
116
+ //!
117
+ //! @brief To get the total number of entries in the map.
118
+ //! \return An object of type \#AdobeXMPCommon::sizet containing the count of entries in the map.
119
+ //!
120
+ virtual sizet APICALL Size() const __NOTHROW__ = 0;
121
+
122
+ //!
123
+ //! @brief To check whether the map is empty or not.
124
+ //! \return True in case map is empty; false otherwise.
125
+ //!
126
+ bool IsEmpty() const __NOTHROW__;
127
+
128
+ //!
129
+ //! @brief Clear all the entries in the map.
130
+ //!
131
+ virtual void APICALL Clear() __NOTHROW__ = 0;
132
+
133
+ //!
134
+ //! \brief Virtual Copy Constructor.
135
+ //! \details Makes an another object which is exact replica of the existing object.
136
+ // \return A shared pointer to INameSpacePrefixMap which is exact replica of the current object.
137
+ //!
138
+ virtual spINameSpacePrefixMap APICALL Clone() const = 0;
139
+
140
+ //!
141
+ //! \cond XMP_INTERNAL_DOCUMENTATION
142
+
143
+ //!
144
+ //! @{
145
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
146
+ //! \return Either a const or non const pointer to INameSpacePrefixMap interface.
147
+ //!
148
+ virtual pINameSpacePrefixMap APICALL GetActualINameSpacePrefixMap() __NOTHROW__ = 0;
149
+ XMP_PRIVATE pcINameSpacePrefixMap GetActualINameSpacePrefixMap() const __NOTHROW__ {
150
+ return const_cast< INameSpacePrefixMap_v1 * >( this )->GetActualINameSpacePrefixMap();
151
+ }
152
+ //!
153
+ //! @}
154
+
155
+ //!
156
+ //! @{
157
+ //! @brief Returns the pointer to internal interfaces.
158
+ //! \return Either a const or non const pointer to INameSpacePrefixMap_I interface.
159
+ //!
160
+ virtual AdobeXMPCore_Int::pINameSpacePrefixMap_I APICALL GetINameSpacePrefixMap_I() __NOTHROW__ = 0;
161
+
162
+ XMP_PRIVATE AdobeXMPCore_Int::pcINameSpacePrefixMap_I GetINameSpacePrefixMap_I() const __NOTHROW__ {
163
+ return const_cast< INameSpacePrefixMap_v1 * >( this )->GetINameSpacePrefixMap_I();
164
+ }
165
+ //!
166
+ //! @}
167
+
168
+ //!
169
+ //! @{
170
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
171
+ //! where as the returned shared pointer depends on the version client is interested in.
172
+ //! \return shared pointer to const or non constant interface.
173
+ //!
174
+ XMP_PRIVATE static spINameSpacePrefixMap MakeShared( pINameSpacePrefixMap_base ptr );
175
+ XMP_PRIVATE static spcINameSpacePrefixMap MakeShared( pcINameSpacePrefixMap_base ptr ) {
176
+ return MakeShared( const_cast< pINameSpacePrefixMap_base >( ptr ) );
177
+ }
178
+ //!
179
+ //! @}
180
+
181
+ //!
182
+ //! @brief Returns the unique ID assigned to the interface.
183
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
184
+ //!
185
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kINameSpacePrefixMapID; }
186
+
187
+ //!
188
+ //! @brief returns the version of the interface.
189
+ //! \return 32 bit unsigned integer representing the version of the interface.
190
+ //!
191
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
192
+
193
+ //! \endcond
194
+
195
+
196
+ // static factory functions
197
+
198
+ //!
199
+ //! @brief Provides the default mapping of prefix string and nameSpace strings used by XMPCore.
200
+ //! \return A shared pointer to const INameSpacePrefixMap object containing all the mappings used
201
+ //! as default by the XMPCore.
202
+ //!
203
+ XMP_PRIVATE static spcINameSpacePrefixMap GetDefaultNameSpacePrefixMap();
204
+
205
+ //!
206
+ //! @brief Creates an empty namespace - prefix map and returns it to the client as a shared pointer.
207
+ //! \return A shared pointer to an empty INameSpacePrefixMap object.
208
+ //!
209
+ XMP_PRIVATE static spINameSpacePrefixMap CreateNameSpacePrefixMap();
210
+
211
+ protected:
212
+ //!
213
+ //! Destructor
214
+ //!
215
+ virtual ~INameSpacePrefixMap_v1() __NOTHROW__ {}
216
+
217
+ //! \cond XMP_INTERNAL_DOCUMENTATION
218
+ const uint32 kPrefixIsParameter = 0;
219
+ const uint32 kNameSpaceIsParameter = 1;
220
+
221
+ virtual uint32 APICALL insert( const char * prefix, sizet prefixLength, const char * nameSpace, sizet nameSpaceLength, pcIError_base & error ) __NOTHROW__ = 0;
222
+ virtual uint32 APICALL remove( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) __NOTHROW__ = 0;
223
+ virtual uint32 APICALL isPresent( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) const __NOTHROW__ = 0;
224
+ virtual pcIUTF8String_base APICALL get( uint32 keyType, const char * key, sizet keyLength, pcIError_base & error ) const __NOTHROW__ = 0;
225
+ virtual pINameSpacePrefixMap_base APICALL clone( pcIError_base & error ) const __NOTHROW__ = 0;
226
+
227
+ #ifdef FRIEND_CLASS_DECLARATION
228
+ FRIEND_CLASS_DECLARATION();
229
+ #endif
230
+ REQ_FRIEND_CLASS_DECLARATION();
231
+ //! \endcond
232
+
233
+ };
234
+ }
235
+
236
+ #endif // INameSpacePrefixMap_h__