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,167 @@
1
+ //! @file IConfigurationManager.h
2
+
3
+ #ifndef IConfigurationManager_h__
4
+ #define IConfigurationManager_h__ 1
5
+
6
+ //
7
+ // =================================================================================================
8
+ // Copyright Adobe
9
+ // Copyright 2014 Adobe
10
+ // All Rights Reserved
11
+ //
12
+ // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
13
+ // of the Adobe license agreement accompanying it.
14
+ // =================================================================================================
15
+ //
16
+
17
+ #include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
18
+ #include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
19
+
20
+ #include "XMPCommon/XMPCommonFwdDeclarations.h"
21
+
22
+ namespace AdobeXMPCommon {
23
+
24
+ //!
25
+ //! @class IConfigurationManager_v1
26
+ //! \brief Version1 of the interface that represents configuration settings controllable by the client.
27
+ //! \details Provides functions through which client can plug in its own memory allocators, error notifiers.
28
+ //! \attention Not Thread Safe as this functionality is generally used at the initialization phase.
29
+ //!
30
+ class XMP_PUBLIC IConfigurationManager_v1
31
+ : public virtual ISharedObject
32
+ , public virtual IVersionable
33
+ {
34
+ public:
35
+
36
+ //!
37
+ //! @brief Allows the client to plug in its own memory allocation procedures which will be used to allocate/deallocate memory from the heap.
38
+ //!
39
+ //! \param[in] memoryAllocator A pointer to an object of type AdobeXMPCommon::IMemoryAllocator.
40
+ //! NULL pointer will switch to default allocator built in the library.
41
+ //! \return A value of bool type; true means successful and false otherwise.
42
+ //!
43
+ virtual bool APICALL RegisterMemoryAllocator( pIMemoryAllocator memoryAllocator ) = 0;
44
+
45
+ //!
46
+ //! @brief Allows the client to plug in its own error notification procedures which will be used to
47
+ //! inform client about various warnings and errors.
48
+ //! \param[in] clientErrorNotifier A pointer to an object of type AdobeXMPCommon::IErrorNotifier. NULL
49
+ //! pointer means client no longer wants to be notified of any warnings or errors.
50
+ //! \return a value of bool type; true means successful and false otherwise.
51
+ //!
52
+ virtual bool APICALL RegisterErrorNotifier( pIErrorNotifier_base clientErrorNotifier ) = 0;
53
+
54
+ //!
55
+ //! @brief Allows the client to disable the support for multi threading inside the library.
56
+ //! By default library supports multi-threading.
57
+ //! \return A value of bool type; true means successful and false otherwise.
58
+ //!
59
+ virtual bool APICALL DisableMultiThreading() = 0;
60
+
61
+ //!
62
+ //! @brief Returns whether library supports multi threading or not
63
+ //! \return A value of bool type; true means it supports multi threading and false otherwise.
64
+ //!
65
+ virtual bool APICALL IsMultiThreaded() const = 0;
66
+
67
+ //!
68
+ //! \cond XMP_INTERNAL_DOCUMENTATION
69
+ //! @{
70
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
71
+ //! \return Either a const or non const pointer to IConfigurationManager interface.
72
+ //!
73
+ virtual pIConfigurationManager APICALL GetActualIConfigurationManager() __NOTHROW__ = 0;
74
+ XMP_PRIVATE pcIConfigurationManager GetActualIConfigurationManager() const __NOTHROW__ {
75
+ return const_cast< IConfigurationManager_v1 * >( this )->GetActualIConfigurationManager();
76
+ }
77
+ //!
78
+ //! @}
79
+
80
+ //!
81
+ //! @{
82
+ //! @brief Convert raw pointer to shared pointer.
83
+ //! @detail The raw pointer is of version 1 interface where as the returned shared pointer depends on the version client is interested in.
84
+ //!
85
+ //! \return Shared pointer to const or non constant IConfigurationManager interface.
86
+ //!
87
+ XMP_PRIVATE static spIConfigurationManager MakeShared( pIConfigurationManager_base ptr );
88
+ XMP_PRIVATE static spcIConfigurationManager MakeShared( pcIConfigurationManager_base ptr ) {
89
+ return MakeShared( const_cast< pIConfigurationManager_base >( ptr ) );
90
+ }
91
+ //!
92
+ //! @}
93
+
94
+ //!
95
+ //! @brief Return the unique ID assigned to the interface.
96
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
97
+ //!
98
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIConfigurationManagerID; }
99
+
100
+ //!
101
+ //! @brief Returns the version of the interface.
102
+ //! \return 32 bit unsigned integer representing the version of the interface.
103
+ //!
104
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
105
+ //! \endcond
106
+
107
+ virtual ~IConfigurationManager_v1() __NOTHROW__ {}
108
+
109
+ protected:
110
+
111
+ //! \cond XMP_INTERNAL_DOCUMENTATION
112
+ virtual uint32 APICALL registerMemoryAllocator( pIMemoryAllocator_base memoryAllocator, pcIError_base & error ) __NOTHROW__ = 0;
113
+ virtual uint32 APICALL registerErrorNotifier( pIErrorNotifier_base clientErrorNotifier, pcIError_base & error ) __NOTHROW__ = 0;
114
+ virtual uint32 APICALL disableMultiThreading( pcIError_base & error ) __NOTHROW__ = 0;
115
+ virtual uint32 APICALL isMultiThreaded( pcIError_base & error ) const __NOTHROW__ = 0;
116
+ //! \endcond
117
+
118
+ #ifdef FRIEND_CLASS_DECLARATION
119
+ FRIEND_CLASS_DECLARATION();
120
+ #endif
121
+ REQ_FRIEND_CLASS_DECLARATION();
122
+ //! \endcond
123
+ };
124
+ }
125
+
126
+
127
+ #if !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
128
+
129
+ namespace AdobeXMPCommon {
130
+ class IConfigurationManagerProxy
131
+ : public virtual IConfigurationManager
132
+ {
133
+ private:
134
+ pIConfigurationManager mRawPtr;
135
+
136
+ public:
137
+ IConfigurationManagerProxy( pIConfigurationManager ptr )
138
+ : mRawPtr( ptr )
139
+ {
140
+ mRawPtr->Acquire();
141
+ }
142
+
143
+ ~IConfigurationManagerProxy() __NOTHROW__ { mRawPtr->Release(); }
144
+ pIConfigurationManager APICALL GetActualIConfigurationManager() __NOTHROW__ { return mRawPtr; }
145
+ AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ { return mRawPtr->GetISharedObject_I(); }
146
+
147
+ void APICALL Acquire() const __NOTHROW__;
148
+ void APICALL Release() const __NOTHROW__;
149
+ pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion );
150
+ virtual bool APICALL RegisterMemoryAllocator( pIMemoryAllocator memoryAllocator );
151
+ virtual bool APICALL RegisterErrorNotifier( pIErrorNotifier_base clientErrorNotifier );
152
+ virtual bool APICALL DisableMultiThreading();
153
+ virtual bool APICALL IsMultiThreaded() const;
154
+
155
+ protected:
156
+ virtual uint32 APICALL registerMemoryAllocator( pIMemoryAllocator_base memoryAllocator, pcIError_base & error ) __NOTHROW__;
157
+ virtual uint32 APICALL registerErrorNotifier( pIErrorNotifier_base clientErrorNotifier, pcIError_base & error ) __NOTHROW__;
158
+ virtual uint32 APICALL disableMultiThreading( pcIError_base & error ) __NOTHROW__;
159
+ virtual uint32 APICALL isMultiThreaded( pcIError_base & error ) const __NOTHROW__;
160
+ pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__;
161
+ };
162
+
163
+ }
164
+
165
+ #endif // BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_LIB
166
+
167
+ #endif // IConfigurationManager_h__
@@ -0,0 +1,377 @@
1
+ //! @file IError.h
2
+ #ifndef __IError_h__
3
+ #define __IError_h__ 1
4
+
5
+ // =================================================================================================
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 "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
14
+ #include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
15
+
16
+ #include "XMPCommon/XMPCommonFwdDeclarations.h"
17
+
18
+ namespace AdobeXMPCommon {
19
+
20
+ //!
21
+ //! @brief Version1 of the interface that represents an error/warning encountered during processing.
22
+ //! \details Provides all the functions to get required information regarding error scenario.
23
+ //! \attention Do Not support Multi-threading at object level.
24
+ //! \attention Multi-threading not required since clients will only be provided const objects.
25
+ //!
26
+ class XMP_PUBLIC IError_v1
27
+ : public virtual ISharedObject
28
+ , public virtual IVersionable
29
+ {
30
+ public:
31
+ //!
32
+ //! @brief Indicates various types of errors.
33
+ //!
34
+ typedef enum {
35
+ //! No severity, not to be used.
36
+ kESNone = 0,
37
+
38
+ //! Recovery is possible, client can choose to ignore and let library continue with the best possible way.
39
+ kESWarning = 1 << 0,
40
+
41
+ //! Recovery is not possible, an exception of type pcIError_base will be thrown aborting the API call.
42
+ kESOperationFatal = 1 << 1,
43
+
44
+ //! Recovery is not possible, an exception of type pcIError_base will be thrown, client should abort the process.
45
+ kESProcessFatal = 1 << 2,
46
+
47
+ // Add new severities here
48
+
49
+ //! Maximum value this enum can hold, should be treated as invalid value.
50
+ kESMaxValue = 1 << 31,
51
+
52
+ //! Union of all severities
53
+ kESAll = kAllBits,
54
+ } eErrorSeverity;
55
+
56
+
57
+ //!
58
+ //! @brief Indicates various types of error domains.
59
+ //!
60
+ typedef enum {
61
+ //! No Domain
62
+ kEDNone = 0,
63
+
64
+ //! Indicates error related to general conditions.
65
+ kEDGeneral = 1,
66
+
67
+ //! Indicates error related to memory allocation-deallocation conditions.
68
+ kEDMemoryManagement = 2,
69
+
70
+ //! Indicates error related to configurable APIs.
71
+ kEDConfigurable = 3,
72
+
73
+ //! Indicates error releated to multithreading.
74
+ kEDMultiThreading = 4,
75
+
76
+ //! Indicates error related to XMP Data Model Management.
77
+ kEDDataModel = 100,
78
+
79
+ //! Indicates error related to XMP Parsing.
80
+ kEDParser = 101,
81
+
82
+ //! Indicates error related to XMP Serializing.
83
+ kEDSerializer = 102,
84
+
85
+
86
+ //! Indicates error related to dealing with XMP in various file formats.
87
+ kEDXMPFiles = 200,
88
+
89
+
90
+ //! Indicates error related to Conflict Identification.
91
+ kEDConflictIdentification = 400,
92
+
93
+ //! Indicates error related to Conflict Resolution.
94
+ kEDConflictResolution = 500,
95
+
96
+ //! Indicates error related to 3 Way Merge.
97
+ kEDThreeWayMerge = 600,
98
+
99
+ //! Indicates error related to Generic Strategy Database
100
+ kEDGenericStrategyDatabase = 601,
101
+
102
+ //! Indicates error related to Asset Management.
103
+ kEDAssetManagement = 10000,
104
+
105
+ //! Maximum value this enum can hold, should be treated as invalid value.
106
+ kEDMaxValue = kMaxEnumValue
107
+ } eErrorDomain;
108
+
109
+ typedef uint32 eErrorCode;
110
+
111
+ //!
112
+ //! @brief Get the error code.
113
+ //! \return An object of type #eErrorCode indicating the error code.
114
+ //!
115
+ virtual eErrorCode APICALL GetCode() const = 0;
116
+
117
+ //!
118
+ //! @brief Get the error domain.
119
+ //! \return An object of type #eErrorDomain indicating the error domain.
120
+ //!
121
+ virtual eErrorDomain APICALL GetDomain() const = 0;
122
+
123
+ //!
124
+ //! @brief Get the error severity.
125
+ //! \return An object of type #eErrorSeverity indicating the severity of error.
126
+ //!
127
+ virtual eErrorSeverity APICALL GetSeverity() const = 0;
128
+
129
+ //!
130
+ //! @brief Get the error message.
131
+ //! \details Error message contains a descriptive string, for debugging use only. It must not be shown to users
132
+ //! in a final product. It is written for developers, not users, and never localized.
133
+ //! \return A shared pointer to const AdobeXMPCommon::IUTF8String object containing message string.
134
+ //!
135
+ virtual spcIUTF8String APICALL GetMessage() const = 0;
136
+
137
+ //!
138
+ //! @brief Get the location of the error origin.
139
+ //! \return A shared pointer to const AdobeXMPCommon::IUTF8String object containing location as like file name
140
+ //! and line number.
141
+ //! \note For debugging use only.
142
+ //!
143
+ virtual spcIUTF8String APICALL GetLocation() const = 0;
144
+
145
+ //!
146
+ //! @brief Get the value of a parameter at a particular index.
147
+ //! \details Based on each error condition various parameters are stored along with the error object. Clients can
148
+ //! one by one get access to each parameter that can be later used for debugging.
149
+ //! \param[in] index A value of \#AdobeXMPCommon::sizet indicating the index of the parameter client is
150
+ //! interested in retrieving.
151
+ //! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String object containing some string.
152
+ //! \attention Throws \#AdobeXMPCommon::pcIError_base in case index is out of bounds.
153
+ //! \note For debugging use only.
154
+ //!
155
+ virtual spcIUTF8String APICALL GetParameter( sizet index ) const = 0;
156
+
157
+ //!
158
+ //! @brief Get the count of parameters.
159
+ //! \return An object of type \#AdobeXMPCommon::sizet containing the count of paramaters associated with the error object.
160
+ //!
161
+ virtual sizet APICALL GetParametersCount() const __NOTHROW__ = 0;
162
+
163
+ //!
164
+ //! @{
165
+ //! @brief Get the next error in the chain.
166
+ //! \return A pointer to const/non-const \#AdobeXMPCommon::IError object which is the next error in the chain.
167
+ //! \note Return an invalid shared pointer in case it is the last error object in the chain.
168
+ //!
169
+ virtual spIError APICALL GetNextError() = 0;
170
+
171
+ XMP_PRIVATE spcIError GetNextError() const {
172
+ return const_cast< IError_v1 * >( this )->GetNextError();
173
+ }
174
+ //! @}
175
+
176
+ //!
177
+ //! @brief Set the next error in the chain.
178
+ //! \param[in] error A pointer to \#AdobeXMP::IError object which will be the next error in the chain.
179
+ //! \return A pointer to \#AdobeXMPCommon::IError object which is the current next error in the chain.
180
+ //! \note Return an invalid pointer in case there is no current next error in the chain.
181
+ //!
182
+ virtual spIError APICALL SetNextError( const spIError & error ) = 0;
183
+
184
+ //!
185
+ //! @brief Set the error message.
186
+ //! \param[in] message Pointer to a constant char buffer containing message. It can be null terminated or not.
187
+ //! NULL pointer will be treated as empty message string.
188
+ //! \param[in] len A value of \#AdobeXMPCommon::sizet indicating the length in case message is not null
189
+ //! terminated. In case message is null terminated it can be set to its default value ( npos ).
190
+ //!
191
+ virtual void APICALL SetMessage( const char * message, sizet len = npos ) __NOTHROW__ = 0;
192
+
193
+ //!
194
+ //! @brief Set the location of origin of error.
195
+ //! \param[in] fileName Pointer to a null terminated char buffer containing the file name from which the error
196
+ //! originated. NULL pointer will be treated as empty fileName.
197
+ //! \param[in] lineNumber A value of \#AdobeXMPCommon::sizet indicating the line in source file from which the error
198
+ //! originated.
199
+ //!
200
+ virtual void APICALL SetLocation( const char * fileName, sizet lineNumber ) __NOTHROW__ = 0;
201
+
202
+ //!
203
+ //! @brief Appends a parameter to the list of parameters.
204
+ //! \param[in] parameter Pointer to a constant char buffer containing parameter. It can be null terminated or not.
205
+ //! NULL pointer will be treated as empty message string.
206
+ //! \param[in] len A value of AdobeXMPCommon::sizet indicating the length in case parameter is not null
207
+ //! terminated. In case parameter is null terminated it can be set to its default value ( npos ).
208
+ //!
209
+ virtual void APICALL AppendParameter( const char * parameter, sizet len = npos ) __NOTHROW__ = 0;
210
+
211
+ //!
212
+ //! @brief Appends an address as a string to the list of parameters.
213
+ //! \param[in] addressParameter A value of void * type containing the address of the location to be used as parameter.
214
+ //!
215
+ virtual void APICALL AppendParameter( void * addressParameter ) __NOTHROW__ = 0;
216
+
217
+ //!
218
+ //! @brief Appends a 32 bit unsigned integer value as a string to the list of parameters.
219
+ //! \param[in] integerValue A value of AdobeXMPCommon::uint32 type containing the integral value to be used as parameter.
220
+ //!
221
+ virtual void APICALL AppendParameter( const uint32 & integerValue ) __NOTHROW__ = 0;
222
+
223
+ //!
224
+ //! @brief Appends a 64 bit unsigned integer value as a string to the list of parameters.
225
+ //! \param[in] integerValue A value of AdobeXMPCommon::uint64 type containing the integral value to be used as parameter.
226
+ //!
227
+ virtual void APICALL AppendParameter( const uint64 & integerValue ) __NOTHROW__ = 0;
228
+
229
+ //!
230
+ //! @brief Appends a 32 bit integer value as a string to the list of parameters.
231
+ //! \param[in] integerValue A value of AdobeXMPCommon::int32 type containing the integral value to be used as parameter.
232
+ //!
233
+ virtual void APICALL AppendParameter( const int32 & integerValue ) __NOTHROW__ = 0;
234
+
235
+ //!
236
+ //! @brief Appends a 64 bit integer value as a string to the list of parameters.
237
+ //! \param[in] integerValue A value of AdobeXMPCommon::uint64 type containing the integral value to be used as parameter.
238
+ //!
239
+ virtual void APICALL AppendParameter( const int64 & integerValue ) __NOTHROW__ = 0;
240
+
241
+ //!
242
+ //! @brief Appends a floating value as a string to the list of parameters.
243
+ //! \param[in] floatValue A value of float type containing the floating value to be used as parameter.
244
+ //!
245
+ virtual void APICALL AppendParameter( const float & floatValue ) __NOTHROW__ = 0;
246
+
247
+ //!
248
+ //! @brief Appends a double floating value as a string to the list of parameters.
249
+ //! \param[in] doubleValue A value of double type containing the floating value to be used as parameter.
250
+ //!
251
+ virtual void APICALL AppendParameter( const double & doubleValue ) __NOTHROW__ = 0;
252
+
253
+ //!
254
+ //! @brief Appends a boolean value as a string to the list of parameters.
255
+ //! \param[in] booleanValue A value of bool type containing the boolean value to be used as parameter.
256
+ //!
257
+ virtual void APICALL AppendParameter( bool booleanValue ) __NOTHROW__ = 0;
258
+
259
+ //!
260
+ //! @brief Creates an error object.
261
+ //! \param[in] objFactory A pointer to IObjectFactory object.
262
+ //! \param[in] errDomain A value of #eErrorDomain indicating the error domain.
263
+ //! \param[in] errCode A value of #eErrorCode indicating the error code.
264
+ //! \param[in] errSeverity A value of #eErrorSeverity indicating the severity of the error.
265
+ //! \return A shared pointer to an object of IError_v1.
266
+ //!
267
+ static spIError CreateError( pIObjectFactory objFactory, eErrorDomain errDomain,
268
+ eErrorCode errCode, eErrorSeverity errSeverity );
269
+
270
+ //!
271
+ //! \cond XMP_INTERNAL_DOCUMENTATION
272
+ //! @{
273
+ //! @brief Return the actual raw pointer from the pointer available to client, which can be of a proxy class.
274
+ //! \return Either a const or non const pointer to IError interface.
275
+ //!
276
+ virtual pIError APICALL GetActualIError() __NOTHROW__ = 0;
277
+ XMP_PRIVATE pcIError GetActualIError() const __NOTHROW__ {
278
+ return const_cast< IError_v1 * >( this )->GetActualIError();
279
+ }
280
+ //!
281
+ //! @}
282
+
283
+ //!
284
+ //! @{
285
+ //! @brief Convert raw pointer to shared pointer.
286
+ //! @details The raw pointer is of version 1 interface where as the returned shared pointer depends on the version client who is interested in.
287
+ //!
288
+ //! \return Shared pointer to const or non constant IError interface.
289
+ //!
290
+ XMP_PRIVATE static spIError MakeShared( pIError_base ptr );
291
+ XMP_PRIVATE static spcIError MakeShared( pcIError_base ptr ) {
292
+ return MakeShared( const_cast< pIError_base >( ptr ) );
293
+ }
294
+ //!
295
+ //! @}
296
+
297
+ //!
298
+ //! @brief Returns the unique ID assigned to the interface.
299
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
300
+ //!
301
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIErrorID; }
302
+
303
+ //!
304
+ //! @brief Returns the version of the interface.
305
+ //! \return 32 bit unsigned integer representing the version of the interface.
306
+ //!
307
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
308
+ //! \endcond
309
+
310
+ protected:
311
+ //!
312
+ //! Destructor
313
+ //!
314
+ virtual ~IError_v1() __NOTHROW__ {}
315
+
316
+ //! \cond XMP_INTERNAL_DOCUMENTATION
317
+ virtual uint32 APICALL getCode( pcIError_base & error ) const __NOTHROW__ = 0;
318
+ virtual uint32 APICALL getDomain( pcIError_base & error ) const __NOTHROW__ = 0;
319
+ virtual uint32 APICALL getSeverity( pcIError_base & error ) const __NOTHROW__ = 0;
320
+ virtual pcIUTF8String_base APICALL getMessage( pcIError_base & error ) const __NOTHROW__ = 0;
321
+ virtual pcIUTF8String_base APICALL getLocation( pcIError_base & error ) const __NOTHROW__ = 0;
322
+ virtual pcIUTF8String_base APICALL getParameter( sizet index, pcIError_base & error ) const __NOTHROW__ = 0;
323
+ virtual pIError_base APICALL getNextError( pcIError_base & error ) __NOTHROW__ = 0;
324
+ virtual pIError_base APICALL setNextError( pIError_base nextError, pcIError_base & error ) __NOTHROW__ = 0;
325
+
326
+ #ifdef FRIEND_CLASS_DECLARATION
327
+ FRIEND_CLASS_DECLARATION();
328
+ #endif
329
+ REQ_FRIEND_CLASS_DECLARATION();
330
+ //! \endcond
331
+ };
332
+
333
+ //!
334
+ //! @brief A function pointer to report back errors and warnings to the library encountered during the serialization operation.
335
+ //! @details Based on the error condition library can return 0 or non zero to indicate that a particular warning can be ignored
336
+ //! and operation can continue.
337
+ //! \param[in] errorDomain An unsigned 32 bit integer indicating the domain of the error.
338
+ //! \param[in] errorCode An unsigned 32 bit integer indicating the code of the error.
339
+ //! \param[in] errorSeverity An unsigned 32 bit integer indicating the severity of the error.
340
+ //! \param[out] error A reference to a pointer to const IError object which will be filled with the error object in case of any error.
341
+ //! \return non zero value indicating that process can continue ignoring the warning, otherwise return 0 to indicate it should stop immediately.
342
+ //!
343
+ typedef uint32( *ReportErrorAndContinueABISafeProc )( uint32 errorDomain, uint32 errorCode, uint32 errorSeverity, const char * message, pcIError_base & error );
344
+
345
+ //!
346
+ //! @brief A Function object used by the client to report back and warnings to the library encountered during the serialization operation.
347
+ //! @details Based on the error condition library can return 0 or non zero to indicate that a particular warning can be ignored
348
+ //! and operation can continue.
349
+ //!
350
+ class ReportErrorAndContinueFunctor {
351
+ public:
352
+ ReportErrorAndContinueFunctor( ReportErrorAndContinueABISafeProc safeProc )
353
+ : mSafeProc( safeProc ) {}
354
+
355
+ //!
356
+ //! \param[in] errorDomain A value of \#IError_v1::eErrorDomain indicating the domain of the error.
357
+ //! \param[in] errorCode A value of \#IError_v1::eErrorCode indicating the code of the error.
358
+ //! \param[in] errorSeverity A value of \#IError_v1::eErrorSeverity indicating the severity of the error.
359
+ //! \param[in] message Pointer to a constant char buffer containing message.
360
+ //! \return true value indicating that process can continue ignoring the warning, otherwise return false to indicate it should stop immediately.
361
+ //!
362
+ bool operator()( IError_v1::eErrorDomain errorDomain, IError_v1::eErrorCode errorCode, IError_v1::eErrorSeverity errorSeverity, const char * message ) {
363
+ pcIError_base error( NULL );
364
+ auto retValue = mSafeProc( static_cast< uint32 >( errorDomain ), static_cast< uint32 >( errorCode ), static_cast< uint32 >( errorSeverity ), message, error );
365
+ if ( error )
366
+ throw IError_v1::MakeShared( error );
367
+ return retValue != 0 ? true : false;
368
+ }
369
+
370
+ protected:
371
+ ReportErrorAndContinueABISafeProc mSafeProc;
372
+ };
373
+
374
+
375
+ }
376
+
377
+ #endif // __IError_h__
@@ -0,0 +1,52 @@
1
+ #ifndef IErrorNotifier_h__
2
+ #define IErrorNotifier_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 "XMPCommon/XMPCommonFwdDeclarations.h"
14
+
15
+ namespace AdobeXMPCommon {
16
+
17
+ //!
18
+ //! \brief Version1 of the interface that represents an interface to be implemented by client
19
+ //! in case he is interested in getting notifications with respect to errors/warnings encountered
20
+ //! by library.
21
+ //! \details In case client is interested in error notifications he can implement this interface
22
+ //! and register the same with the \#AdobeXMPCommon::IConfigurationManager. For every warning or error
23
+ //! encountered the NotifyError function will be called by the library. In case of warnings ( indicated
24
+ //! by the severity of the error ) the client has the option to continue ignoring the warning by returning
25
+ //! true else he can return false and the warning will be thrown aborting the current operation.
26
+ //!
27
+ class XMP_PUBLIC IErrorNotifier_v1
28
+ {
29
+ public:
30
+ //!
31
+ //! @brief Called by the library to notify the client about the warning/error.
32
+ //! \param[in] error const pointer to a \#AdobeXMPCommon::IError. Client can use the information
33
+ //! in the error to decide what should be the future course of action.
34
+ //! \return A value of bool type that will indicate the future course of action.
35
+ //!
36
+ virtual bool APICALL Notify( const spcIError & error ) = 0;
37
+ virtual ~IErrorNotifier_v1() {}
38
+
39
+ protected:
40
+ //! \cond XMP_INTERNAL_DOCUMENTATION
41
+ virtual uint32 APICALL notify( pcIError_base error, uint32 & exceptionThrown ) __NOTHROW__;
42
+ //! \endcond
43
+
44
+ #ifdef FRIEND_CLASS_DECLARATION
45
+ FRIEND_CLASS_DECLARATION();
46
+ #endif
47
+ REQ_FRIEND_CLASS_DECLARATION();
48
+ //! \endcond
49
+ };
50
+ }
51
+
52
+ #endif // IErrorNotifier_h__
@@ -0,0 +1,65 @@
1
+ #ifndef IMemoryAllocator_h__
2
+ #define IMemoryAllocator_h__ 1
3
+
4
+ // =================================================================================================
5
+ // Copyright 2014 Adobe
6
+ // All Rights Reserved.
7
+ //
8
+ // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
9
+ // of the Adobe license agreement accompanying it.
10
+ // =================================================================================================
11
+
12
+ #include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
13
+
14
+ #include "XMPCommon/XMPCommonFwdDeclarations.h"
15
+
16
+ namespace AdobeXMPCommon {
17
+
18
+ //!
19
+ //! \brief Version1 of the interface that represents an interface to be implemented by client in case
20
+ //! he is interested in controlling the memory allocation and deallocation on the heap.
21
+ //! \details In case client is interested in controlling the memory allocation and deallocation on
22
+ //! the heap he can implement this interface and register the same with the
23
+ //! \#AdobeXMPCommon::IConfigurationManager. For every request of memory allocation or deallocation on
24
+ //! the heap corresponding function will be called by the library.
25
+ //! \attention Support for Multi threading is under clients hand.
26
+ //!
27
+ class XMP_PUBLIC IMemoryAllocator_v1
28
+ {
29
+ public:
30
+ //!
31
+ //! @brief Called by the library whenever it needs some space on the heap.
32
+ //! \param[in] size A value of type \#AdobeXMPCommon::sizet indicating the number of bytes
33
+ //! required by the library on the heap.
34
+ //! \return A pointer to memory location on the heap.
35
+ //!
36
+ virtual void * APICALL allocate( sizet size ) __NOTHROW__ = 0;
37
+
38
+ //!
39
+ //! @brief Called by the library whenever there is no further need for a previously allocated space on the heap.
40
+ //! \param[in] ptr A pointer to a memory location which is no longer needed.
41
+ //!
42
+ virtual void APICALL deallocate( void * ptr ) __NOTHROW__ = 0;
43
+
44
+ //!
45
+ //! @brief Called by the library whenever it needs to expand or contract some space already allocated on
46
+ //! the heap, preserving the contents.
47
+ //! \param[in] ptr A pointer to a memory location which was previously allocated on the heap.
48
+ //! \param[in] size A value of type \#AdobeXMPCommon::sizet indicating the new number of bytes
49
+ //! required by the library on the heap.
50
+ //! \return A pointer to memory location on the heap which is of new size and previous contents are
51
+ //! preserved.
52
+ //!
53
+ virtual void * APICALL reallocate( void * ptr, sizet size ) __NOTHROW__ = 0;
54
+ virtual ~IMemoryAllocator_v1(){}
55
+
56
+ protected:
57
+
58
+ #ifdef FRIEND_CLASS_DECLARATION
59
+ FRIEND_CLASS_DECLARATION();
60
+ #endif
61
+ REQ_FRIEND_CLASS_DECLARATION();
62
+ };
63
+ };
64
+
65
+ #endif // IMemoryAllocator_h__