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,90 @@
1
+ #ifndef IObjectFactory_h__
2
+ #define IObjectFactory_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 "XMPCommon/XMPCommonFwdDeclarations.h"
14
+ #include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
15
+
16
+ namespace AdobeXMPCommon {
17
+
18
+ //!
19
+ //! \brief Version1 of a interface that represents a factory to create various artifacts defined within
20
+ //! AdobeXMPCommon namespace.
21
+ //! @details Provides all the functions to create instances of various artifacts defined with AdobeXMPCommon namespace. This
22
+ //! is the interface through which clients of the library actually get access to all other interfaces.
23
+ //!
24
+
25
+ class XMP_PUBLIC IObjectFactory_v1
26
+ : public IVersionable
27
+ {
28
+ public:
29
+
30
+ //!
31
+ //! @brief Creates an IUTF8String object.
32
+ //! \param[in] buf pointer to a constant char buffer containing content. It can be null
33
+ //! terminated or not. NULL pointer will be treated as empty string.
34
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length in case buf is not null
35
+ //! terminated. In case buf is null terminated it can be set to npos.
36
+ //! \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.
37
+ //! \attention The returned pointer is allocated on heap by the module so client is responsible for its release.
38
+ //! They should call Release once they no longer need this object.
39
+ //!
40
+ virtual pIUTF8String_base APICALL CreateUTF8String( const char * buf, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
41
+
42
+ //!
43
+ //! @brief Creates an IError object.
44
+ //! \param[in] domain An unsigned 32 bit integer value representing the error domain.
45
+ //! \param[in] code An unsigned 32 bit integer value representing the error code.
46
+ //! \param[in] severity An unsigned 32 bit integer value representing the severity of the error.
47
+ //! \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.
48
+ //! \attention The returned pointer is allocated on heap by the module so client is responsible for its release.
49
+ //! They should call Release once they no longer need this object.
50
+ //!
51
+ virtual pIError_base APICALL CreateError( uint32 domain, uint32 code, uint32 severity, pcIError_base & error ) __NOTHROW__ = 0;
52
+
53
+ //!
54
+ //! @{
55
+ //! @details Convert raw pointer to shared pointer. The raw pointer is of version 1 interface
56
+ //! where as the returned returned pointer depends on the version client is interested in.
57
+ //! \return Raw pointer to const or non constant IObjectFactory interface.
58
+ //!
59
+ XMP_PRIVATE static pIObjectFactory MakeObjectFactory( pIObjectFactory_base ptr ) {
60
+ return IObjectFactory::GetInterfaceVersion() > 1 ? ptr->GetInterfacePointer< IObjectFactory >() : ptr;
61
+ }
62
+ XMP_PRIVATE static pcIObjectFactory MakeObjectFactory( pcIObjectFactory_base ptr ) {
63
+ return MakeObjectFactory( const_cast< pIObjectFactory_base >( ptr ) );
64
+ }
65
+ //!
66
+ //! @}
67
+
68
+ //!
69
+ //! @brief Returns 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 kIObjectFactoryID; }
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
+
80
+ virtual ~IObjectFactory_v1() __NOTHROW__ {};
81
+
82
+ #ifdef FRIEND_CLASS_DECLARATION
83
+ FRIEND_CLASS_DECLARATION();
84
+ #endif
85
+ REQ_FRIEND_CLASS_DECLARATION();
86
+ };
87
+
88
+ }
89
+
90
+ #endif // IObjectFactory_h__
@@ -0,0 +1,504 @@
1
+ #ifndef __IUTF8String_h__
2
+ #define __IUTF8String_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/ISharedObject.h"
13
+ #include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
14
+
15
+ namespace AdobeXMPCommon {
16
+ using AdobeXMPCommon::npos;
17
+
18
+ //!
19
+ //! @brief Version1 of the interface that represents an UTF8String.
20
+ //! @details Provides all the functions to access properties of the string object, appends or assigns content
21
+ //! to the existing string objects and clones existing string objects.
22
+ //!
23
+ class XMP_PUBLIC IUTF8String_v1
24
+ : public virtual ISharedObject
25
+ , public virtual IVersionable
26
+ {
27
+ public:
28
+ //!
29
+ //! @brief Appends more content into the existing string object through a pointer to char buffer.
30
+ //! \param[in] buf pointer to a constant char buffer containing new content. It can be null
31
+ //! terminated or not. NULL pointer will be treated as empty string.
32
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length in case buf is not null
33
+ //! terminated. In case buf is null terminated it can be set to npos.
34
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
35
+ //!
36
+ virtual spIUTF8String APICALL append( const char * buf, sizet count ) = 0;
37
+
38
+ //!
39
+ //! @brief Appends the contents of another string into the existing string.
40
+ //! \param[in] src Shared pointer to const \#AdobeXMPCommon::IUTF8String whose contents will be
41
+ //! appended to existing content in the object. Invalid shared pointer will be treated as empty string.
42
+ //! \param[in] srcPos A value of \#AdobeXMPCommon::sizet indicating the position of the first character
43
+ //! in src that is inserted into the object as a substring.
44
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length of the substring to be copied
45
+ //! (if the string is shorter, as many characters as possible are copied). A value of npos indicates all
46
+ //! characters until the end of src.
47
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
48
+ //! \attention Error is thrown in case
49
+ //! - srcPos is greater than length of src.
50
+ //!
51
+ virtual spIUTF8String APICALL append( const spcIUTF8String & src, sizet srcPos = 0, sizet count = npos ) = 0;
52
+
53
+ //!
54
+ //! @brief Overwrites new string content into the existing string object through a pointer to char buffer.
55
+ //! \param[in] buf pointer to a constant char buffer containing new content. It can be null
56
+ //! terminated or not. NULL pointer will be treated as empty string.
57
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length in case buf is not null
58
+ //! terminated. In case buf is null terminated it can be set to npos.
59
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
60
+ //!
61
+ virtual spIUTF8String APICALL assign( const char * buf, sizet count ) = 0;
62
+
63
+ //!
64
+ //! @brief Overwrites the contents with contents of another string.
65
+ //! \param[in] src shared pointer to const \#AdobeXMPCommon::IUTF8String whose contents will
66
+ //! overwrite existing content in the object. Invalid shared pointer will be treated as empty string.
67
+ //! \param[in] srcPos A value of \#AdobeXMPCommon::sizet indicating the position of the first character
68
+ //! in src that is inserted into the object as a substring.
69
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length of the substring to be copied.
70
+ //! A value of npos indicates all characters until the end of src. If this is greater than the available
71
+ //! characters in the substring then copying is limited to the number of available characters.
72
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
73
+ //! \attention Error is thrown in case
74
+ //! - srcPos is greater than length of src.
75
+ //!
76
+ virtual spIUTF8String APICALL assign( const spcIUTF8String & src, sizet srcPos = 0, sizet count = npos ) = 0;
77
+
78
+ //!
79
+ //! @brief Inserts additional characters into the string right before the character indicated by pos.
80
+ //! \param[in] pos Insertion point: The new contents are inserted before the character at position pos.
81
+ //! \param[in] buf pointer to a constant char buffer containing new content. It can be null
82
+ //! terminated or not. NULL pointer will be treated as empty string.
83
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length in case buf is not null
84
+ //! terminated. In case buf is null terminated it can be set to npos.
85
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
86
+ //! \\attention Error is thrown in case
87
+ //! - pos is greater than the object's length.
88
+ //!
89
+ virtual spIUTF8String APICALL insert( sizet pos, const char * buf, sizet count ) = 0;
90
+
91
+ //!
92
+ //! @brief Inserts additional characters into the string right before the character indicated by pos.
93
+ //! \param[in] pos Insertion point: The new contents are inserted before the character at position pos.
94
+ //! \param[in] src shared pointer to const \#AdobeXMPCommon::IUTF8String whose contents will
95
+ //! be copied and pushed into the object. Invalid shared pointer will be treated as empty string.
96
+ //! \param[in] srcPos A value of \#AdobeXMPCommon::sizet indicating the position of the first character
97
+ //! in src that is inserted into the object as a substring.
98
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length of the substring to be copied
99
+ //! (if the string is shorter, as many characters as possible are copied). A value of npos indicates all
100
+ //! characters until the end of src. If this is greater than the available characters in the substring
101
+ //! then copying is limited to the number of available characters.
102
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
103
+ //! \attention Error is thrown in case
104
+ //! - srcPos is greater than length of src.
105
+ //! - pos is greater than the object's length.
106
+ //!
107
+ virtual spIUTF8String APICALL insert( sizet pos, const spcIUTF8String & src, sizet srcPos = 0, sizet count = npos ) = 0;
108
+
109
+ //!
110
+ //! @brief Erases part of the string, reducing its length.
111
+ //! \param[in] pos Position of the first character to be erased.
112
+ //! If this is greater than the string length, nothing is erased.
113
+ //! \param[in] count Number of characters to erase (if the string is shorter, as many characters as
114
+ //! possible are erased). A value of npos indicates all characters until the end of the string.
115
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
116
+ //! \attention Error is thrown in case
117
+ //! - pos is greater than the object's length.
118
+ //!
119
+ virtual spIUTF8String APICALL erase( sizet pos = 0, sizet count = npos ) = 0;
120
+
121
+ //!
122
+ //! @brief Resizes the string to the length of n characters.
123
+ //! /param[in] n New string length, expressed in number of characters.
124
+ //! \note If n is smaller than the current string length, the current value is shortened
125
+ //! to its first size character, removing the characters beyond the nth. If n is greater than the
126
+ //! current string length, the current content is extended by inserting at the end as many NULL
127
+ //! characters as needed to reach a size of n.
128
+ //! \attention Error is thrown in case
129
+ //! - n is greater than max_size
130
+ //! - allocation fails
131
+ //!
132
+ virtual void APICALL resize( sizet n ) = 0 ;
133
+
134
+ //!
135
+ //! @brief Replace portion of string.
136
+ //! \param[in] pos Position of the first character to be replaced.
137
+ //! \param[in] count Number of characters to replace (if the string is shorter, as many characters as possible
138
+ //! are replaced). A value of npos indicates all characters until the end of the string.
139
+ //! \param[in] buf pointer to a constant char buffer containing new content. It can be null
140
+ //! terminated or not. NULL pointer will be treated as empty string.
141
+ //! \param[in] srcCount A value of \#AdobeXMPCommon::sizet indicating the length in case buf is not null
142
+ //! terminated. In case buf is null terminated it can be set to npos.
143
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
144
+ //! \attention Error is thrown in case
145
+ //! - pos is greater than the object's length.
146
+ //!
147
+ virtual spIUTF8String APICALL replace( sizet pos, sizet count, const char * buf, sizet srcCount ) = 0;
148
+
149
+ //!
150
+ //! @brief Replace portion of string.
151
+ //! \param[in] pos Position of the first character to be replaced.
152
+ //! \param[in] count Number of characters to replace (if the string is shorter, as many characters as possible
153
+ //! are replaced). A value of npos indicates all characters until the end of the string.
154
+ //! \param[in] src Shared pointer to const \#AdobeXMPCommon::IUTF8String whose contents will
155
+ //! be copied and pushed into the object. Invalid shared pointer will be treated as empty string.
156
+ //! \param[in] srcPos Position of the first character in str that is copied to the object as replacement.
157
+ //! \param[in] srcCount Length of the substring to be copied (if the string is shorter, as many characters
158
+ //! as possible are copied). A value of npos indicates all characters until the end of str.
159
+ //! \return The shared pointer to itself of type \#AdobeXMPCommon::IUTF8String.
160
+ //! \attention Error is thrown in case
161
+ //! - srcPos is greater than length of src.
162
+ //! - pos is greater than the object's length.
163
+ //!
164
+ virtual spIUTF8String APICALL replace( sizet pos, sizet count, const spcIUTF8String & src, sizet srcPos = 0, sizet srcCount = npos ) = 0;
165
+
166
+ //!
167
+ //! @brief Copy sequence of characters from string.
168
+ //! @details Copies a substring of the current value of the string object into the array. This substring
169
+ //! contains the len characters that start at position pos.
170
+ //! \param[in,out] buf Pointer to an array of characters. The array shall contain enough storage for the copied
171
+ //! characters.
172
+ //! \param[in] len Number of characters to copy (if the string is shorter, as many characters as possible are
173
+ //! copied).
174
+ //! \param[in] pos Position of the first character to be copied.
175
+ //! \return The number of characters copied to the array. This may be equal to count or to size() - pos.
176
+ //! \note The function does not append a null character at the end of the copied content.
177
+ //! \attention Error is thrown in case
178
+ //! - pos is greater than the object's length.
179
+ //!
180
+ virtual sizet APICALL copy( char * buf, sizet len, sizet pos = 0 ) const = 0;
181
+
182
+ //!
183
+ //! @brief Find content in string.
184
+ //! @details Searches the string for the first occurrence of the sequence specified by its arguments. When pos
185
+ //! is specified, the search only includes characters at or after position pos, ignoring any possible
186
+ //! occurrences that include characters before pos.
187
+ //! \param[in] buf pointer to a constant char buffer containing content to be matched. It can be null
188
+ //! terminated or not. NULL pointer will be treated as empty string.
189
+ //! \param[in] pos Position of the first character in the string to be considered in the search.
190
+ //! If this is greater than the string length, the function never finds matches.
191
+ //! \return The position of the first character of the first match. If no matches were found, the function
192
+ //! returns npos.
193
+ //!
194
+ sizet find( const char * buf, sizet pos = 0 ) const {
195
+ return find( buf, pos, npos );
196
+ }
197
+
198
+ //!
199
+ //! @brief Find content in string.
200
+ //! @details Searches the string for the first occurrence of the sequence specified by its arguments. When pos
201
+ //! is specified, the search only includes characters at or after position pos, ignoring any possible
202
+ //! occurrences that include characters before pos.
203
+ //! \param[in] buf pointer to a constant char buffer containing content to be matched. It can be null
204
+ //! terminated or not. NULL pointer will be treated as empty string.
205
+ //! \param[in] pos Position of the first character in the string to be considered in the search.
206
+ //! If this is greater than the string length, the function never finds matches.
207
+ //! \param[in] count Length of sequence of characters to match.
208
+ //! \return The position of the first character of the first match. If no matches were found, the function
209
+ //! returns npos.
210
+ //!
211
+ virtual sizet APICALL find( const char * buf, sizet pos, sizet count ) const = 0;
212
+
213
+
214
+ //
215
+ //! @brief Find content in string.
216
+ //! @details Searches the string for the first occurrence of the sequence specified by its arguments. When pos
217
+ //! is specified, the search only includes characters at or after position pos, ignoring any possible
218
+ //! occurrences that include characters before pos.
219
+ //! \param[in] src shared pointer to const \#AdobeXMPCommon::IUTF8String containing content to be matched. Invalid
220
+ //! shared pointer will be treated as empty string.
221
+ //! \param[in] pos Position of the first character in the string to be considered in the search.
222
+ //! If this is greater than the string length, the function never finds matches.
223
+ //! \param[in] count Length of sequence of characters to match.
224
+ //! \return The position of the first character of the first match. If no matches were found, the function
225
+ //! returns npos.
226
+ //!
227
+ virtual sizet APICALL find( const spcIUTF8String & src, sizet pos = 0, sizet count = npos ) const = 0;
228
+
229
+ //!
230
+ // @{
231
+ //! @brief Find last occurrence of content in string.
232
+ //! @details Searches the string for the last occurrence of the sequence specified by its arguments. When pos
233
+ //! is specified, the search only includes sequences of characters that begin at or before position pos,
234
+ //! ignoring any possible match beginning after pos.
235
+ //! \param[in] buf pointer to a constant char buffer containing content to be matched. It can be null
236
+ //! terminated or not. NULL pointer will be treated as empty string.
237
+ //! \param[in] pos Position of the last character in the string to be considered as the beginning of a match.
238
+ //! Any value greater or equal than the string length (including npos) means that the entire string is
239
+ //! searched.
240
+ //! \return The position of the fist character of the last match. If no matches were found, the function
241
+ //! returns npos.
242
+ //!
243
+ sizet rfind( const char * buf, sizet pos = npos ) const {
244
+ return rfind( buf, pos, npos );
245
+ }
246
+ virtual sizet APICALL rfind( const char * buf, sizet pos, sizet count ) const = 0;
247
+ //@}
248
+ //!
249
+
250
+ //!
251
+ //! @brief Find last occurrence of content in string.
252
+ //! @details Searches the string for the last occurrence of the sequence specified by its arguments. When pos
253
+ //! is specified, the search only includes sequences of characters that begin at or before position pos,
254
+ //! ignoring any possible match beginning after pos.
255
+ //! \param[in] src shared pointer to const \#AdobeXMPCommon::IUTF8String containing content to be matched. Invalid
256
+ //! shared pointer will be treated as empty string.
257
+ //! \param[in] pos Position of the last character in the string to be considered as the beginning of a match.
258
+ //! Any value greater or equal than the string length (including npos) means that the entire string is
259
+ //! searched.
260
+ //! \param[in] count Length of sequence of characters to match.
261
+ //! \return The position of the fist character of the last match. If no matches were found, the function
262
+ //! returns npos.
263
+ //!
264
+ virtual sizet APICALL rfind( const spcIUTF8String & src, sizet pos = npos, sizet count = npos ) const = 0;
265
+
266
+ //!
267
+ //! @{
268
+ //! @brief Compare strings.
269
+ //! @details Compares the value of the string object (or a substring) to the sequence of characters specified by its
270
+ //! arguments.
271
+ //! \param[in] buf pointer to a constant char buffer containing content to be compared. It can be null
272
+ //! terminated or not. NULL pointer will be treated as empty string.
273
+ //!
274
+ //! \return Returns a signed integral indicating the relation between the strings
275
+ //! | value | relation between compared string and comparing string |
276
+ //! | :---: | :-----------------------------------------------------|
277
+ //! | 0 | They compare equal |
278
+ //! | <0 | Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. |
279
+ //! | >0 | Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. |
280
+ //! \attention Error is thrown in case
281
+ //! - pos is greater than the object's length.
282
+ //!
283
+ int32 compare( const char * buf ) const {
284
+ return compare( 0, size(), buf, npos );
285
+ }
286
+ //! @brief Compare strings.
287
+ //! @details Compares the value of the string object (or a substring) to the sequence of characters specified by its
288
+ //! arguments.
289
+ //! \param[in] buf pointer to a constant char buffer containing content to be compared. It can be null
290
+ //! terminated or not. NULL pointer will be treated as empty string.
291
+ //! \param[in] pos Position of the first character in the compared string. If this is greater than the string
292
+ //! length, it is treated as empty string.
293
+ //! \param[in] len Length of compared string (if the string is shorter, as many characters as possible).
294
+ //! A value of npos indicates all characters until the end of the string.
295
+ //!
296
+ //! \return Returns a signed integral indicating the relation between the strings
297
+ //! | value | relation between compared string and comparing string |
298
+ //! | :---: | :-----------------------------------------------------|
299
+ //! | 0 | They compare equal |
300
+ //! | <0 | Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. |
301
+ //! | >0 | Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. |
302
+ //! \attention Error is thrown in case
303
+ //! - pos is greater than the object's length.
304
+ //!
305
+ int32 compare( sizet pos, sizet len, const char * buf ) const {
306
+ return compare( pos, len, buf, npos );
307
+ }
308
+ //!@brief Compare strings.
309
+ //! @details Compares the value of the string object (or a substring) to the sequence of characters specified by its
310
+ //! arguments.
311
+ //! \param[in] buf pointer to a constant char buffer containing content to be compared. It can be null
312
+ //! terminated or not. NULL pointer will be treated as empty string.
313
+ //! \param[in] pos Position of the first character in the compared string. If this is greater than the string
314
+ //! length, it is treated as empty string.
315
+ //! \param[in] len Length of compared string (if the string is shorter, as many characters as possible).
316
+ //! A value of npos indicates all characters until the end of the string.
317
+ //! \param[in] count Number of characters to compare.
318
+ //!
319
+ //! \return Returns a signed integral indicating the relation between the strings
320
+ //! | value | relation between compared string and comparing string |
321
+ //! | :---: | :-----------------------------------------------------|
322
+ //! | 0 | They compare equal |
323
+ //! | <0 | Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. |
324
+ //! | >0 | Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. |
325
+ //! \attention Error is thrown in case
326
+ //! - pos is greater than the object's length.
327
+ //!
328
+ virtual int32 APICALL compare( sizet pos, sizet len, const char * buf, sizet count ) const = 0;
329
+
330
+
331
+ //!
332
+ //! @brief Compare strings.
333
+ //! @details Compares the value of the string object (or a substring) to the contents of an string or substring object
334
+ //! specified by its arguments.
335
+ //! \param[in] str shared pointer to const \#AdobeXMPCommon::IUTF8String containing content to be compared.
336
+ //! Invalid shared pointer will be treated as empty string.
337
+ //! \return Returns a signed integral indicating the relation between the strings
338
+ //! | value | relation between compared string and comparing string |
339
+ //! | :---: | :-----------------------------------------------------|
340
+ //! | 0 | They compare equal |
341
+ //! | <0 | Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. |
342
+ //! | >0 | Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. |
343
+ //! \attention Error is thrown in case
344
+ //! - strPos is greater than length of str.
345
+ //! - pos is greater than the object's length.
346
+ //!
347
+ int32 compare( const spcIUTF8String & str ) const {
348
+ return compare( 0, size(), str, 0, str->size() );
349
+ }
350
+ //!
351
+ //! @brief Compare strings.
352
+ //! @details Compares the value of the string object (or a substring) to the contents of an string or substring object
353
+ //! specified by its arguments.
354
+ //! \param[in] pos Position of the first character in the compared string.
355
+ //! \param[in] len Length of compared string (if the string is shorter, as many characters as possible).
356
+ //! A value of npos indicates all characters until the end of the string.
357
+ //! \param[in] str shared pointer to const \#AdobeXMPCommon::IUTF8String containing content to be compared.
358
+ //! Invalid shared pointer will be treated as empty string.
359
+ //! \param[in] strPos Position of the first character in the comparing string.
360
+ //! \param[in] strLen Length of comparing string (if the string is shorter, as many characters as possible).
361
+ //!
362
+ //! \return Returns a signed integral indicating the relation between the strings
363
+ //! | value | relation between compared string and comparing string |
364
+ //! | :---: | :-----------------------------------------------------|
365
+ //! | 0 | They compare equal |
366
+ //! | <0 | Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter. |
367
+ //! | >0 | Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer. |
368
+ //! \attention Error is thrown in case
369
+ //! - strPos is greater than length of str.
370
+ //! - pos is greater than the object's length.
371
+ //!
372
+ virtual int32 APICALL compare( sizet pos, sizet len, const spcIUTF8String & str, sizet strPos = 0, sizet strLen = npos ) const = 0;
373
+
374
+ //!
375
+ //! @brief Returns a new string object which contains a sub string of the actual string object.
376
+ //! \param[in] pos Position of the first character to be copied. If this is greater than the string length, then
377
+ //! nothing is copied.
378
+ //! \param[in] count Number of characters to copy (if the string is shorter, as many characters as possible are
379
+ //! copied).
380
+ //! \return A shared pointer to AdobeXMPCommon::IUTF8String which is exact replica of the current object.
381
+ //! \attention Error is thrown in case
382
+ //! - pos is greater than the object's length.
383
+ //! - allocation fails
384
+ //!
385
+ virtual spIUTF8String APICALL substr( sizet pos = 0, sizet count = npos ) const = 0;
386
+
387
+ //!
388
+ //! @brief Indicates whether the string object is empty or not.
389
+ //! \return A value of type bool; true in case the contents of the string object is empty.
390
+ //!
391
+ virtual bool APICALL empty() const = 0;
392
+
393
+ //!
394
+ //! @brief Provides access to the actual location where contents of string are stored.
395
+ //! \return A pointer to a buffer of const chars containing the contents of the string object.
396
+ //!
397
+ virtual const char * APICALL c_str() const __NOTHROW__ = 0;
398
+
399
+ //!
400
+ //! @brief Clears the contents of the string object.
401
+ //!
402
+ virtual void APICALL clear() __NOTHROW__ = 0;
403
+
404
+ //!
405
+ //! @brief Indicates the number of bytes used by the contents of the string object.
406
+ //! \return An object of type \#AdobeXMPCommon::sizet containing the number of bytes used to store the contents fo the string object.
407
+ //!
408
+ virtual sizet APICALL size() const __NOTHROW__ = 0;
409
+
410
+ //!
411
+ //! \cond XMP_INTERNAL_DOCUMENTATION
412
+ //! @{
413
+ //! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
414
+ //! \return Either a const or non const pointer to IUTF8String interface.
415
+ //!
416
+ virtual pIUTF8String APICALL GetActualIUTF8String() __NOTHROW__ = 0;
417
+ XMP_PRIVATE pcIUTF8String GetActualIUTF8String() const __NOTHROW__ {
418
+ return const_cast< IUTF8String_v1 * >( this )->GetActualIUTF8String();
419
+ }
420
+ //!
421
+ //! @}
422
+
423
+ //!
424
+ //! @{
425
+ //! @brief Convert raw pointer to shared pointer. The raw pointer is of version 1 interface
426
+ //! where as the returned shared pointer depends on the version client is interested in.
427
+ //! \return Shared pointer to const or non constant interface.
428
+ //!
429
+ XMP_PRIVATE static spIUTF8String MakeShared( pIUTF8String_base ptr );
430
+ XMP_PRIVATE static spcIUTF8String MakeShared( pcIUTF8String_base ptr ) {
431
+ return MakeShared( const_cast< pIUTF8String_base >( ptr ) );
432
+ }
433
+ //!
434
+ //! @}
435
+
436
+ //!
437
+ //! @brief Returns the unique ID assigned to the interface.
438
+ //! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
439
+ //!
440
+ XMP_PRIVATE static uint64 GetInterfaceID() { return kIUTF8StringID; }
441
+
442
+ //!
443
+ //! @brief Returns the version of the interface.
444
+ //! \return 32 bit unsigned integer representing the version of the interface.
445
+ //!
446
+ XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
447
+ //! \endcond
448
+
449
+ // static factory functions
450
+
451
+ //!
452
+ //! @brief Creates an empty IUTF8String object.
453
+ //! \param[in] objFactory A pointer to \#AdobeXMPCommon::IObjectFactory object.
454
+ //! \return A shared pointer to an empty IUTF8String object
455
+ //!
456
+ XMP_PRIVATE static spIUTF8String CreateUTF8String( pIObjectFactory objFactory );
457
+
458
+ //!
459
+ //! @brief Creates an IUTF8String object whose initial contents are copied from a char buffer.
460
+ //! \param[in] objFactory A pointer to \#AdobeXMPCommon::IObjectFactory object.
461
+ //! \param[in] buf pointer to a constant char buffer containing content. It can be null
462
+ //! terminated or not. NULL pointer will be treated as empty string.
463
+ //! \param[in] count A value of \#AdobeXMPCommon::sizet indicating the length in case buf is not null
464
+ //! terminated. In case buf is null terminated it can be set to npos.
465
+ //! \return A shared pointer to a newly created \#AdobeXMPCommon::IUTF8String object
466
+ //!
467
+ XMP_PRIVATE static spIUTF8String CreateUTF8String( pIObjectFactory objFactory, const char * buf, sizet count );
468
+
469
+ protected:
470
+ //!
471
+ //! Destructor
472
+ //!
473
+ virtual ~IUTF8String_v1() __NOTHROW__ {}
474
+
475
+ //! \cond XMP_INTERNAL_DOCUMENTATION
476
+ virtual pIUTF8String_base APICALL assign( const char * buffer, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
477
+ virtual pIUTF8String_base APICALL assign( pcIUTF8String_base str, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
478
+ virtual pIUTF8String_base APICALL append( const char * buffer, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
479
+ virtual pIUTF8String_base APICALL append( pcIUTF8String_base str, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
480
+ virtual pIUTF8String_base APICALL insert( sizet pos, const char * buf, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
481
+ virtual pIUTF8String_base APICALL insert( sizet pos, pcIUTF8String_base src, sizet srcPos, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
482
+ virtual pIUTF8String_base APICALL erase( sizet pos, sizet count, pcIError_base & error ) __NOTHROW__ = 0;
483
+ virtual void APICALL resize( sizet n, pcIError_base & error ) __NOTHROW__ = 0;
484
+ virtual pIUTF8String_base APICALL replace( sizet pos, sizet count, const char * buf, sizet srcCount, pcIError_base & error ) __NOTHROW__ = 0;
485
+ virtual pIUTF8String_base APICALL replace( sizet pos, sizet count, pcIUTF8String_base src, sizet srcPos, sizet srcCount, pcIError_base & error ) __NOTHROW__ = 0;
486
+ virtual sizet APICALL copy( char * buf, sizet len, sizet pos, pcIError_base & error ) const __NOTHROW__ = 0;
487
+ virtual sizet APICALL find( const char * buf, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ = 0;
488
+ virtual sizet APICALL find( pcIUTF8String_base src, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ = 0;
489
+ virtual sizet APICALL rfind( const char * buf, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ = 0;
490
+ virtual sizet APICALL rfind( pcIUTF8String_base src, sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ = 0;
491
+ virtual int32 APICALL compare( sizet pos, sizet len, const char * buf, sizet count, pcIError_base & error ) const __NOTHROW__ = 0;
492
+ virtual int32 APICALL compare( sizet pos, sizet len, pcIUTF8String_base str, sizet strPos, sizet strLen, pcIError_base & error ) const __NOTHROW__ = 0;
493
+ virtual pIUTF8String_base APICALL substr( sizet pos, sizet count, pcIError_base & error ) const __NOTHROW__ = 0;
494
+ virtual uint32 APICALL empty( pcIError_base & error ) const __NOTHROW__ = 0;
495
+
496
+ #ifdef FRIEND_CLASS_DECLARATION
497
+ FRIEND_CLASS_DECLARATION();
498
+ #endif
499
+ REQ_FRIEND_CLASS_DECLARATION();
500
+ //! \endcond
501
+ };
502
+ }
503
+
504
+ #endif // __IUTF8String_h__