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,88 @@
1
+ // =================================================================================================
2
+ // Copyright Adobe
3
+ // Copyright 2015 Adobe
4
+ // All Rights Reserved
5
+ //
6
+ // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
7
+ // of the Adobe license agreement accompanying it.
8
+ // =================================================================================================
9
+
10
+ #include "XMPCore/XMPCoreFwdDeclarations.h"
11
+ #include "XMPCommon/Interfaces/IError.h"
12
+ #include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h"
13
+ #include "XMPCore/XMPCoreErrorCodes.h"
14
+
15
+ namespace AdobeXMPCore {
16
+
17
+ //!
18
+ //! @brief Version 1 of the interface that supports parsing by the client supplied parser of the XMP Data Model.
19
+ //! @details Provides functions to parse the XMP Data Model.
20
+ //! Thread safety is controllable by the client.
21
+ //!
22
+ class XMP_PUBLIC IClientDOMParser_v1
23
+ {
24
+ public:
25
+
26
+ //!
27
+ //! @brief Parse the contents present in the buffer taking into account the configuration parameters.
28
+ //! \param[in] buffer Pointer to a constant char buffer containing serialized XMP Data Model.
29
+ //! \param[in] bufferLength Number of characters in buffer. In case name is null terminated set it to \#AdobeXMPCommon::npos.
30
+ //! \param[in] configurationParameters An object of type \#AdobeXMPCommon::IConfigurable containing all the configuration parameters requested by client
31
+ //! to be taken care of while parsing.
32
+ //! \param[in] proc A function pointer to be used by the parse operation to report back any encountered errors/warnings.
33
+ //! \return A shared pointer to \#INode object containing all the parsed XMP Data Model.
34
+ //!
35
+ virtual spINode APICALL Parse( const char * buffer, sizet bufferLength, pcIConfigurable configurationParameters, ReportErrorAndContinueFunctor proc ) = 0;
36
+
37
+ //!
38
+ //! @brief Indicates whether object supports case sensitive keys or not.
39
+ //! \return True in case object supports case sensitive keys, false otherwise.
40
+ //! \note Default implementation makes keys case insensitive.
41
+ //!
42
+ virtual bool APICALL AreKeysCaseSensitive() const { return false; }
43
+
44
+ //!
45
+ //! @brief Initialize the default configuration parameters.
46
+ //! @details The object needs to fill the default configuration parameters supported by it.
47
+ //! \param[in] configurationParameters an empty object of type \#AdobeXMPCommon::IConfigurable.
48
+ //! \note default implementation does not fill anything in the configuration parameters.
49
+ //!
50
+ virtual void APICALL Initialize( pIConfigurable configurationParameters ) {};
51
+
52
+ //!
53
+ //! @brief Validate the data type and value for a parameter.
54
+ //! \param[in] key An unsigned 64 bit integer value indicating the key.
55
+ //! \param[in] dataType A value of type \#AdobeXMPCommon::IConfigurable::eDataType indicating the type of value the parameter holds.
56
+ //! \param[in] dataValue A value of \#AdobeXMPCommon::IConfigurable::CombinedDataValue indicating the value the parameter holds.
57
+ //! \return An error code in case there is something wrong with the combination, otherwise returns \ p0-\#AdobeXMPCommon::eCECNone.
58
+ //! \note Default implementation validates all the keys + dataTypes + dataValue combinations.
59
+ //!
60
+ virtual eConfigurableErrorCode APICALL Validate( const uint64 & key, IConfigurable::eDataType dataType, const IConfigurable::CombinedDataValue & dataValue ) {
61
+ return kCECNone;
62
+ }
63
+
64
+ //!
65
+ //! @brief Called by the library when the object is no longer required by it and client can free up the resources or memory associated with the object.
66
+ //!
67
+ virtual void APICALL Release() const __NOTHROW__ = 0;
68
+
69
+ protected:
70
+ //!
71
+ //! Destructor
72
+ //!
73
+ virtual ~IClientDOMParser_v1() {}
74
+
75
+ //! \cond XMP_INTERNAL_DOCUMENTATION
76
+ virtual pINode_base APICALL parse( const char * buffer, sizet bufferLength, pcIConfigurable configurationParameters, ReportErrorAndContinueABISafeProc proc, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__;
77
+ virtual uint32 APICALL areKeysCaseSensitive( pcIError_base & error, uint32 & unknownExceptionCaught ) const __NOTHROW__;
78
+ virtual void APICALL initialize( pIConfigurable configurationParameters, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__;
79
+ virtual uint32 APICALL validate( const uint64 & key, uint32 dataType, const IConfigurable::CombinedDataValue & dataValue, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__;
80
+
81
+ #ifdef FRIEND_CLASS_DECLARATION
82
+ FRIEND_CLASS_DECLARATION();
83
+ #endif
84
+ REQ_FRIEND_CLASS_DECLARATION();
85
+ //! \endcond
86
+
87
+ };
88
+ }
@@ -0,0 +1,94 @@
1
+ #ifndef IClientDOMSerializer_h__
2
+ #define IClientDOMSerializer_h__ 1
3
+
4
+ // =================================================================================================
5
+ // Copyright Adobe
6
+ // Copyright 2015 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/IError.h"
15
+ #include "XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h"
16
+ #include "XMPCommon/XMPCommonErrorCodes.h"
17
+
18
+ namespace AdobeXMPCore {
19
+
20
+ //!
21
+ //! @brief Version 1 of the interface that supports serializing by the client supplied serializer of the XMP Data Model.
22
+ //! @details Provides functions to serialize the XMP Data Model.
23
+ //! Thread safety is controllable by the client.
24
+ //!
25
+ class XMP_PUBLIC IClientDOMSerializer_v1
26
+ {
27
+ public:
28
+
29
+ //!
30
+ //! @brief Serialize the XMP Data Model taking into account the configuration parameters.
31
+ //! \param[in] node The node to be serialized.
32
+ //! \param[in] nameSpacePrefixMap An object of type \#INameSpacePrefixMap which contains preferred prefixes for namespaces.
33
+ //! \param[in] configurationParameters An object of type #AdobeXMPCommon::IConfigurable containing all the configuration parameters requested by client
34
+ //! to be taken care of while serializing.
35
+ //! \param[in] functor A function object to be used by the serializing operation to report back any encountered errors/warnings.
36
+ //! \param[out] string A shared pointer to an IUTF8String object which should be filled with the serialized form of XMP Data Model.
37
+ //!
38
+ virtual void APICALL Serialize( const spINode & node, const spcINameSpacePrefixMap & nameSpacePrefixMap, pcIConfigurable configurationParameters,
39
+ ReportErrorAndContinueFunctor functor, const spIUTF8String & string ) = 0;
40
+
41
+ //!
42
+ //! @brief Indicates whether object supports case sensitive keys or not.
43
+ //! \return True in case object supports case sensitive keys, false otherwise.
44
+ //! \note Default implementation makes keys case insensitive.
45
+ //!
46
+ virtual bool APICALL AreKeysCaseSensitive() const { return false; }
47
+
48
+ //!
49
+ //! @brief Initializes the default configuration parameters.
50
+ //! The object needs to fill the default configuration parameters supported by it.
51
+ //! \param[in] configurationParameters An empty object of type #AdobeXMPCommon::IConfigurable.
52
+ //! \note Default implementation does not fill anything in the configuration parameters.
53
+ //!
54
+ virtual void APICALL Initialize( pIConfigurable configurationParameters ) {};
55
+
56
+ //!
57
+ //! @brief Validate the data type and value for a parameter.
58
+ //! \param[in] key An unsigned 64 bit integer value indicating the key.
59
+ //! \param[in] dataType A value of type #AdobeXMPCommon::IConfigurable::eDataType indicating the type of value the parameter holds.
60
+ //! \param[in] dataValue A value of \#AdobeXMPCommon::IConfigurable::CombinedDataValue indicating the value the parameter holds.
61
+ //! \return An error code in case there is something wrong with the combination, otherwise returns \#AdobeXMPCommon::eCECNone.
62
+ //! \note Default implementation validates all the keys + dataTypes + dataValue combinations.
63
+ //!
64
+ virtual eConfigurableErrorCode APICALL Validate( const uint64 & key, IConfigurable::eDataType dataType, const IConfigurable::CombinedDataValue & dataValue ) {
65
+ return kCECNone;
66
+ }
67
+
68
+ //!
69
+ //! @brief Called by the library when the object is no longer required by it and client can free up the resources or memory associated with the object.
70
+ //!
71
+ virtual void APICALL Release() const __NOTHROW__ = 0;
72
+
73
+ protected:
74
+ //!
75
+ //! Destructor
76
+ //!
77
+ virtual ~IClientDOMSerializer_v1() {}
78
+
79
+ //! \cond XMP_INTERNAL_DOCUMENTATION
80
+ virtual void APICALL serialize( pINode_base node, pcINameSpacePrefixMap_base nameSpacePrefixMap, pcIConfigurable configurationParameters, ReportErrorAndContinueABISafeProc proc, pIUTF8String_base string, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__;
81
+ virtual uint32 APICALL areKeysCaseSensitive( pcIError_base & error, uint32 & unknownExceptionCaught ) const __NOTHROW__;
82
+ virtual void APICALL initialize( pIConfigurable configurationParameters, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__;
83
+ virtual uint32 APICALL validate( const uint64 & key, uint32 dataType, const IConfigurable::CombinedDataValue & dataValue, pcIError_base & error, uint32 & unknownExceptionCaught ) __NOTHROW__;
84
+
85
+ #ifdef FRIEND_CLASS_DECLARATION
86
+ FRIEND_CLASS_DECLARATION();
87
+ #endif
88
+ REQ_FRIEND_CLASS_DECLARATION();
89
+ //! \endcond
90
+
91
+ };
92
+ }
93
+
94
+ #endif // IClientDOMSerializer_h__
@@ -0,0 +1,331 @@
1
+ #ifndef __ICompositeNode_h__
2
+ #define __ICompositeNode_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/INode.h"
14
+ #include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
15
+
16
+ namespace AdobeXMPCore {
17
+
18
+ //!
19
+ //! \brief Version1 of the interface that serves as a base interface to all composite types of nodes
20
+ //! in the XMP DOM ( like Arrays and Structures ).
21
+ //! \details Provides all the functions to get various properties of the composite node.
22
+ //! \attention Support multi threading through locks but can be enabled/disabled by the client. By default
23
+ //! every object created does not support multi-threading.
24
+ //!
25
+ class XMP_PUBLIC ICompositeNode_v1
26
+ : public virtual INode_v1
27
+ {
28
+ public:
29
+
30
+ //!
31
+ //! @brief Get the node type specified by the path relative to the composite node.
32
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path
33
+ //! from the node to the node client is interested in.
34
+ //! \return The type of the node.
35
+ //! \note In case no node exists at the given path a value \#eNodeType::kNTNone is returned.
36
+ //!
37
+ virtual eNodeType APICALL GetNodeTypeAtPath( const spcIPath & path ) const = 0;
38
+
39
+ //!
40
+ //! @{
41
+ //! @brief Get the node specified by the path relative to the composite node.
42
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path
43
+ //! from the node to the node client is interested in.
44
+ //! \return A shared pointer to either a const or non const \#AdobeXMPCore::INode object containing node.
45
+ //! \note In case no node exists at the given path an invalid shared pointer is returned.
46
+ //!
47
+ XMP_PRIVATE spcINode GetNodeAtPath( const spcIPath & path ) const {
48
+ return const_cast< ICompositeNode_v1 * >( this )->GetNodeAtPath( path );
49
+ }
50
+ virtual spINode APICALL GetNodeAtPath( const spcIPath & path ) = 0;
51
+ //! @}
52
+
53
+ //!
54
+ //! @brief Appends a given node as the child of the node.
55
+ //! @details In case of array node it is appended at the last
56
+ //! and in case of structure node qualified name of the node to be inserted determines its position.
57
+ //! \param[in] node Shared pointer to an object of \#AdobeXMPCore::INode containing the node to be
58
+ //! appended as the last child.
59
+ //! \note This operation is not currently implemented for the ICompositeNode interface.
60
+ //! \attention Error is thrown in following cases:
61
+ //! -# provided node is invalid.
62
+ //! -# type of given node is not same as other child items of the array node.
63
+ //! -# given node is already a child of some other node.
64
+ //! -# composite node already has a child node with the same qualified name in case of structure node.
65
+ //!
66
+ virtual void APICALL AppendNode( const spINode & node ) = 0;
67
+
68
+ //!
69
+ //! @brief Inserts a given node at the path relative to the composite node.
70
+ //! \param[in] node Shared pointer to an object of \#AdobeXMPCore::INode containing the node to be
71
+ //! inserted at the specified relative path.
72
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path.
73
+ //! \note All the hierarchy of nodes is created if not present.
74
+ //! \note This operation is not currently implemented for the ICompositeNode interface.
75
+ //! \attention Error is thrown in following cases:
76
+ //! -# given node is invalid.
77
+ //! -# type of given node is not same as other child items of the array node.
78
+ //! -# given node is already a child of some other node.
79
+ //! -# given path is invalid or logically incorrect.
80
+ //! -# type of given node is not suitable for the destination location.
81
+ //! -# a node already exists at the specified path.
82
+ //!
83
+ virtual void APICALL InsertNodeAtPath( const spINode & node, const spcIPath & path ) = 0;
84
+
85
+ //!
86
+ //! @brief Replaces an existing node with the given node at the path relative to the composite node..
87
+ //! \param[in] node Shared pointer to an object of \#AdobeXMPCore::INode.
88
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path.
89
+ //! \return a Shared pointer to the node being replaced.
90
+ //! \note This operation is not currently implemented for the ICompositeNode interface.
91
+ //! \attention Error is thrown in following cases:
92
+ //! -# given node is invalid.
93
+ //! -# type of given node is not same as other child items of the array node.
94
+ //! -# given node is already a child of some other node.
95
+ //! -# given index is less than 1 or greater than current child count.
96
+ //! -# type of given node is not suitable for the destination location.
97
+ //! -# no node exists at the specified path.
98
+ //!
99
+ virtual spINode APICALL ReplaceNodeAtPath( const spINode & node, const spcIPath & path ) = 0;
100
+
101
+ //!
102
+ //! @brief Removes the node specified by the path relative to the composite node.
103
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path
104
+ //! from the node to the node client is interested in.
105
+ //! \return A shared pointer to \#AdobeXMPCore::INode object containing node which is removed from the tree.
106
+ //! \note In case no node exists at the given path an invalid shared pointer is returned.
107
+ //!
108
+ virtual spINode APICALL RemoveNodeAtPath( const spcIPath & path ) = 0;
109
+
110
+ //!
111
+ //! @{
112
+ //! @brief Get an iterator object to iterate over all the child nodes of the composite node.
113
+ //! \return a shared pointer to a const or non const \#INodeIterator object.
114
+ //!
115
+ virtual spINodeIterator APICALL Iterator() = 0;
116
+ XMP_PRIVATE spcINodeIterator Iterator() const {
117
+ return const_cast< ICompositeNode_v1 * >( this )->Iterator();
118
+ }
119
+ // @}
120
+
121
+ //!
122
+ //! @brief Get the count of child nodes of the composite node.
123
+ //! \return an object of type \#AdobeXMPCommon::sizet containing the count of children of the node.
124
+ //!
125
+ virtual sizet APICALL ChildCount() const __NOTHROW__ = 0;
126
+
127
+ // Wrapper non virtual functions
128
+
129
+ //!
130
+ //! @{
131
+ //! @brief Get a simple node specified by the path relative to the node.
132
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path
133
+ //! from the node to the node client is interested in.
134
+ //! \return A shared pointer to const or non const \#ISimpleNode object containing node.
135
+ //! \note In case no node exists at the given path an invalid shared pointer is returned.
136
+ //! \attention Error is thrown in case
137
+ //! - a node exists at the given path but is not a simple node.
138
+ //!
139
+ XMP_PRIVATE spcISimpleNode GetSimpleNodeAtPath( const spcIPath & path ) const {
140
+ auto node = GetNodeAtPath( path );
141
+ if ( node ) return node->ConvertToSimpleNode();
142
+ return spcISimpleNode();
143
+ }
144
+
145
+ XMP_PRIVATE spISimpleNode GetSimpleNodeAtPath( const spcIPath & path ) {
146
+ auto node = GetNodeAtPath( path );
147
+ if ( node ) return node->ConvertToSimpleNode();
148
+ return spISimpleNode();
149
+ }
150
+ //! @}
151
+
152
+ //!
153
+ //! @{
154
+ //! @brief Get a structure node specified by the path relative to the node.
155
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path
156
+ //! from the node to the node client is interested in.
157
+ //! \return A shared pointer to const or non const \#IStructureNode object containing node.
158
+ //! \note In case no node exists at the given path an invalid shared pointer is returned.
159
+ //! \attention Error is thrown in case
160
+ //! - a node exists at the given path but is not a structure node.
161
+ //!
162
+ XMP_PRIVATE spcIStructureNode GetStructureNodeAtPath( const spcIPath & path ) const {
163
+ auto node = GetNodeAtPath( path );
164
+ if ( node ) return node->ConvertToStructureNode();
165
+ return spcIStructureNode();
166
+ }
167
+
168
+ XMP_PRIVATE spIStructureNode GetStructureNodeAtPath( const spcIPath & path ) {
169
+ auto node = GetNodeAtPath( path );
170
+ if ( node ) return node->ConvertToStructureNode();
171
+ return spIStructureNode();
172
+ }
173
+ // !@}
174
+
175
+ //!
176
+ //! @{
177
+ //! @brief Get an array node specified by the path relative to the node.
178
+ //! \param[in] path Shared pointer to a const \#AdobeXMPCore::IPath object containing the relative path
179
+ //! from the node to the node client is interested in.
180
+ //! \return A shared pointer to const or non const \#IArrayNode object containing node.
181
+ //! \note In case no node exists at the given path an invalid shared pointer is returned.
182
+ //! \attention Error is thrown in case
183
+ //! - a node exists at the given path but is not an array node.
184
+ //!
185
+ XMP_PRIVATE spcIArrayNode GetArrayNodeAtPath( const spcIPath & path ) const {
186
+ auto node = GetNodeAtPath( path );
187
+ if ( node ) return node->ConvertToArrayNode();
188
+ return spcIArrayNode();
189
+ }
190
+
191
+ XMP_PRIVATE spIArrayNode GetArrayNodeAtPath( const spcIPath & path ) {
192
+ auto node = GetNodeAtPath( path );
193
+ if ( node ) return node->ConvertToArrayNode();
194
+ return spIArrayNode();
195
+ }
196
+ // !@}
197
+
198
+ //!
199
+ //! \cond XMP_INTERNAL_DOCUMENTATION
200
+
201
+ //!
202
+ //! @{
203
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
204
+ //! \return Either a const or non const pointer to ICompositeNode interface.
205
+ //!
206
+ virtual pICompositeNode APICALL GetActualICompositeNode() __NOTHROW__ = 0;
207
+ XMP_PRIVATE pcICompositeNode GetActualICompositeNode() const __NOTHROW__ {
208
+ return const_cast< ICompositeNode_v1 * >( this )->GetActualICompositeNode();
209
+ }
210
+ //!
211
+ //! @}
212
+
213
+ //!
214
+ //! @{
215
+ //! @brief Returns the pointer to internal interfaces.
216
+ //! \return Either a const or non const pointer to ICompositeNode_I interface.
217
+ //!
218
+ virtual AdobeXMPCore_Int::pICompositeNode_I APICALL GetICompositeNode_I() __NOTHROW__ = 0;
219
+
220
+ XMP_PRIVATE AdobeXMPCore_Int::pcICompositeNode_I GetICompositeNode_I() const __NOTHROW__ {
221
+ return const_cast< ICompositeNode_v1 * >( this )->GetICompositeNode_I();
222
+ }
223
+ //!
224
+ //! @}
225
+
226
+ //!
227
+ //! @{
228
+ //! @brief Converts raw pointer to shared pointer.
229
+ //! @details The raw pointer is of version 1 interface
230
+ //! where as the returned shared pointer depends on the version client is interested in.
231
+ //! \return Shared pointer to const or non constant interface.
232
+ //!
233
+ XMP_PRIVATE static spICompositeNode MakeShared( pICompositeNode_base ptr );
234
+ XMP_PRIVATE static spcICompositeNode MakeShared( pcICompositeNode_base ptr ) {
235
+ return const_cast< ICompositeNode_v1 * >( ptr )->MakeShared( const_cast<pICompositeNode_base>(ptr) );
236
+ }
237
+ //!
238
+ //! @}
239
+
240
+ //!
241
+ //! @brief Returns the unique ID assigned to the interface.
242
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
243
+ //!
244
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kICompositeNodeID; }
245
+
246
+ //!
247
+ //! @brief Returns the version of the interface.
248
+ //! \return 32 bit unsigned integer representing the version of the interface.
249
+ //!
250
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
251
+ //! \endcond
252
+
253
+ protected:
254
+ //!
255
+ //! Destructor
256
+ //!
257
+ virtual ~ICompositeNode_v1() __NOTHROW__ {}
258
+
259
+ //! \cond XMP_INTERNAL_DOCUMENTATION
260
+ virtual uint32 APICALL getNodeTypeAtPath( pcIPath_base path, pcIError_base & error ) const __NOTHROW__ = 0;
261
+ virtual pINode_base APICALL getNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__ = 0;
262
+ virtual void APICALL appendNode( pINode_base node, pcIError_base & error ) __NOTHROW__ = 0;
263
+ virtual void APICALL insertNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__ = 0;
264
+ virtual pINode_base APICALL replaceNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__ = 0;
265
+ virtual pINode_base APICALL removeNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__ = 0;
266
+ virtual pINodeIterator_base APICALL iterator( pcIError_base & error ) __NOTHROW__ = 0;
267
+
268
+ #ifdef FRIEND_CLASS_DECLARATION
269
+ FRIEND_CLASS_DECLARATION();
270
+ #endif
271
+ REQ_FRIEND_CLASS_DECLARATION();
272
+ //! \endcond
273
+
274
+ };
275
+ }
276
+
277
+ //! \cond XMP_INTERNAL_DOCUMENTATION
278
+
279
+ #if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
280
+
281
+ namespace AdobeXMPCore {
282
+
283
+ #if XMP_WinBuild
284
+ #pragma warning( push )
285
+ #pragma warning( disable : 4250 )
286
+ #endif
287
+
288
+ class ICompositeNodeProxy
289
+ : public virtual ICompositeNode
290
+ , public virtual INodeProxy
291
+ {
292
+ private:
293
+ pICompositeNode mRawPtr;
294
+
295
+ public:
296
+ ICompositeNodeProxy( pICompositeNode ptr );
297
+ ~ICompositeNodeProxy() __NOTHROW__ ;
298
+
299
+ pICompositeNode APICALL GetActualICompositeNode() __NOTHROW__;
300
+ AdobeXMPCore_Int::pICompositeNode_I APICALL GetICompositeNode_I() __NOTHROW__;
301
+
302
+ virtual eNodeType APICALL GetNodeTypeAtPath( const spcIPath & path ) const;
303
+ virtual spINode APICALL GetNodeAtPath( const spcIPath & path );
304
+ virtual void APICALL AppendNode( const spINode & node );
305
+ virtual void APICALL InsertNodeAtPath( const spINode & node, const spcIPath & path );
306
+ virtual spINode APICALL ReplaceNodeAtPath( const spINode & node, const spcIPath & path );
307
+ virtual spINode APICALL RemoveNodeAtPath( const spcIPath & path );
308
+ virtual spINodeIterator APICALL Iterator();
309
+ virtual sizet APICALL ChildCount() const __NOTHROW__;
310
+
311
+ protected:
312
+ virtual uint32 APICALL getNodeTypeAtPath( pcIPath_base path, pcIError_base & error ) const __NOTHROW__;
313
+ virtual pINode_base APICALL getNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__;
314
+ virtual void APICALL appendNode( pINode_base node, pcIError_base & error ) __NOTHROW__;
315
+ virtual void APICALL insertNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__;
316
+ virtual pINode_base APICALL replaceNodeAtPath( pINode_base node, pcIPath_base path, pcIError_base & error ) __NOTHROW__;
317
+ virtual pINode_base APICALL removeNodeAtPath( pcIPath_base path, pcIError_base & error ) __NOTHROW__;
318
+ virtual pINodeIterator_base APICALL iterator( pcIError_base & error ) __NOTHROW__;
319
+
320
+ };
321
+
322
+ #if XMP_WinBuild
323
+ #pragma warning( pop )
324
+ #endif
325
+
326
+ }
327
+
328
+ #endif // BUILDING_XMPCORE_LIB
329
+ //! \endcond
330
+
331
+ #endif // __ICompositeNode_h__
@@ -0,0 +1,107 @@
1
+ #ifndef ICoreConfigurationManager_h__
2
+ #define ICoreConfigurationManager_h__ 1
3
+
4
+ // =================================================================================================
5
+ // Copyright Adobe
6
+ // Copyright 2015 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/IConfigurationManager.h"
15
+
16
+ namespace AdobeXMPCore {
17
+ //!
18
+ //! @brief Version1 of the interface that represents configuration settings controllable by the client.
19
+ //! \details Provides functions through which client can plug in its own memory allocators, error notifiers.
20
+ //! \attention Not Thread Safe as this functionality is generally used at the initialization phase.
21
+ //!
22
+ class XMP_PUBLIC ICoreConfigurationManager_v1
23
+ : public virtual IConfigurationManager_v1
24
+ {
25
+ public:
26
+
27
+ //!
28
+ //! \cond XMP_INTERNAL_DOCUMENTATION
29
+
30
+ //!
31
+ //! @{
32
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
33
+ //! \return Either a const or non const pointer to ICoreConfigurationManager interface.
34
+ //!
35
+ virtual pICoreConfigurationManager APICALL GetActualICoreConfigurationManager() __NOTHROW__ = 0;
36
+ XMP_PRIVATE pcICoreConfigurationManager GetActualICoreConfigurationManager() const __NOTHROW__ {
37
+ return const_cast< ICoreConfigurationManager_v1 * >( this )->GetActualICoreConfigurationManager();
38
+ }
39
+ //!
40
+ //! @}
41
+
42
+ //!
43
+ //! @{
44
+ //! @brief Returns the pointer to internal interfaces.
45
+ //! \return Either a const or non const pointer to ICoreConfigurationManager_I interface.
46
+ //!
47
+ virtual AdobeXMPCore_Int::pICoreConfigurationManager_I APICALL GetICoreConfigurationManager_I() __NOTHROW__ = 0;
48
+
49
+ XMP_PRIVATE AdobeXMPCore_Int::pcICoreConfigurationManager_I GetICoreConfigurationManager_I() const __NOTHROW__ {
50
+ return const_cast< ICoreConfigurationManager_v1 * >( this )->GetICoreConfigurationManager_I();
51
+ }
52
+ //!
53
+ //! @}
54
+
55
+ //!
56
+ //! @{
57
+ //! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
58
+ //! where as the returned shared pointer depends on the version client is interested in.
59
+ //! \return Shared pointer to const or non constant interface.
60
+ //!
61
+ XMP_PRIVATE static spICoreConfigurationManager MakeShared( pICoreConfigurationManager_base ptr );
62
+ XMP_PRIVATE static spcICoreConfigurationManager MakeShared( pcICoreConfigurationManager_base ptr ) {
63
+ return MakeShared( const_cast< pICoreConfigurationManager_base >( ptr ) );
64
+ }
65
+ //!
66
+ //! @}
67
+
68
+ //!
69
+ //! @brief Return the unique ID assigned to the interface.
70
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
71
+ //!
72
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kICoreConfigurationManagerID; }
73
+
74
+ //!
75
+ //! @brief Returns the version of the interface.
76
+ //! \return 32 bit unsigned integer representing the version of the interface.
77
+ //!
78
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
79
+ //! \endcond
80
+
81
+ // static factory functions
82
+
83
+ //!
84
+ //! @brief Get the configuration manager object associated with XMPCore library..
85
+ //! \return A shared pointer to an object of \#ICoreConfigurationManager.
86
+ //!
87
+ XMP_PRIVATE static spICoreConfigurationManager GetCoreConfigurationManager();
88
+
89
+
90
+ protected:
91
+ //!
92
+ //! Destructor
93
+ //!
94
+ virtual ~ICoreConfigurationManager_v1() __NOTHROW__ {}
95
+
96
+ //! \cond XMP_INTERNAL_DOCUMENTATION
97
+
98
+ #ifdef FRIEND_CLASS_DECLARATION
99
+ FRIEND_CLASS_DECLARATION();
100
+ #endif
101
+ REQ_FRIEND_CLASS_DECLARATION();
102
+ //! \endcond
103
+
104
+ };
105
+ }
106
+ #endif // ICoreConfigurationManager_h__
107
+