summaryrefslogtreecommitdiff
path: root/gpr/source/lib/xmp_core/XMPUtils.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'gpr/source/lib/xmp_core/XMPUtils.hpp')
-rw-r--r--gpr/source/lib/xmp_core/XMPUtils.hpp198
1 files changed, 198 insertions, 0 deletions
diff --git a/gpr/source/lib/xmp_core/XMPUtils.hpp b/gpr/source/lib/xmp_core/XMPUtils.hpp
new file mode 100644
index 0000000..1c99041
--- /dev/null
+++ b/gpr/source/lib/xmp_core/XMPUtils.hpp
@@ -0,0 +1,198 @@
+#ifndef __XMPUtils_hpp__
+#define __XMPUtils_hpp__
+
+// =================================================================================================
+// Copyright 2003 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
+// of the Adobe license agreement accompanying it.
+// =================================================================================================
+
+#include "public/include/XMP_Environment.h"
+#include "public/include/XMP_Const.h"
+
+#include "XMPMeta.hpp"
+#include "XMPCore_Impl.hpp"
+#include "public/include/client-glue/WXMPUtils.hpp"
+
+// -------------------------------------------------------------------------------------------------
+
+class XMPUtils {
+public:
+
+ static bool
+ Initialize(); // ! For internal use only!
+
+ static void
+ Terminate() RELEASE_NO_THROW; // ! For internal use only!
+
+ // ---------------------------------------------------------------------------------------------
+
+ static void
+ ComposeArrayItemPath ( XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_Index itemIndex,
+ XMP_VarString * fullPath );
+
+ static void
+ ComposeStructFieldPath ( XMP_StringPtr schemaNS,
+ XMP_StringPtr structName,
+ XMP_StringPtr fieldNS,
+ XMP_StringPtr fieldName,
+ XMP_VarString * fullPath );
+
+ static void
+ ComposeQualifierPath ( XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_StringPtr qualNS,
+ XMP_StringPtr qualName,
+ XMP_VarString * fullPath );
+
+ static void
+ ComposeLangSelector ( XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_StringPtr langName,
+ XMP_VarString * fullPath );
+
+ static void
+ ComposeFieldSelector ( XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_StringPtr fieldNS,
+ XMP_StringPtr fieldName,
+ XMP_StringPtr fieldValue,
+ XMP_VarString * fullPath );
+
+ // ---------------------------------------------------------------------------------------------
+
+ static void
+ ConvertFromBool ( bool binValue,
+ XMP_VarString * strValue );
+
+ static void
+ ConvertFromInt ( XMP_Int32 binValue,
+ XMP_StringPtr format,
+ XMP_VarString * strValue );
+
+ static void
+ ConvertFromInt64 ( XMP_Int64 binValue,
+ XMP_StringPtr format,
+ XMP_VarString * strValue );
+
+ static void
+ ConvertFromFloat ( double binValue,
+ XMP_StringPtr format,
+ XMP_VarString * strValue );
+
+ static void
+ ConvertFromDate ( const XMP_DateTime & binValue,
+ XMP_VarString * strValue );
+
+ // ---------------------------------------------------------------------------------------------
+
+ static bool
+ ConvertToBool ( XMP_StringPtr strValue );
+
+ static XMP_Int32
+ ConvertToInt ( XMP_StringPtr strValue );
+
+ static XMP_Int64
+ ConvertToInt64 ( XMP_StringPtr strValue );
+
+ static double
+ ConvertToFloat ( XMP_StringPtr strValue );
+
+ static void
+ ConvertToDate ( XMP_StringPtr strValue,
+ XMP_DateTime * binValue );
+
+ // ---------------------------------------------------------------------------------------------
+
+ static void
+ CurrentDateTime ( XMP_DateTime * time );
+
+ static void
+ SetTimeZone ( XMP_DateTime * time );
+
+ static void
+ ConvertToUTCTime ( XMP_DateTime * time );
+
+ static void
+ ConvertToLocalTime ( XMP_DateTime * time );
+
+ static int
+ CompareDateTime ( const XMP_DateTime & left,
+ const XMP_DateTime & right );
+ // ---------------------------------------------------------------------------------------------
+
+ static void
+ EncodeToBase64 ( XMP_StringPtr rawStr,
+ XMP_StringLen rawLen,
+ XMP_VarString * encodedStr );
+
+ static void
+ DecodeFromBase64 ( XMP_StringPtr encodedStr,
+ XMP_StringLen encodedLen,
+ XMP_VarString * rawStr );
+
+ // ---------------------------------------------------------------------------------------------
+
+ static void
+ PackageForJPEG ( const XMPMeta & xmpObj,
+ XMP_VarString * stdStr,
+ XMP_VarString * extStr,
+ XMP_VarString * digestStr );
+
+ static void
+ MergeFromJPEG ( XMPMeta * fullXMP,
+ const XMPMeta & extendedXMP );
+
+ // ---------------------------------------------------------------------------------------------
+
+ static void
+ CatenateArrayItems ( const XMPMeta & xmpObj,
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_StringPtr separator,
+ XMP_StringPtr quotes,
+ XMP_OptionBits options,
+ XMP_VarString * catedStr );
+
+ static void
+ SeparateArrayItems ( XMPMeta * xmpObj,
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr arrayName,
+ XMP_OptionBits options,
+ XMP_StringPtr catedStr );
+
+ static void
+ ApplyTemplate ( XMPMeta * workingXMP,
+ const XMPMeta & templateXMP,
+ XMP_OptionBits actions );
+
+ static void
+ RemoveProperties ( XMPMeta * xmpObj,
+ XMP_StringPtr schemaNS,
+ XMP_StringPtr propName,
+ XMP_OptionBits options );
+
+ static void
+ DuplicateSubtree ( const XMPMeta & source,
+ XMPMeta * dest,
+ XMP_StringPtr sourceNS,
+ XMP_StringPtr sourceRoot,
+ XMP_StringPtr destNS,
+ XMP_StringPtr destRoot,
+ XMP_OptionBits options );
+
+ // ---------------------------------------------------------------------------------------------
+
+ static std::string& Trim(std::string& string);
+
+ static std::string * WhiteSpaceStrPtr;
+
+}; // XMPUtils
+
+// =================================================================================================
+
+#endif // __XMPUtils_hpp__