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.
- checksums.yaml +7 -0
- data/.idea/.gitignore +8 -0
- data/.rspec +3 -0
- data/.rubocop.yml +88 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/AGENTS.md +72 -0
- data/CHANGELOG.md +45 -0
- data/LICENSE.txt +21 -0
- data/README.md +287 -0
- data/Rakefile +25 -0
- data/cliff.toml +138 -0
- data/docker/Dockerfile +87 -0
- data/docker/ProductConfig.cmake.patch +11 -0
- data/docker/ToolchainGCC.cmake.patch +11 -0
- data/exe/xmp_toolkit_ruby +8 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/LICENSE +31 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/build/XMP_BuildInfo.h +17 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/TXMPFiles.hpp +853 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/TXMPIterator.hpp +234 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/TXMPMeta.hpp +1753 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/TXMPUtils.hpp +967 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP.hpp +98 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP.incl_cpp +69 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h +225 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h +71 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h +76 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/BaseInterfaces/IVersionable.h +71 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IConfigurationManager.h +167 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IError.h +377 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IErrorNotifier.h +52 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IMemoryAllocator.h +65 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IObjectFactory.h +90 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IUTF8String.h +504 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Utilities/TWrapperFunctions.h +252 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Utilities/TWrapperFunctions2.h +564 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/XMPCommonDefines.h +194 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/XMPCommonErrorCodes.h +114 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/XMPCommonFwdDeclarations.h +158 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/XMPCommonLatestInterfaceVersions.h +51 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IConfigurable.cpp +204 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IConfigurationManager.cpp +92 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IError.cpp +207 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IErrorNotifier.cpp +26 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IUTF8String.cpp +299 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IArrayNode.h +303 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IClientDOMParser.h +88 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IClientDOMSerializer.h +94 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/ICompositeNode.h +331 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/ICoreConfigurationManager.h +107 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/ICoreObjectFactory.h +279 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IDOMImplementationRegistry.h +150 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IDOMParser.h +181 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IDOMSerializer.h +120 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IMetadata.h +145 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IMetadataConverterUtils.h +116 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/INameSpacePrefixMap.h +236 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/INode.h +582 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/INodeIterator.h +193 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IPath.h +212 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IPathSegment.h +225 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/ISimpleNode.h +150 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IStructureNode.h +306 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/XMPCoreDefines.h +94 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/XMPCoreErrorCodes.h +116 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/XMPCoreFwdDeclarations.h +325 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/XMPCoreLatestInterfaceVersions.h +97 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IArrayNode.cpp +163 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IClientDOMParser.cpp +76 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IClientDOMSerializer.cpp +73 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/ICompositeNode.cpp +121 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/ICoreConfigurationManager.cpp +88 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/ICoreObjectFactory.cpp +83 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IDOMImplementationRegistry.cpp +122 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IDOMParser.cpp +116 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IDOMSerializer.cpp +109 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IMetadata.cpp +113 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IMetadataConverterUtils.cpp +92 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/INameSpacePrefixMap.cpp +187 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/INode.cpp +377 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/INodeIterator.cpp +105 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IPath.cpp +157 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IPathSegment.cpp +146 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/ISimpleNode.cpp +111 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IStructureNode.cpp +104 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP_Const.h +1590 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP_Environment.h +223 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP_IO.hpp +169 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP_Version.h +52 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/TXMPFiles.incl_cpp +484 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/TXMPIterator.incl_cpp +223 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/TXMPMeta.incl_cpp +917 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/TXMPUtils.incl_cpp +445 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMPFiles.hpp +281 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMPIterator.hpp +74 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMPMeta.hpp +635 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMPUtils.hpp +314 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMP_Common.hpp +132 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug/libXMPCore.so +0 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug/libXMPCoreStatic.a +0 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug/libXMPFiles.so +0 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug/libXMPFilesStatic.a +0 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/macintosh/universal/Debug/libXMPCoreStatic.a +0 -0
- data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/macintosh/universal/Debug/libXMPFilesStatic.a +0 -0
- data/ext/xmp_toolkit_ruby/extconf.rb +101 -0
- data/ext/xmp_toolkit_ruby/xmp_toolkit.cpp +321 -0
- data/ext/xmp_toolkit_ruby/xmp_toolkit.hpp +69 -0
- data/ext/xmp_toolkit_ruby/xmp_toolkit_ruby.cpp +44 -0
- data/lib/xmp_toolkit_ruby/cli.rb +95 -0
- data/lib/xmp_toolkit_ruby/namespaces.rb +77 -0
- data/lib/xmp_toolkit_ruby/plugins/LICENSE +31 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/MODULE_IDENTIFIER.txt +1 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/XMPPLUGINUIDS.txt +31 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpi +0 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.so +0 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/MODULE_IDENTIFIER.txt +1 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/XMPPLUGINUIDS.txt +31 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpi +0 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.so +0 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/PDF_Handler +0 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/Info.plist +52 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MODULE_IDENTIFIER.txt +1 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/MiniPDFL +0 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Resources/English.lproj/InfoPlist.strings +0 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Resources/Info.plist +35 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/MiniPDFL +0 -0
- 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
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist +35 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources +146 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL +0 -0
- 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
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist +35 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources +146 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/XMPPLUGINUIDS.txt +31 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/PDF_Handler +0 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/Info.plist +52 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt +1 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL +0 -0
- 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
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Resources/Info.plist +35 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL +0 -0
- 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
- 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
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources +146 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL +0 -0
- 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
- 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
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources +146 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt +31 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/_CodeSignature/CodeResources +216 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/PDF_Handler +0 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/Info.plist +52 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MODULE_IDENTIFIER.txt +1 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/MiniPDFL +0 -0
- 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
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Resources/Info.plist +35 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/MiniPDFL +0 -0
- 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
- 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
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources +146 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL +0 -0
- 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
- 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
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources +146 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/XMPPLUGINUIDS.txt +31 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/_CodeSignature/CodeResources +216 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/linux/PDF_Handler.exp +11 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/mac/PDF_Handler.exp +2 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/mac/PDF_Handler.plist +28 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/mac/PDF_HandlerPList.h +12 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/win/CopyPDFL.bat +14 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/win/PDF_Handler-32.rc +8 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/win/PDF_Handler-64.rc +8 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/win/PDF_Handler.def +9 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/windows/windows_x64/MiniPDFL.dll +0 -0
- data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpi +0 -0
- data/lib/xmp_toolkit_ruby/version.rb +5 -0
- data/lib/xmp_toolkit_ruby/xmp_file_format.rb +87 -0
- data/lib/xmp_toolkit_ruby/xmp_file_handler_flags.rb +49 -0
- data/lib/xmp_toolkit_ruby.rb +237 -0
- data/sig/xmp_toolkit_ruby.rbs +4 -0
- data/tasks/changelog.rake +29 -0
- metadata +357 -0
@@ -0,0 +1,193 @@
|
|
1
|
+
#ifndef __INodeIterator_h__
|
2
|
+
#define __INodeIterator_h__ 1
|
3
|
+
|
4
|
+
|
5
|
+
// =================================================================================================
|
6
|
+
// Copyright Adobe
|
7
|
+
// Copyright 2014 Adobe
|
8
|
+
// All Rights Reserved
|
9
|
+
//
|
10
|
+
// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
|
11
|
+
// of the Adobe license agreement accompanying it.
|
12
|
+
// =================================================================================================
|
13
|
+
|
14
|
+
#include "XMPCore/XMPCoreFwdDeclarations.h"
|
15
|
+
#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
|
16
|
+
#include "XMPCore/Interfaces/INode.h"
|
17
|
+
#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
|
18
|
+
|
19
|
+
namespace AdobeXMPCore {
|
20
|
+
|
21
|
+
//!
|
22
|
+
//! @brief Interface that represents an iterator over the mutable children of a XMP DOM Node.
|
23
|
+
//! \note Iterators are valid as long as their are no changes performed on the node. In case there are some
|
24
|
+
//! changes performed on the node then the behavior is undefined.
|
25
|
+
//!
|
26
|
+
class XMP_PUBLIC INodeIterator_v1
|
27
|
+
: public virtual ISharedObject
|
28
|
+
, public virtual IVersionable
|
29
|
+
{
|
30
|
+
public:
|
31
|
+
|
32
|
+
//!
|
33
|
+
//! @brief Gets the type of the node currently pointed by the iterator.
|
34
|
+
//! \return A value of type \#INode_v1::eNodeType indicating the type of the node currently pointed by the iterator.
|
35
|
+
//!
|
36
|
+
virtual INode_v1::eNodeType APICALL GetNodeType() const = 0;
|
37
|
+
|
38
|
+
//!
|
39
|
+
//! @{
|
40
|
+
//! @brief Gets the node currently pointed by the iterator.
|
41
|
+
//! \return A shared pointer to a const or non const object of type \#INode.
|
42
|
+
//! \note In case iterator has gone beyond its limit, an invalid shared pointer is returned
|
43
|
+
//!
|
44
|
+
virtual spINode APICALL GetNode() = 0;
|
45
|
+
XMP_PRIVATE spcINode APICALL GetNode() const {
|
46
|
+
return const_cast< INodeIterator * >( this )->GetNode();
|
47
|
+
};
|
48
|
+
//! @}
|
49
|
+
|
50
|
+
//!
|
51
|
+
//! @{
|
52
|
+
//! @brief Gets the iterator's currently pointed node as simple node, if possible.
|
53
|
+
//! \return A shared pointer to a const or non const object of type \#ISimpleNode.
|
54
|
+
//! \attention Error is thrown in case
|
55
|
+
//! - iterator's currently pointed node is valid but is not a simple node.
|
56
|
+
//! \note In case iterator has gone beyond its limit, an invalid shared pointer is returned.
|
57
|
+
//!
|
58
|
+
XMP_PRIVATE spISimpleNode GetSimpleNode() {
|
59
|
+
auto node = GetNode();
|
60
|
+
if ( node ) return node->ConvertToSimpleNode();
|
61
|
+
return spISimpleNode();
|
62
|
+
}
|
63
|
+
|
64
|
+
XMP_PRIVATE spcISimpleNode GetSimpleNode() const {
|
65
|
+
return const_cast< INodeIterator * >( this )->GetSimpleNode();
|
66
|
+
}
|
67
|
+
//! @}
|
68
|
+
|
69
|
+
//!
|
70
|
+
//! @brief Gets the iterator's currently pointed node as structure node, if possible.
|
71
|
+
//! \return A shared pointer to a const or non const object of type \#IStructureNode.
|
72
|
+
//! \attention Error is thrown in case
|
73
|
+
//! - iterator's currently pointed node is valid but is not a structure node.
|
74
|
+
//! \note In case iterator has gone beyond its limit, an invalid shared pointer is returned.
|
75
|
+
//!
|
76
|
+
XMP_PRIVATE spIStructureNode GetStructureNode() {
|
77
|
+
auto node = GetNode();
|
78
|
+
if ( node ) return node->ConvertToStructureNode();
|
79
|
+
return spIStructureNode();
|
80
|
+
}
|
81
|
+
|
82
|
+
XMP_PRIVATE spcIStructureNode GetStructureNode() const {
|
83
|
+
return const_cast< INodeIterator * >( this )->GetStructureNode();
|
84
|
+
}
|
85
|
+
//! @}
|
86
|
+
|
87
|
+
//!
|
88
|
+
//! @brief Gets the iterator's currently pointed node as an array node, if possible.
|
89
|
+
//! \return A shared pointer to a const or non const object of type \#IArrayNode.
|
90
|
+
//! \attention Error is thrown in case
|
91
|
+
//! - iterator's currently pointed node is valid but is not an array node.
|
92
|
+
//! \note In case iterator has gone beyond its limit, an invalid shared pointer is returned.
|
93
|
+
//!
|
94
|
+
XMP_PRIVATE spIArrayNode GetArrayNode() {
|
95
|
+
auto node = GetNode();
|
96
|
+
if ( node ) return node->ConvertToArrayNode();
|
97
|
+
return spIArrayNode();
|
98
|
+
}
|
99
|
+
|
100
|
+
XMP_PRIVATE spcIArrayNode GetArrayNode() const {
|
101
|
+
return const_cast< INodeIterator * >( this )->GetArrayNode();
|
102
|
+
}
|
103
|
+
//! @}
|
104
|
+
|
105
|
+
//!
|
106
|
+
//! @{
|
107
|
+
//! @brief Advances iterator by one position.
|
108
|
+
//! \return A shared pointer to a const or non object of type \#INodeIterator.
|
109
|
+
//! \note Returned shared pointer is invalid in case the current node is the last one.
|
110
|
+
//!
|
111
|
+
virtual spINodeIterator APICALL Next() = 0;
|
112
|
+
XMP_PRIVATE spcINodeIterator APICALL Next() const {
|
113
|
+
return const_cast< INodeIterator * >( this )->Next();
|
114
|
+
}
|
115
|
+
//! @}
|
116
|
+
|
117
|
+
|
118
|
+
//!
|
119
|
+
//! \cond XMP_INTERNAL_DOCUMENTATION
|
120
|
+
|
121
|
+
//!
|
122
|
+
//! @{
|
123
|
+
//! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
|
124
|
+
//! \return Either a const or non const pointer to INodeIterator interface.
|
125
|
+
//!
|
126
|
+
virtual pINodeIterator APICALL GetActualINodeIterator() __NOTHROW__ = 0;
|
127
|
+
XMP_PRIVATE pcINodeIterator GetActualINodeIterator() const __NOTHROW__ {
|
128
|
+
return const_cast< INodeIterator * >( this )->GetActualINodeIterator();
|
129
|
+
}
|
130
|
+
//!
|
131
|
+
//! @}
|
132
|
+
|
133
|
+
//!
|
134
|
+
//! @{
|
135
|
+
//! @brief Returns the pointer to internal interfaces.
|
136
|
+
//! \return Either a const or non const pointer to INodeIterator_I interface.
|
137
|
+
//!
|
138
|
+
virtual AdobeXMPCore_Int::pINodeIterator_I APICALL GetINodeIterator_I() __NOTHROW__ = 0;
|
139
|
+
XMP_PRIVATE AdobeXMPCore_Int::pcINodeIterator_I GetINodeIterator_I() const __NOTHROW__ {
|
140
|
+
return const_cast< INodeIterator * >( this )->GetINodeIterator_I();
|
141
|
+
}
|
142
|
+
//!
|
143
|
+
//! @}
|
144
|
+
|
145
|
+
//!
|
146
|
+
//! @{
|
147
|
+
//! @brief Converts raw pointer to shared pointer.
|
148
|
+
//! \return Shared pointer to const or non constant interface.
|
149
|
+
//!
|
150
|
+
XMP_PRIVATE static spINodeIterator MakeShared( pINodeIterator ptr );
|
151
|
+
XMP_PRIVATE static spcINodeIterator MakeShared( pcINodeIterator ptr ) {
|
152
|
+
return MakeShared( const_cast< pINodeIterator >( ptr ) );
|
153
|
+
}
|
154
|
+
//!
|
155
|
+
//! @}
|
156
|
+
|
157
|
+
//!
|
158
|
+
//! @}
|
159
|
+
|
160
|
+
//!
|
161
|
+
//! return the unique ID assigned to the interface.
|
162
|
+
//! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
|
163
|
+
//!
|
164
|
+
XMP_PRIVATE static uint64 GetInterfaceID() { return kINodeIteratorID; }
|
165
|
+
|
166
|
+
//!
|
167
|
+
//! return the version of the interface.
|
168
|
+
//! \return 32 bit unsigned integer representing the version of the interface.
|
169
|
+
//!
|
170
|
+
XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
|
171
|
+
//! \endcond
|
172
|
+
|
173
|
+
protected:
|
174
|
+
//!
|
175
|
+
//! Destructor
|
176
|
+
//!
|
177
|
+
virtual ~INodeIterator_v1() __NOTHROW__ {}
|
178
|
+
|
179
|
+
//! \cond XMP_INTERNAL_DOCUMENTATION
|
180
|
+
virtual uint32 APICALL getNodeType( pcIError_base & error ) const __NOTHROW__ = 0;
|
181
|
+
virtual pINode_base APICALL getNode( pcIError_base & error ) __NOTHROW__ = 0;
|
182
|
+
virtual pINodeIterator_base APICALL next( pcIError_base & error ) __NOTHROW__ = 0;
|
183
|
+
|
184
|
+
#ifdef FRIEND_CLASS_DECLARATION
|
185
|
+
FRIEND_CLASS_DECLARATION();
|
186
|
+
#endif
|
187
|
+
REQ_FRIEND_CLASS_DECLARATION();
|
188
|
+
//! \endcond
|
189
|
+
|
190
|
+
};
|
191
|
+
}
|
192
|
+
|
193
|
+
#endif // __INodeIterator_h__
|
@@ -0,0 +1,212 @@
|
|
1
|
+
#ifndef __IPath_h__
|
2
|
+
#define __IPath_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 "XMPCore/XMPCoreFwdDeclarations.h"
|
13
|
+
#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
|
14
|
+
#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
|
15
|
+
|
16
|
+
namespace AdobeXMPCore {
|
17
|
+
|
18
|
+
//!
|
19
|
+
//! @brief Version1 of the interface that provides an easy iterative description of a specific path into the XMP tree.
|
20
|
+
//! @details Path consists of multiple path segments in an order and each \#IPathSegment represents one segment
|
21
|
+
//! of the path into the XMP tree.
|
22
|
+
//! Provides all the functions to create path and get the various properties of a path.
|
23
|
+
//! \attention Do not support multi-threading.
|
24
|
+
//! \note Index in the path are 1-based.
|
25
|
+
//!
|
26
|
+
class XMP_PUBLIC IPath_v1
|
27
|
+
: public virtual ISharedObject
|
28
|
+
, public virtual IVersionable
|
29
|
+
{
|
30
|
+
public:
|
31
|
+
|
32
|
+
//!
|
33
|
+
//! @brief Registers a map of namespace and prefix with the object.
|
34
|
+
//! This map will be used during serialization and parsing.
|
35
|
+
//! \param[in] map A shared pointer of an object \#AdobeXMPCore::INameSpacePrefixMap.
|
36
|
+
//! \return A shared pointer to the const map registered previously with the object.
|
37
|
+
//!
|
38
|
+
virtual spcINameSpacePrefixMap APICALL RegisterNameSpacePrefixMap( const spcINameSpacePrefixMap & map ) = 0;
|
39
|
+
|
40
|
+
//!
|
41
|
+
//! @brief Serializes the IPath object to a utf8 string representation. This will produce either a long form of the path using
|
42
|
+
//! the full namespace strings or short form of the path using the prefix for the namespace.
|
43
|
+
//! \param[in] map A shared pointer to a const \#AdobeXMPCore::INameSpacePrefixMap object which can contain the
|
44
|
+
//! mapping for nameSpaces to prefixes. They will take precedence over the map registered with the object.
|
45
|
+
//! \return A shard pointer to \#AdobeXMPCommon::IUTF8String object containing serialized form of path.
|
46
|
+
//! \note In case map is not a valid shared pointer all the mappings will be picked from the map registered with the object.
|
47
|
+
//! If neither a map is registered nor it is provided in the arguments then it will serialize to long form of the path.
|
48
|
+
//! \attention Error will be thrown in case
|
49
|
+
//! - no prefix exists for a namespace used in the path.
|
50
|
+
//!
|
51
|
+
virtual spIUTF8String APICALL Serialize( const spcINameSpacePrefixMap & map = spcINameSpacePrefixMap() ) const = 0;
|
52
|
+
|
53
|
+
//!
|
54
|
+
//! @brief Appends a path segment to the path.
|
55
|
+
//! \param[in] segment A shared pointer to a const \#AdobeXMPCore::IPathSegment object.
|
56
|
+
//! \attention Error is thrown in case
|
57
|
+
//! - segment is not a valid shared pointer.
|
58
|
+
//!
|
59
|
+
virtual void APICALL AppendPathSegment( const spcIPathSegment & segment ) = 0;
|
60
|
+
|
61
|
+
//!
|
62
|
+
//! @brief Removes a path segment from the path.
|
63
|
+
//! \param[in] index Indicates the index of the path segment to be removed.
|
64
|
+
//! \returns A shared pointer to the const path segment removed.
|
65
|
+
//! \attention Error is thrown in case
|
66
|
+
//! - index is out of bounds.
|
67
|
+
//!
|
68
|
+
virtual spcIPathSegment APICALL RemovePathSegment( sizet index ) = 0;
|
69
|
+
|
70
|
+
//!
|
71
|
+
//! @brief Gets the path segment at a particular index in the path
|
72
|
+
//! \param[in] index Indicates the index for the path segment in the path.
|
73
|
+
//! \return A shared pointer to a const path segment.
|
74
|
+
//! \attention Error is thrown in case
|
75
|
+
//! -index is out of bounds.
|
76
|
+
//!
|
77
|
+
virtual spcIPathSegment APICALL GetPathSegment( sizet index ) const = 0;
|
78
|
+
|
79
|
+
//!
|
80
|
+
//! @brief Gets the number of the path segments in the path.
|
81
|
+
//! \return The count of the path segments in the path.
|
82
|
+
//!
|
83
|
+
virtual sizet APICALL Size() const __NOTHROW__ = 0;
|
84
|
+
|
85
|
+
//!
|
86
|
+
//! @brief To check whether path is empty or not.
|
87
|
+
//! \returns A bool object indicating true in case the path is empty (no path segment)
|
88
|
+
//!
|
89
|
+
XMP_PRIVATE bool IsEmpty() const {
|
90
|
+
return Size() == 0;
|
91
|
+
}
|
92
|
+
|
93
|
+
//!
|
94
|
+
//! @brief Clears the path by removing all the path segments from it
|
95
|
+
//!
|
96
|
+
virtual void APICALL Clear() __NOTHROW__ = 0;
|
97
|
+
|
98
|
+
//!
|
99
|
+
//! @brief Gets a new path having a selected range of path segments
|
100
|
+
//! \param[in] startingIndex Indicates the starting index of the path segment to be part of the returned path object. Default value is 1.
|
101
|
+
//! \param[in] countOfSegments Indicates the count of the path segments to be part of the returned path object starting from startingIndex.
|
102
|
+
//! Default value is \#AdobeXMPCommon::kMaxSize.
|
103
|
+
//! \note In case countOfSegments is more than the number of segments available in the path object starting from the starting index
|
104
|
+
//! then internally it is truncated to the number of path segments available.
|
105
|
+
//! \attention Error is thrown in case
|
106
|
+
//! - startingIndex is more than the count of segments in the object.
|
107
|
+
//!
|
108
|
+
virtual spIPath APICALL Clone( sizet startingIndex = 1, sizet countOfSegments = kMaxSize ) const = 0;
|
109
|
+
|
110
|
+
//!
|
111
|
+
//! \cond XMP_INTERNAL_DOCUMENTATION
|
112
|
+
|
113
|
+
//!
|
114
|
+
//! @{
|
115
|
+
//! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
|
116
|
+
//! \return Either a const or non const pointer to IPath interface.
|
117
|
+
//!
|
118
|
+
virtual pIPath APICALL GetActualIPath() __NOTHROW__ = 0;
|
119
|
+
XMP_PRIVATE pcIPath GetActualIPath() const __NOTHROW__ {
|
120
|
+
return const_cast< IPath_v1 * >( this )->GetActualIPath();
|
121
|
+
}
|
122
|
+
//!
|
123
|
+
//! @}
|
124
|
+
|
125
|
+
//!
|
126
|
+
//! @{
|
127
|
+
//! @brief Returns the pointer to internal interfaces.
|
128
|
+
//! \return Either a const or non const pointer to IPath_I interface.
|
129
|
+
//!
|
130
|
+
virtual AdobeXMPCore_Int::pIPath_I APICALL GetIPath_I() __NOTHROW__ = 0;
|
131
|
+
|
132
|
+
XMP_PRIVATE AdobeXMPCore_Int::pcIPath_I GetIPath_I() const __NOTHROW__ {
|
133
|
+
return const_cast< IPath_v1 * >( this )->GetIPath_I();
|
134
|
+
}
|
135
|
+
//!
|
136
|
+
//! @}
|
137
|
+
|
138
|
+
//!
|
139
|
+
//! @{
|
140
|
+
//! @brief Converts raw pointer to shared pointer. The raw pointer is of version 1 interface
|
141
|
+
//! where as the returned shared pointer depends on the version client is interested in.
|
142
|
+
//! \return Shared pointer to const or non constant interface.
|
143
|
+
//!
|
144
|
+
XMP_PRIVATE static spIPath MakeShared( pIPath_base ptr );
|
145
|
+
XMP_PRIVATE static spcIPath MakeShared( pcIPath_base ptr ) {
|
146
|
+
return MakeShared( const_cast< pIPath_base >( ptr ) );
|
147
|
+
}
|
148
|
+
//!
|
149
|
+
//! @}
|
150
|
+
|
151
|
+
//!
|
152
|
+
//! @brief Returns the unique ID assigned to the interface.
|
153
|
+
//! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
|
154
|
+
//!
|
155
|
+
XMP_PRIVATE static uint64 GetInterfaceID() { return kIPathID; }
|
156
|
+
|
157
|
+
//!
|
158
|
+
//! @brief Returns the version of the interface.
|
159
|
+
//! \return 32 bit unsigned integer representing the version of the interface.
|
160
|
+
//!
|
161
|
+
XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
|
162
|
+
//! \endcond
|
163
|
+
|
164
|
+
// static factory functions
|
165
|
+
|
166
|
+
//!
|
167
|
+
//! @brief Creates an empty IPath object.
|
168
|
+
//! \return a shared pointer to an empty IPath object
|
169
|
+
//!
|
170
|
+
XMP_PRIVATE static spIPath CreatePath();
|
171
|
+
|
172
|
+
//!
|
173
|
+
//! @brief Creates a path from a char buffer which contains the serialized path.
|
174
|
+
//! \param[in] path Pointer to a const char buffer containing serialized form of the path.
|
175
|
+
//! \param[in] pathLength Number of characters in the path. In case path in null terminated set it to \#AdobeXMPCommon::npos.
|
176
|
+
//! \param[in] map A shared pointer to a const \#AdobeXMPCore::IXMPNameSpacePrefixMap object which will contain the
|
177
|
+
//! mapping from nameSpaces to prefixes.
|
178
|
+
//! \return A shared pointer to a \#AdobeXMPCore::IPath object.
|
179
|
+
//! \note In case the serializedPath is NULL or the contents are empty then it will result in an empty path.
|
180
|
+
//! \note This operation is currently not implemented for the IPath interface.
|
181
|
+
//! \attention Error is thrown in case
|
182
|
+
//! - no mapping exists for a prefix to name space.
|
183
|
+
//! - path contains invalid data.
|
184
|
+
//!
|
185
|
+
XMP_PRIVATE static spIPath ParsePath( const char * path, sizet pathLength, const spcINameSpacePrefixMap & map );
|
186
|
+
|
187
|
+
|
188
|
+
protected:
|
189
|
+
//!
|
190
|
+
//! Destructor
|
191
|
+
//!
|
192
|
+
virtual ~IPath_v1() __NOTHROW__ {}
|
193
|
+
|
194
|
+
//! \cond XMP_INTERNAL_DOCUMENTATION
|
195
|
+
virtual pcINameSpacePrefixMap_base APICALL registerNameSpacePrefixMap( pcINameSpacePrefixMap_base map, pcIError_base & error ) __NOTHROW__ = 0;
|
196
|
+
virtual pIUTF8String_base APICALL serialize( pcINameSpacePrefixMap_base map, pcIError_base & error ) const __NOTHROW__ = 0;
|
197
|
+
virtual void APICALL appendPathSegment( pcIPathSegment_base segment, pcIError_base & error ) __NOTHROW__ = 0;
|
198
|
+
virtual pcIPathSegment_base APICALL removePathSegment( sizet index, pcIError_base & error ) __NOTHROW__ = 0;
|
199
|
+
virtual pcIPathSegment_base APICALL getPathSegment( sizet index, pcIError_base & error ) const __NOTHROW__ = 0;
|
200
|
+
virtual pIPath_base APICALL clone( sizet startingIndex, sizet countOfSegemetns, pcIError_base & error ) const __NOTHROW__ = 0;
|
201
|
+
|
202
|
+
|
203
|
+
#ifdef FRIEND_CLASS_DECLARATION
|
204
|
+
FRIEND_CLASS_DECLARATION();
|
205
|
+
#endif
|
206
|
+
REQ_FRIEND_CLASS_DECLARATION();
|
207
|
+
//! \endcond
|
208
|
+
|
209
|
+
};
|
210
|
+
}
|
211
|
+
|
212
|
+
#endif // __IPath_h__
|
@@ -0,0 +1,225 @@
|
|
1
|
+
#ifndef __IPathSegment_h__
|
2
|
+
#define __IPathSegment_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 "XMPCore/XMPCoreFwdDeclarations.h"
|
13
|
+
#include "XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h"
|
14
|
+
#include "XMPCommon/Interfaces/BaseInterfaces/IVersionable.h"
|
15
|
+
|
16
|
+
namespace AdobeXMPCore {
|
17
|
+
|
18
|
+
//!
|
19
|
+
//! @brief Version1 of the interface that represents one segment in a path to a node into the XMP tree.
|
20
|
+
//! @details Provides all the functions to access properties of the path segment and factory functions
|
21
|
+
//! to create various kinds of path segments.
|
22
|
+
//! \attention Not thread safe and not required as only read only access is provided to client.
|
23
|
+
//!
|
24
|
+
class XMP_PUBLIC IPathSegment_v1
|
25
|
+
: public virtual ISharedObject
|
26
|
+
, public virtual IVersionable
|
27
|
+
{
|
28
|
+
public:
|
29
|
+
|
30
|
+
//!
|
31
|
+
//! @brief This enumeration represents the types of a path segment.
|
32
|
+
//!
|
33
|
+
typedef enum {
|
34
|
+
//! None type
|
35
|
+
kPSTNone = 0,
|
36
|
+
|
37
|
+
//! Any property that consists of namespace and a localName
|
38
|
+
kPSTProperty = 1,
|
39
|
+
|
40
|
+
//! An array index which does not have a namespace or localName itself
|
41
|
+
kPSTArrayIndex = 1 << 1,
|
42
|
+
|
43
|
+
//! A qualifier of a property, also consists of namespace and localName
|
44
|
+
kPSTQualifier = 1 << 2,
|
45
|
+
|
46
|
+
//! Selects a specific qualifier by its value (e.g. specific language)
|
47
|
+
kPSTQualifierSelector = 1 << 3,
|
48
|
+
|
49
|
+
//! Represents all property types
|
50
|
+
kPSTAll = kAllBits
|
51
|
+
} ePathSegmentType;
|
52
|
+
|
53
|
+
//!
|
54
|
+
//! @brief Gets the name space of the path segment.
|
55
|
+
//! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String object representing namespace of the path segment.
|
56
|
+
//!
|
57
|
+
virtual spcIUTF8String APICALL GetNameSpace() const = 0;
|
58
|
+
|
59
|
+
//!
|
60
|
+
//! @brief Gets the name of the path segment.
|
61
|
+
//! \return A shared pointer to const \#AdobeXMPCommon::IUTF8String object containing name of the path segment. In case
|
62
|
+
//! path segment has no name space, an invalid shared pointer is returned.
|
63
|
+
//!
|
64
|
+
virtual spcIUTF8String APICALL GetName() const = 0;
|
65
|
+
|
66
|
+
//!
|
67
|
+
//! @brief Gets the type of the path segment.
|
68
|
+
//! \return An object of type \#ePathSegmentType representing type of the path segment.
|
69
|
+
//!
|
70
|
+
virtual ePathSegmentType APICALL GetType() const = 0;
|
71
|
+
|
72
|
+
//!
|
73
|
+
//! @brief Gets the index of the array type path segment.
|
74
|
+
//! \return An objet of type \#AdobeXMPCommon::sizet object representing index of the array type path segment. In case
|
75
|
+
//! path segment is not of type kPSTArrayIndex, it returns \#AdobeXMPCommon::kMaxSize.
|
76
|
+
//!
|
77
|
+
virtual sizet APICALL GetIndex() const __NOTHROW__ = 0;
|
78
|
+
|
79
|
+
//!
|
80
|
+
//! @brief Gets the value of the qualifier type path segment.
|
81
|
+
//! \return A shared pointer to const \#AdobeXMP::IUTF8String object representing value of the qualifier type path segment.
|
82
|
+
//! In case path segment is not of type kPSTQualifier an invalid shared pointer is returned.
|
83
|
+
//!
|
84
|
+
virtual spcIUTF8String APICALL GetValue() const = 0;
|
85
|
+
|
86
|
+
//!
|
87
|
+
//! \cond XMP_INTERNAL_DOCUMENTATION
|
88
|
+
|
89
|
+
//!
|
90
|
+
//! @{
|
91
|
+
//! @brief Returns the actual raw pointer from the shared pointer, which can be a shared pointer of a proxy class.
|
92
|
+
//! \return Either a const or non const pointer to IPathSegment interface.
|
93
|
+
//!
|
94
|
+
virtual pIPathSegment APICALL GetActualIPathSegment() __NOTHROW__ = 0;
|
95
|
+
XMP_PRIVATE pcIPathSegment GetActualIPathSegment() const __NOTHROW__ {
|
96
|
+
return const_cast< IPathSegment_v1 * >( this )->GetActualIPathSegment();
|
97
|
+
}
|
98
|
+
//!
|
99
|
+
//! @}
|
100
|
+
|
101
|
+
//!
|
102
|
+
//! @{
|
103
|
+
//! @brief Returns the pointer to internal interfaces.
|
104
|
+
//! \return Either a const or non const pointer to IPathSegment_I interface.
|
105
|
+
//!
|
106
|
+
virtual AdobeXMPCore_Int::pIPathSegment_I APICALL GetIPathSegment_I() __NOTHROW__ = 0;
|
107
|
+
|
108
|
+
XMP_PRIVATE AdobeXMPCore_Int::pcIPathSegment_I GetIPathSegment_I() const __NOTHROW__ {
|
109
|
+
return const_cast< IPathSegment_v1 * >( this )->GetIPathSegment_I();
|
110
|
+
}
|
111
|
+
//!
|
112
|
+
//! @}
|
113
|
+
|
114
|
+
//!
|
115
|
+
//! @{
|
116
|
+
//! @brief Converts raw pointer to shared pointer.
|
117
|
+
//! @details The raw pointer is of version 1 interface
|
118
|
+
//! where as the returned shared pointer depends on the version client is interested in.
|
119
|
+
//! \return Shared pointer to const or non constant interface.
|
120
|
+
//!
|
121
|
+
XMP_PRIVATE static spIPathSegment MakeShared( pIPathSegment_base ptr );
|
122
|
+
XMP_PRIVATE static spcIPathSegment MakeShared( pcIPathSegment_base ptr ) {
|
123
|
+
return MakeShared( const_cast< pIPathSegment_base >( ptr ) );
|
124
|
+
}
|
125
|
+
//!
|
126
|
+
//! @}
|
127
|
+
|
128
|
+
//!
|
129
|
+
//! @brief Returns the unique ID assigned to the interface.
|
130
|
+
//! \return 64 bit unsigned integer representing the unique ID assigned to the interface.
|
131
|
+
//!
|
132
|
+
XMP_PRIVATE static uint64 GetInterfaceID() { return kIPathSegmentID; }
|
133
|
+
|
134
|
+
//!
|
135
|
+
//! @brief Returns the version of the interface.
|
136
|
+
//! \return 32 bit unsigned integer representing the version of the interface.
|
137
|
+
//!
|
138
|
+
XMP_PRIVATE static uint32 GetInterfaceVersion() { return 1; }
|
139
|
+
//! \endcond
|
140
|
+
|
141
|
+
// static factory functions
|
142
|
+
|
143
|
+
// Factories to create the specific segments
|
144
|
+
|
145
|
+
//!
|
146
|
+
//! @brief Creates a normal property path segment.These are essentially all properties (simple, struct and arrays).
|
147
|
+
//! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the property.
|
148
|
+
//! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
|
149
|
+
//! \param[in] name Pointer to a constant char buffer containing local name of the property.
|
150
|
+
//! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
|
151
|
+
//! \return A shared pointer to const \#IPathSegment.
|
152
|
+
//! \attention Throws \#AdobeXMPCommon::pcIError in case
|
153
|
+
//! - pointers to const char buffers are NULL,
|
154
|
+
//! - their content is empty.
|
155
|
+
//!
|
156
|
+
XMP_PRIVATE static spcIPathSegment CreatePropertyPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
|
157
|
+
|
158
|
+
//!
|
159
|
+
//! @brief Creates an array index path segment that denotes a specific element of an array.
|
160
|
+
//! @details Such segments do not have an own name and inherits the namespace from the Array property itself.
|
161
|
+
//! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the property.
|
162
|
+
//! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
|
163
|
+
//! \param[in] index An object of type \#AdobeXMP::sizet containting the index of the array element.
|
164
|
+
//! \return A shared pointer to const \#IPathSegment.
|
165
|
+
//! \attention Throws \#AdobeXMP::pcIError in case
|
166
|
+
//! - pointers to const char buffers are NULL,
|
167
|
+
//! - their content is empty.
|
168
|
+
//!
|
169
|
+
//!
|
170
|
+
XMP_PRIVATE static spcIPathSegment CreateArrayIndexPathSegment( const char * nameSpace, sizet nameSpaceLength, sizet index );
|
171
|
+
|
172
|
+
//!
|
173
|
+
//! @brief Creates a Qualifier path segment, which behaves like a normal property
|
174
|
+
//! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the property.
|
175
|
+
//! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
|
176
|
+
//! \param[in] name Pointer to a constant char buffer containing local name of the property.
|
177
|
+
//! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
|
178
|
+
//! \return A shared pointer to const \#IPathSegment.
|
179
|
+
//! \attention Throws \#AdobeXMPCommon::pcIError in case
|
180
|
+
//! - pointers to const char buffers are NULL,
|
181
|
+
//! - their content is empty.
|
182
|
+
//!
|
183
|
+
XMP_PRIVATE static spcIPathSegment CreateQualifierPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name, sizet nameLength );
|
184
|
+
|
185
|
+
//!
|
186
|
+
//! @brief Creates a path segment that selects a specific qualifier by its value.
|
187
|
+
//! For example a specific language in a alternative array of languages.
|
188
|
+
//! \param[in] nameSpace Pointer to a constant char buffer containing name space URI of the property.
|
189
|
+
//! \param[in] nameSpaceLength Number of characters in nameSpace. In case nameSpace is null terminated set it to \#AdobeXMPCommon::npos.
|
190
|
+
//! \param[in] name Pointer to a constant char buffer containing local name of the property.
|
191
|
+
//! \param[in] nameLength Number of characters in name. In case name is null terminated set it to \#AdobeXMPCommon::npos.
|
192
|
+
//! \param[in] value Pointer to a constant char buffer containing value of the language (xml:lang)
|
193
|
+
//! \param[in] valueLength Number of characters in value. In case value is null terminated set it to \#AdobeXMPCommon::npos.
|
194
|
+
//! \return A shared pointer to const \#IPathSegment.
|
195
|
+
//! \attention Throws #AdobeXMPCommon::pcIError in case
|
196
|
+
//! - pointers to const char buffers are NULL,
|
197
|
+
//! - their content is empty.
|
198
|
+
//!
|
199
|
+
XMP_PRIVATE static spcIPathSegment CreateQualifierSelectorPathSegment( const char * nameSpace, sizet nameSpaceLength, const char * name,
|
200
|
+
sizet nameLength, const char * value, sizet valueLength );
|
201
|
+
|
202
|
+
|
203
|
+
|
204
|
+
protected:
|
205
|
+
//!
|
206
|
+
//! Destructor
|
207
|
+
//!
|
208
|
+
virtual ~IPathSegment_v1() __NOTHROW__ {}
|
209
|
+
|
210
|
+
//! \cond XMP_INTERNAL_DOCUMENTATION
|
211
|
+
virtual pcIUTF8String_base APICALL getNameSpace( pcIError_base & error ) const __NOTHROW__ = 0;
|
212
|
+
virtual pcIUTF8String_base APICALL getName( pcIError_base & error ) const __NOTHROW__ = 0;
|
213
|
+
virtual uint32 APICALL getType( pcIError_base & error ) const __NOTHROW__ = 0;
|
214
|
+
virtual pcIUTF8String_base APICALL getValue( pcIError_base & error ) const __NOTHROW__ = 0;
|
215
|
+
|
216
|
+
#ifdef FRIEND_CLASS_DECLARATION
|
217
|
+
FRIEND_CLASS_DECLARATION();
|
218
|
+
#endif
|
219
|
+
REQ_FRIEND_CLASS_DECLARATION();
|
220
|
+
//! \endcond
|
221
|
+
|
222
|
+
};
|
223
|
+
}
|
224
|
+
|
225
|
+
#endif // __IPathSegment_h__
|