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,98 @@
|
|
1
|
+
#ifndef __XMP_hpp__
|
2
|
+
#define __XMP_hpp__ 1
|
3
|
+
|
4
|
+
// =================================================================================================
|
5
|
+
// Copyright 2002 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
|
+
// ================================================================================================
|
13
|
+
/// \file XMP.hpp
|
14
|
+
/// \brief Overall header file for the XMP Toolkit
|
15
|
+
///
|
16
|
+
/// This is an overall header file, the only one that C++ clients should include.
|
17
|
+
///
|
18
|
+
/// The full client API is in the \c TXMPMeta.hpp, \c TXMPIterator.hpp, \c TXMPUtils.hpp headers.
|
19
|
+
/// Read these for information, but do not include them directly. The \c TXMP... classes are C++
|
20
|
+
/// template classes that must be instantiated with a string class such as \c std::string. The
|
21
|
+
/// string class is used to return text strings for property values, serialized XMP, and so on.
|
22
|
+
/// Clients must also compile \c XMP.incl_cpp to ensure that all client-side glue code is generated.
|
23
|
+
/// This should be done by including it in exactly one client source file.
|
24
|
+
///
|
25
|
+
/// There are two C preprocessor macros that simplify use of the templates:
|
26
|
+
///
|
27
|
+
/// \li \c TXMP_STRING_TYPE - Define this as the string class to use with the template. You will get
|
28
|
+
/// the template headers included and typedefs (\c SXMPMeta, and so on) to use in your code.
|
29
|
+
///
|
30
|
+
/// \li \c TXMP_EXPAND_INLINE - Define this as 1 if you want to have the template functions expanded
|
31
|
+
/// inline in your code. Leave it undefined, or defined as 0, to use out-of-line instantiations of
|
32
|
+
/// the template functions. Compiling \c XMP.incl_cpp generates explicit out-of-line
|
33
|
+
/// instantiations if \c TXMP_EXPAND_INLINE is off.
|
34
|
+
///
|
35
|
+
/// The template parameter, class \c tStringObj, must have the following member functions (which
|
36
|
+
/// match those for \c std::string):
|
37
|
+
///
|
38
|
+
/// <pre>
|
39
|
+
/// tStringObj& assign ( const char * str, size_t len )
|
40
|
+
/// size_t size() const
|
41
|
+
/// const char * c_str() const
|
42
|
+
/// </pre>
|
43
|
+
///
|
44
|
+
/// The string class must be suitable for at least UTF-8. This is the encoding used for all general
|
45
|
+
/// values, and is the default encoding for serialized XMP. The string type must also be suitable
|
46
|
+
/// for UTF-16 or UTF-32 if those serialization encodings are used. This mainly means tolerating
|
47
|
+
/// embedded 0 bytes, which \c std::string does.
|
48
|
+
// ================================================================================================
|
49
|
+
|
50
|
+
/// /c XMP_Environment.h must be the first included header.
|
51
|
+
#include "XMP_Environment.h"
|
52
|
+
|
53
|
+
#include "XMP_Version.h"
|
54
|
+
#include "XMP_Const.h"
|
55
|
+
|
56
|
+
#if XMP_WinBuild
|
57
|
+
#if XMP_DebugBuild
|
58
|
+
#pragma warning ( push, 4 )
|
59
|
+
#else
|
60
|
+
#pragma warning ( push, 3 )
|
61
|
+
#endif
|
62
|
+
#pragma warning ( disable : 4702 ) // unreachable code
|
63
|
+
#pragma warning ( disable : 4800 ) // forcing value to bool 'true' or 'false' (performance warning)
|
64
|
+
#endif
|
65
|
+
|
66
|
+
#if defined ( TXMP_STRING_TYPE )
|
67
|
+
|
68
|
+
#include "TXMPMeta.hpp"
|
69
|
+
#include "TXMPIterator.hpp"
|
70
|
+
#include "TXMPUtils.hpp"
|
71
|
+
typedef class TXMPMeta <TXMP_STRING_TYPE> SXMPMeta; // For client convenience.
|
72
|
+
typedef class TXMPIterator <TXMP_STRING_TYPE> SXMPIterator;
|
73
|
+
typedef class TXMPUtils <TXMP_STRING_TYPE> SXMPUtils;
|
74
|
+
#if TXMP_EXPAND_INLINE
|
75
|
+
#error "TXMP_EXPAND_INLINE is not working at present. Please don't use it."
|
76
|
+
#include "client-glue/TXMPMeta.incl_cpp"
|
77
|
+
#include "client-glue/TXMPIterator.incl_cpp"
|
78
|
+
#include "client-glue/TXMPUtils.incl_cpp"
|
79
|
+
#include "client-glue/TXMPFiles.incl_cpp"
|
80
|
+
#endif
|
81
|
+
|
82
|
+
#if XMP_INCLUDE_XMPFILES
|
83
|
+
#include "TXMPFiles.hpp" // ! Needs typedef for SXMPMeta.
|
84
|
+
typedef class TXMPFiles <TXMP_STRING_TYPE> SXMPFiles;
|
85
|
+
#if TXMP_EXPAND_INLINE
|
86
|
+
#include "client-glue/TXMPFiles.incl_cpp"
|
87
|
+
#endif
|
88
|
+
#endif
|
89
|
+
|
90
|
+
#endif // TXMP_STRING_TYPE
|
91
|
+
|
92
|
+
#if XMP_WinBuild
|
93
|
+
#pragma warning ( pop )
|
94
|
+
#endif
|
95
|
+
|
96
|
+
// =================================================================================================
|
97
|
+
|
98
|
+
#endif // __XMP_hpp__
|
@@ -0,0 +1,69 @@
|
|
1
|
+
#ifndef __XMP_incl_cpp__
|
2
|
+
#define __XMP_incl_cpp__ 1
|
3
|
+
|
4
|
+
// =================================================================================================
|
5
|
+
// ADOBE SYSTEMS INCORPORATED
|
6
|
+
// Copyright 2002 Adobe Systems Incorporated
|
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
|
+
// ================================================================================================
|
14
|
+
/// \file XMP.incl_cpp
|
15
|
+
/// \brief Overall client glue file for the XMP toolkit.
|
16
|
+
///
|
17
|
+
/// This is an overall client source file of XMP toolkit glue, the only XMP-specific one that
|
18
|
+
/// clients should build in projects. This ensures that all of the client-side glue code for the
|
19
|
+
/// XMP toolkit gets compiled.
|
20
|
+
///
|
21
|
+
/// You cannot compile this file directly, because the template's string type must be declared and
|
22
|
+
/// only the client can do that. Instead, include this in some other source file. For example,
|
23
|
+
/// to use <tt>std::string</tt> you only need these two lines:
|
24
|
+
///
|
25
|
+
/// \code
|
26
|
+
/// #include <string>
|
27
|
+
/// #include "XMP.incl_cpp"
|
28
|
+
/// \endcode
|
29
|
+
|
30
|
+
|
31
|
+
#include "XMP.hpp" // ! This must be the first include!
|
32
|
+
|
33
|
+
#define XMP_ClientBuild 1
|
34
|
+
|
35
|
+
#if XMP_WinBuild
|
36
|
+
#if XMP_DebugBuild
|
37
|
+
#pragma warning ( push, 4 )
|
38
|
+
#else
|
39
|
+
#pragma warning ( push, 3 )
|
40
|
+
#endif
|
41
|
+
|
42
|
+
#pragma warning ( disable : 4127 ) // conditional expression is constant
|
43
|
+
#pragma warning ( disable : 4189 ) // local variable is initialized but not referenced
|
44
|
+
#pragma warning ( disable : 4702 ) // unreachable code
|
45
|
+
#pragma warning ( disable : 4800 ) // forcing value to bool 'true' or 'false' (performance warning)
|
46
|
+
#endif
|
47
|
+
|
48
|
+
#if defined ( TXMP_STRING_TYPE ) && (! TXMP_EXPAND_INLINE)
|
49
|
+
|
50
|
+
// We're using a single out of line instantiation. Do it here.
|
51
|
+
|
52
|
+
#include "client-glue/TXMPMeta.incl_cpp"
|
53
|
+
#include "client-glue/TXMPIterator.incl_cpp"
|
54
|
+
#include "client-glue/TXMPUtils.incl_cpp"
|
55
|
+
template class TXMPMeta <TXMP_STRING_TYPE>;
|
56
|
+
template class TXMPIterator <TXMP_STRING_TYPE>;
|
57
|
+
template class TXMPUtils <TXMP_STRING_TYPE>;
|
58
|
+
#if XMP_INCLUDE_XMPFILES
|
59
|
+
#include "client-glue/TXMPFiles.incl_cpp"
|
60
|
+
template class TXMPFiles <TXMP_STRING_TYPE>;
|
61
|
+
#endif
|
62
|
+
|
63
|
+
#endif
|
64
|
+
|
65
|
+
#if XMP_WinBuild
|
66
|
+
#pragma warning ( pop )
|
67
|
+
#endif
|
68
|
+
|
69
|
+
#endif // __XMP_incl_cpp__
|
@@ -0,0 +1,225 @@
|
|
1
|
+
//!
|
2
|
+
//! @file IConfigurable.h
|
3
|
+
//!
|
4
|
+
|
5
|
+
#ifndef IConfigurable_h__
|
6
|
+
#define IConfigurable_h__ 1
|
7
|
+
|
8
|
+
// =================================================================================================
|
9
|
+
// Copyright Adobe
|
10
|
+
// Copyright 2014 Adobe
|
11
|
+
// All Rights Reserved
|
12
|
+
//
|
13
|
+
// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
|
14
|
+
// of the Adobe license agreement accompanying it.
|
15
|
+
// =================================================================================================
|
16
|
+
|
17
|
+
#include "XMPCommon/XMPCommonFwdDeclarations.h"
|
18
|
+
|
19
|
+
namespace AdobeXMPCommon {
|
20
|
+
|
21
|
+
//!
|
22
|
+
//! \brief Interface that allows to attach various key-value parameters to the underlying object.
|
23
|
+
//!
|
24
|
+
//! \details Key is an unsigned 64-bit integer value which can be a char buffer of eight characters also.
|
25
|
+
//! \note For all value types except user data ( const void * ) or char buffer ( const char * ) a copy is made
|
26
|
+
//! and is stored, so the scope is maintained internally. But for user data ( const void * ) or char buffer
|
27
|
+
//! ( const char * ) its clients responsibility to make sure these pointers remain valid through out the life
|
28
|
+
//! span of the object or objects derived from it.
|
29
|
+
//!
|
30
|
+
class XMP_PUBLIC IConfigurable
|
31
|
+
{
|
32
|
+
public:
|
33
|
+
|
34
|
+
//!
|
35
|
+
//! @brief Indicates various types of parameter values.
|
36
|
+
//!
|
37
|
+
typedef enum {
|
38
|
+
//!< Data type is none.
|
39
|
+
kDTNone = 0,
|
40
|
+
//!< Data type is boolean.
|
41
|
+
kDTBool = 1 << 0,
|
42
|
+
//!< Data type is unsigned 64 bit integer.
|
43
|
+
kDTUint64 = 1 << 1,
|
44
|
+
//!< Data type is signed 64 bit integer.
|
45
|
+
kDTInt64 = 1 << 2,
|
46
|
+
//!< Data type is character.
|
47
|
+
kDTChar = 1 << 3,
|
48
|
+
//!< Data type is double.
|
49
|
+
kDTDouble = 1 << 4,
|
50
|
+
//!< Data type is char buffer.
|
51
|
+
kDTConstCharBuffer = 1 << 5,
|
52
|
+
//!< Data type is user data ( pointer to const void ).
|
53
|
+
kDTConstVoidPtr = 1 << 6,
|
54
|
+
|
55
|
+
//!< Maximum value this enum can hold.
|
56
|
+
kDTAll = 0xFFFFFFFF
|
57
|
+
} eDataType;
|
58
|
+
|
59
|
+
//!
|
60
|
+
//! @{
|
61
|
+
//! @brief Add/Change a value of a parameter.
|
62
|
+
//! \param[in] key An unsigned 64 bit integer value indicating the key.
|
63
|
+
//! \param[in] value New value of the parameter.
|
64
|
+
//! \attention Error is thrown in case
|
65
|
+
//! - the previous type of value associated with key is of different type.
|
66
|
+
//! - the type of value associated with key is not as expected.
|
67
|
+
//!
|
68
|
+
virtual void APICALL SetParameter( const uint64 & key, bool value ) = 0;
|
69
|
+
virtual void APICALL SetParameter( const uint64 & key, uint64 value ) = 0;
|
70
|
+
virtual void APICALL SetParameter( const uint64 & key, int64 value ) = 0;
|
71
|
+
virtual void APICALL SetParameter( const uint64 & key, double value ) = 0;
|
72
|
+
virtual void APICALL SetParameter( const uint64 & key, char value ) = 0;
|
73
|
+
virtual void APICALL SetParameter( const uint64 & key, const char * value ) = 0;
|
74
|
+
virtual void APICALL SetParameter( const uint64 & key, const void * value ) = 0;
|
75
|
+
//! @}
|
76
|
+
|
77
|
+
//!
|
78
|
+
//! @brief Removes a particular parameter if present.
|
79
|
+
//! \param[in] key An unsigned 64 bit integer value indicating the key.
|
80
|
+
//! \return True in case key was present and is deleted.
|
81
|
+
//! \attention Error is thrown in case
|
82
|
+
//! - key is a must have for the underlying object.
|
83
|
+
//!
|
84
|
+
virtual bool APICALL RemoveParameter( const uint64 & key ) = 0;
|
85
|
+
|
86
|
+
//!
|
87
|
+
//! @{
|
88
|
+
//! @brief Get the value of a parameter if present.
|
89
|
+
//! \param[in] key An unsigned 64 bit integer value indicating the key.
|
90
|
+
//! \param[out] value The value of the parameter.
|
91
|
+
//! \return false if no such parameter is present, otherwise true.
|
92
|
+
//! \attention Error is thrown in case the type of the parameter is not
|
93
|
+
//! the one client is asking for.
|
94
|
+
//!
|
95
|
+
virtual bool APICALL GetParameter( const uint64 & key, bool & value ) const = 0;
|
96
|
+
virtual bool APICALL GetParameter( const uint64 & key, uint64 & value ) const = 0;
|
97
|
+
virtual bool APICALL GetParameter( const uint64 & key, int64 & value ) const = 0;
|
98
|
+
virtual bool APICALL GetParameter( const uint64 & key, double & value ) const = 0;
|
99
|
+
virtual bool APICALL GetParameter( const uint64 & key, char & value ) const = 0;
|
100
|
+
virtual bool APICALL GetParameter( const uint64 & key, const char * & value ) const = 0;
|
101
|
+
virtual bool APICALL GetParameter( const uint64 & key, const void * & value ) const = 0;
|
102
|
+
//! @}
|
103
|
+
|
104
|
+
//!
|
105
|
+
//! @brief Get all the keys of the parameters associated with the object.
|
106
|
+
//! \details Provide a std::vector containing the keys of all the parameters associated with the object.
|
107
|
+
//! \return A std::vector of unsigned 64 bit integers.
|
108
|
+
//!
|
109
|
+
virtual std::vector< uint64 > APICALL GetAllParameters() const = 0;
|
110
|
+
|
111
|
+
//!
|
112
|
+
//! @brief Get the number of parameters associated with the object.
|
113
|
+
//!
|
114
|
+
virtual sizet APICALL Size() const __NOTHROW__ = 0;
|
115
|
+
|
116
|
+
//!
|
117
|
+
//! @brief Get the value type of a particular parameter.
|
118
|
+
//! \param[in] key An unsigned 64 bit integer value indicating the key.
|
119
|
+
//! \return A value of type eDataType indicating the type of value the parameter is supposed to hold.
|
120
|
+
//! \note return kDTNone in case no such key is associated with the object.
|
121
|
+
//!
|
122
|
+
virtual eDataType APICALL GetDataType( const uint64 & key ) const = 0;
|
123
|
+
|
124
|
+
//!
|
125
|
+
//! @brief Utility function to convert character buffer ( maximum of 8 characters ) to uint64 representation.
|
126
|
+
//! \param[in] key A pointer to const char buffer, maximum characters used are 8 provided there is no
|
127
|
+
//! null character present in the buffer between 1st to 8 characters, otherwise characters upto NULL
|
128
|
+
//! character (excluding NULL) are read.
|
129
|
+
//! \return A 64-bit unsigned integer representing the first 8 characters of the character buffer.
|
130
|
+
//! \note Return 0 in case key is NULL.
|
131
|
+
//!
|
132
|
+
static uint64 ConvertCharBufferToUint64( const char * key ) {
|
133
|
+
uint64 keyAsuint64 = 0;
|
134
|
+
if ( key ) {
|
135
|
+
for ( int i = 0; i < 8 && key[ i ] != '\0'; i++ ) {
|
136
|
+
keyAsuint64 = keyAsuint64 << 8;
|
137
|
+
keyAsuint64 += ( unsigned char ) key[ i ];
|
138
|
+
}
|
139
|
+
}
|
140
|
+
return keyAsuint64;
|
141
|
+
}
|
142
|
+
|
143
|
+
//!
|
144
|
+
//! @brief A union data type to store all kind of values.
|
145
|
+
//!
|
146
|
+
union CombinedDataValue {
|
147
|
+
bool boolValue;
|
148
|
+
uint32 uint32Value;
|
149
|
+
uint64 uint64Value;
|
150
|
+
int64 int64Value;
|
151
|
+
double doubleValue;
|
152
|
+
char charValue;
|
153
|
+
const char * constCharPtrValue;
|
154
|
+
const void * constVoidPtrValue;
|
155
|
+
};
|
156
|
+
|
157
|
+
protected:
|
158
|
+
//! \cond XMP_INTERNAL_DOCUMENTATION
|
159
|
+
// all safe functions
|
160
|
+
virtual void APICALL setParameter( const uint64 & key, uint32 dataType, const CombinedDataValue & dataValue, pcIError_base & error ) __NOTHROW__ = 0;
|
161
|
+
virtual uint32 APICALL removeParameter( const uint64 & key, pcIError_base & error ) __NOTHROW__ = 0;
|
162
|
+
virtual uint32 APICALL getParameter( const uint64 & key, uint32 dataType, CombinedDataValue & value, pcIError_base & error ) const __NOTHROW__ = 0;
|
163
|
+
virtual void APICALL getAllParameters( uint64 * array, sizet count ) const __NOTHROW__ = 0;
|
164
|
+
virtual uint32 APICALL getDataType( const uint64 & key, pcIError_base & error ) const __NOTHROW__ = 0;
|
165
|
+
//! \endcond
|
166
|
+
|
167
|
+
protected:
|
168
|
+
//!
|
169
|
+
//! protected Virtual Destructor
|
170
|
+
//!
|
171
|
+
virtual ~IConfigurable() __NOTHROW__ {};
|
172
|
+
|
173
|
+
friend class IConfigurableProxy;
|
174
|
+
#ifdef FRIEND_CLASS_DECLARATION
|
175
|
+
FRIEND_CLASS_DECLARATION();
|
176
|
+
#endif
|
177
|
+
REQ_FRIEND_CLASS_DECLARATION();
|
178
|
+
};
|
179
|
+
|
180
|
+
//! \cond XMP_INTERNAL_DOCUMENTATION
|
181
|
+
#if !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
|
182
|
+
|
183
|
+
class IConfigurableProxy
|
184
|
+
: public virtual IConfigurable {
|
185
|
+
public:
|
186
|
+
IConfigurableProxy( pIConfigurable configurable );
|
187
|
+
virtual void APICALL SetParameter( const uint64 & key, bool value );
|
188
|
+
virtual void APICALL SetParameter( const uint64 & key, uint64 value );
|
189
|
+
virtual void APICALL SetParameter( const uint64 & key, int64 value );
|
190
|
+
virtual void APICALL SetParameter( const uint64 & key, double value );
|
191
|
+
virtual void APICALL SetParameter( const uint64 & key, char value );
|
192
|
+
virtual void APICALL SetParameter( const uint64 & key, const char * value );
|
193
|
+
virtual void APICALL SetParameter( const uint64 & key, const void * value );
|
194
|
+
virtual void APICALL setParameter( const uint64 & key, uint32 dataType, const CombinedDataValue & dataValue, pcIError_base & error ) __NOTHROW__;
|
195
|
+
|
196
|
+
virtual bool APICALL RemoveParameter( const uint64 & key );
|
197
|
+
virtual uint32 APICALL removeParameter( const uint64 & key, pcIError_base & error ) __NOTHROW__;
|
198
|
+
|
199
|
+
virtual bool APICALL GetParameter( const uint64 & key, bool & value ) const;
|
200
|
+
virtual bool APICALL GetParameter( const uint64 & key, uint64 & value ) const;
|
201
|
+
virtual bool APICALL GetParameter( const uint64 & key, int64 & value ) const;
|
202
|
+
virtual bool APICALL GetParameter( const uint64 & key, double & value ) const;
|
203
|
+
virtual bool APICALL GetParameter( const uint64 & key, char & value ) const;
|
204
|
+
virtual bool APICALL GetParameter( const uint64 & key, const char * & value ) const;
|
205
|
+
virtual bool APICALL GetParameter( const uint64 & key, const void * & value ) const;
|
206
|
+
virtual uint32 APICALL getParameter( const uint64 & key, uint32 dataType, CombinedDataValue & value, pcIError_base & error ) const __NOTHROW__;
|
207
|
+
|
208
|
+
virtual std::vector< uint64 > APICALL GetAllParameters() const;
|
209
|
+
virtual void APICALL getAllParameters( uint64 * array, sizet count ) const __NOTHROW__;
|
210
|
+
|
211
|
+
virtual sizet APICALL Size() const __NOTHROW__;
|
212
|
+
|
213
|
+
virtual eDataType APICALL GetDataType( const uint64 & key ) const;
|
214
|
+
virtual uint32 APICALL getDataType( const uint64 & key, pcIError_base & error ) const __NOTHROW__;
|
215
|
+
|
216
|
+
protected:
|
217
|
+
pIConfigurable mConfigurableRawPtr;
|
218
|
+
};
|
219
|
+
|
220
|
+
#endif // !BUILDING_XMPCOMMON_LIB && !SOURCE_COMPILING_XMP_ALL
|
221
|
+
//! \endcond
|
222
|
+
|
223
|
+
}
|
224
|
+
|
225
|
+
#endif // IConfigurable_h__
|
@@ -0,0 +1,71 @@
|
|
1
|
+
#ifndef __ISharedObject_h__
|
2
|
+
#define __ISharedObject_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/XMPCommonFwdDeclarations.h"
|
13
|
+
|
14
|
+
namespace AdobeXMPCommon {
|
15
|
+
|
16
|
+
//!
|
17
|
+
//! \brief Interface that serves as the base interface of all the externally exposed interfaces.
|
18
|
+
//! \details This allows all interfaces to be used as shared pointers so as to reduce the burden of
|
19
|
+
//! scope management from the client or library code. It makes the heap allocated object to be self manged in
|
20
|
+
//! in terms of memory and life. This provides functions so as to inform the actual object when a shared pointer
|
21
|
+
//! is created or destroyed and appropriately release the memory during the last call to Release.
|
22
|
+
//! \attention Supports Multi-threading at object level through use of Atomic Variables.
|
23
|
+
//! \note Any interface which inherits from this needs to make sure that its destructor is declared protected
|
24
|
+
//! so that unknowingly also client of this object cannot call delete on the object.
|
25
|
+
//!
|
26
|
+
|
27
|
+
class XMP_PUBLIC ISharedObject {
|
28
|
+
public:
|
29
|
+
|
30
|
+
//!
|
31
|
+
//! @brief Called by the clients of the object to indicate that he has acquired the shared ownership of the object.
|
32
|
+
//!
|
33
|
+
virtual void APICALL Acquire() const __NOTHROW__ = 0;
|
34
|
+
|
35
|
+
//!
|
36
|
+
//! @brief Called by the clients of the object to indicate he has released his shared ownership of the object.
|
37
|
+
//! If this being the last client than this function should call Destroy to delete and release the memory.
|
38
|
+
//!
|
39
|
+
virtual void APICALL Release() const __NOTHROW__ = 0;
|
40
|
+
|
41
|
+
//! @{
|
42
|
+
//! \cond XMP_INTERNAL_DOCUMENTATION
|
43
|
+
//! Return the pointer to the internal Shared Object interface
|
44
|
+
//! \return either a const or non const pointer to internal ISharedObject_I interface.
|
45
|
+
virtual AdobeXMPCommon_Int::pISharedObject_I APICALL GetISharedObject_I() __NOTHROW__ = 0;
|
46
|
+
|
47
|
+
XMP_PRIVATE AdobeXMPCommon_Int::pcISharedObject_I GetISharedObject_I() const __NOTHROW__ {
|
48
|
+
return const_cast< ISharedObject * >( this )->GetISharedObject_I();
|
49
|
+
}
|
50
|
+
//! \endcond
|
51
|
+
//! @}
|
52
|
+
|
53
|
+
protected:
|
54
|
+
|
55
|
+
//!
|
56
|
+
//! protected virtual destructor.
|
57
|
+
//!
|
58
|
+
virtual ~ISharedObject() __NOTHROW__ = 0;
|
59
|
+
|
60
|
+
#ifdef FRIEND_CLASS_DECLARATION
|
61
|
+
FRIEND_CLASS_DECLARATION();
|
62
|
+
#endif
|
63
|
+
|
64
|
+
REQ_FRIEND_CLASS_DECLARATION();
|
65
|
+
};
|
66
|
+
|
67
|
+
inline ISharedObject::~ISharedObject() __NOTHROW__ { }
|
68
|
+
|
69
|
+
};
|
70
|
+
|
71
|
+
#endif // __ISharedObject_h__
|
@@ -0,0 +1,76 @@
|
|
1
|
+
//! @file IThreadSafe.h
|
2
|
+
#ifndef IThreadSafe_h__
|
3
|
+
#define IThreadSafe_h__ 1
|
4
|
+
|
5
|
+
//
|
6
|
+
// =================================================================================================
|
7
|
+
// Copyright Adobe
|
8
|
+
// Copyright 2015 Adobe
|
9
|
+
// All Rights Reserved
|
10
|
+
//
|
11
|
+
// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
|
12
|
+
// of the Adobe license agreement accompanying it.
|
13
|
+
// =================================================================================================
|
14
|
+
//
|
15
|
+
|
16
|
+
#include "XMPCommon/XMPCommonFwdDeclarations.h"
|
17
|
+
|
18
|
+
namespace AdobeXMPCommon {
|
19
|
+
|
20
|
+
//!
|
21
|
+
//! \brief Interface that serves as the base interface for all the externally exposed interfaces which needs to provide client configurable thread safety.
|
22
|
+
//!
|
23
|
+
//! \attention In case client has disabled thread safety at the module level these functions will
|
24
|
+
//! have no use.
|
25
|
+
//! \note By default all the objects created are not thread safe.
|
26
|
+
//!
|
27
|
+
class XMP_PUBLIC IThreadSafe
|
28
|
+
{
|
29
|
+
public:
|
30
|
+
|
31
|
+
//!
|
32
|
+
//! @brief Enables the thread safety on an object.
|
33
|
+
//! @details After calling this function the object can be used across multiple threads.
|
34
|
+
//!
|
35
|
+
virtual void APICALL EnableThreadSafety() const __NOTHROW__ = 0;
|
36
|
+
|
37
|
+
//!
|
38
|
+
//! @brief Disables the thread safety on an object.
|
39
|
+
//! @details After calling this function the object should not be used across multiple threads.
|
40
|
+
//!
|
41
|
+
virtual void APICALL DisableThreadSafety() const __NOTHROW__ = 0;
|
42
|
+
|
43
|
+
//!
|
44
|
+
//! @brief Informs whether object can be used across multiple threads or not.
|
45
|
+
//! \returns bool value; true in case object can be used across multiple threads, false
|
46
|
+
//! otherwise.
|
47
|
+
//!
|
48
|
+
virtual bool APICALL IsThreadSafe() const = 0;
|
49
|
+
|
50
|
+
//! @{
|
51
|
+
//! \cond XMP_INTERNAL_DOCUMENTATION
|
52
|
+
//! @brief Return the pointer to the internal Thread Safe interface
|
53
|
+
//! \return either a const or non const pointer to internal IThreadSafe_I interface.
|
54
|
+
virtual AdobeXMPCommon_Int::pIThreadSafe_I APICALL GetIThreadSafe_I() __NOTHROW__ = 0;
|
55
|
+
|
56
|
+
XMP_PRIVATE AdobeXMPCommon_Int::pcIThreadSafe_I GetIThreadSafe_I() const __NOTHROW__ {
|
57
|
+
return const_cast< IThreadSafe * >( this )->GetIThreadSafe_I();
|
58
|
+
}
|
59
|
+
virtual ~IThreadSafe(){}
|
60
|
+
//! \endcond
|
61
|
+
//! @}
|
62
|
+
|
63
|
+
protected:
|
64
|
+
//! \cond XMP_INTERNAL_DOCUMENTATION
|
65
|
+
//! @brief all safe functions
|
66
|
+
virtual uint32 APICALL isThreadSafe() const __NOTHROW__ = 0;
|
67
|
+
//! \endcond
|
68
|
+
|
69
|
+
#ifdef FRIEND_CLASS_DECLARATION
|
70
|
+
FRIEND_CLASS_DECLARATION();
|
71
|
+
#endif
|
72
|
+
REQ_FRIEND_CLASS_DECLARATION();
|
73
|
+
};
|
74
|
+
|
75
|
+
}
|
76
|
+
#endif // IThreadSafe_h__
|
@@ -0,0 +1,71 @@
|
|
1
|
+
#ifndef IVersionable_h__
|
2
|
+
#define IVersionable_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
|
+
|
15
|
+
namespace AdobeXMPCommon {
|
16
|
+
|
17
|
+
//!
|
18
|
+
//! \brief Interface that serves as the base interface for all the externally exposed interfaces
|
19
|
+
//! which needs to provide evolving versions of the interface.
|
20
|
+
//! @details Provide pointer to interface requested by client.
|
21
|
+
//! Requirements on the class type
|
22
|
+
//! -# Need to implement a function GetInterfaceID() returning a unique id for the
|
23
|
+
//! interface. Only required to be implemented in first version of the interface.
|
24
|
+
//! -# Need to implement a function GetVersionNumber() returning the version of the
|
25
|
+
//! interface. Required to implemented by each version of the interface.
|
26
|
+
//!
|
27
|
+
|
28
|
+
class XMP_PUBLIC IVersionable {
|
29
|
+
public:
|
30
|
+
|
31
|
+
//!
|
32
|
+
//! @brief Get the raw pointer to an interface object implementing the requested version.
|
33
|
+
//! \return a raw pointer to an interface object implementing the requested version.
|
34
|
+
//! \attention In case a particular version number is not supported than an error is
|
35
|
+
//! thrown.
|
36
|
+
//!
|
37
|
+
template< typename requestedInterface >
|
38
|
+
XMP_PRIVATE requestedInterface * GetInterfacePointer() {
|
39
|
+
pvoid ptr = GetInterfacePointer( requestedInterface::GetInterfaceID(),
|
40
|
+
requestedInterface::GetInterfaceVersion() );
|
41
|
+
return static_cast< requestedInterface * >( ptr );
|
42
|
+
}
|
43
|
+
|
44
|
+
//!
|
45
|
+
//! @brief Get the raw pointer to a const interface object implementing the requested version.
|
46
|
+
//! \return a raw pointer to a const interface object implementing the requested version.
|
47
|
+
//! \attention In case a particular version number is not supported than an error is
|
48
|
+
//! thrown.
|
49
|
+
//!
|
50
|
+
template< typename requestedInterface >
|
51
|
+
XMP_PRIVATE const requestedInterface * GetInterfacePointer() const {
|
52
|
+
return const_cast< IVersionable * >( this )->GetInterfacePointer< requestedInterface >();
|
53
|
+
}
|
54
|
+
|
55
|
+
protected:
|
56
|
+
virtual ~IVersionable() {}
|
57
|
+
//! \cond XMP_INTERNAL_DOCUMENTATION
|
58
|
+
virtual pvoid APICALL GetInterfacePointer( uint64 interfaceID, uint32 interfaceVersion ) = 0;
|
59
|
+
// all safe functions
|
60
|
+
virtual pvoid APICALL getInterfacePointer( uint64 interfaceID, uint32 interfaceVersion, pcIError_base & error ) __NOTHROW__ = 0;
|
61
|
+
//! \endcond
|
62
|
+
|
63
|
+
#ifdef FRIEND_CLASS_DECLARATION
|
64
|
+
FRIEND_CLASS_DECLARATION();
|
65
|
+
#endif
|
66
|
+
REQ_FRIEND_CLASS_DECLARATION();
|
67
|
+
};
|
68
|
+
|
69
|
+
}
|
70
|
+
|
71
|
+
#endif // IVersionable_h__
|