TXMPUtils.hpp

Go to the documentation of this file.
00001 #ifndef __TXMPUtils_hpp__
00002 #define __TXMPUtils_hpp__ 1
00003 
00004 #if ( ! __XMP_hpp__ )
00005     #error "Do not directly include, use XMP.hpp"
00006 #endif
00007 
00008 // =================================================================================================
00009 // ADOBE SYSTEMS INCORPORATED
00010 // Copyright 2002-2007 Adobe Systems Incorporated
00011 // All Rights Reserved
00012 //
00013 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
00014 // of the Adobe license agreement accompanying it.
00015 // =================================================================================================
00016 
00017 //  ================================================================================================
00024 //  ================================================================================================
00025 
00026 //  ================================================================================================
00041 //  ================================================================================================
00042 
00043 template <class tStringObj>
00044 class TXMPUtils {
00045 
00046 public:
00047 
00048     // =============================================================================================
00049     // No constructors or destructor declared or needed
00050     // ================================================
00051 
00052     // =============================================================================================
00053     // =============================================================================================
00054 
00055     //  ============================================================================================
00087 
00088     //  --------------------------------------------------------------------------------------------
00103 
00104     static void
00105     ComposeArrayItemPath ( XMP_StringPtr schemaNS,
00106                            XMP_StringPtr arrayName,
00107                            XMP_Index     itemIndex,
00108                            tStringObj *  fullPath );
00109 
00110     //  --------------------------------------------------------------------------------------------
00126 
00127     static void
00128     ComposeStructFieldPath ( XMP_StringPtr schemaNS,
00129                              XMP_StringPtr structName,
00130                              XMP_StringPtr fieldNS,
00131                              XMP_StringPtr fieldName,
00132                              tStringObj *  fullPath );
00133 
00134     //  --------------------------------------------------------------------------------------------
00152 
00153     static void
00154     ComposeQualifierPath ( XMP_StringPtr schemaNS,
00155                            XMP_StringPtr propName,
00156                            XMP_StringPtr qualNS,
00157                            XMP_StringPtr qualName,
00158                            tStringObj *  fullPath );
00159 
00160     //  --------------------------------------------------------------------------------------------
00184 
00185     static void
00186     ComposeLangSelector ( XMP_StringPtr schemaNS,
00187                           XMP_StringPtr arrayName,
00188                           XMP_StringPtr langName,
00189                           tStringObj *  fullPath );
00190 
00191     //  --------------------------------------------------------------------------------------------
00194 
00195     static void
00196     ComposeLangSelector ( XMP_StringPtr      schemaNS,
00197                           XMP_StringPtr      arrayName,
00198                           const tStringObj & langName,
00199                           tStringObj *       fullPath );
00200 
00201     //  --------------------------------------------------------------------------------------------
00235 
00236     static void
00237     ComposeFieldSelector ( XMP_StringPtr schemaNS,
00238                            XMP_StringPtr arrayName,
00239                            XMP_StringPtr fieldNS,
00240                            XMP_StringPtr fieldName,
00241                            XMP_StringPtr fieldValue,
00242                            tStringObj *  fullPath );
00243 
00244     //  --------------------------------------------------------------------------------------------
00247 
00248     static void
00249     ComposeFieldSelector ( XMP_StringPtr      schemaNS,
00250                            XMP_StringPtr      arrayName,
00251                            XMP_StringPtr      fieldNS,
00252                            XMP_StringPtr      fieldName,
00253                            const tStringObj & fieldValue,
00254                            tStringObj *       fullPath );
00255 
00257 
00258     // =============================================================================================
00259     // =============================================================================================
00260 
00261     //  ============================================================================================
00264 
00265     //  --------------------------------------------------------------------------------------------
00272 
00273     static void
00274     ConvertFromBool ( bool         binValue,
00275                       tStringObj * strValue );
00276 
00277     //  --------------------------------------------------------------------------------------------
00285 
00286     static void
00287     ConvertFromInt ( long          binValue,
00288                      XMP_StringPtr format,
00289                      tStringObj *  strValue );
00290 
00291     static void
00292     ConvertFromInt64 ( long long     binValue,
00293                        XMP_StringPtr format,
00294                        tStringObj *  strValue );
00295 
00296     //  --------------------------------------------------------------------------------------------
00304 
00305     static void
00306     ConvertFromFloat ( double        binValue,
00307                        XMP_StringPtr format,
00308                        tStringObj *  strValue );
00309 
00310     //  --------------------------------------------------------------------------------------------
00339 
00340     static void
00341     ConvertFromDate ( const XMP_DateTime & binValue,
00342                       tStringObj *         strValue );
00343 
00344     //  --------------------------------------------------------------------------------------------
00352 
00353     static bool
00354     ConvertToBool ( XMP_StringPtr strValue );
00355 
00356     //  --------------------------------------------------------------------------------------------
00359 
00360     static bool
00361     ConvertToBool ( const tStringObj & strValue );
00362 
00363     //  --------------------------------------------------------------------------------------------
00369 
00370     static long
00371     ConvertToInt ( XMP_StringPtr strValue );
00372 
00373     //  --------------------------------------------------------------------------------------------
00376 
00377     static long
00378     ConvertToInt ( const tStringObj & strValue );
00379 
00380     //  --------------------------------------------------------------------------------------------
00386 
00387     static long long
00388     ConvertToInt64 ( XMP_StringPtr strValue );
00389 
00390     //  --------------------------------------------------------------------------------------------
00393 
00394     static long long
00395     ConvertToInt64 ( const tStringObj & strValue );
00396 
00397     //  --------------------------------------------------------------------------------------------
00403 
00404     static double
00405     ConvertToFloat ( XMP_StringPtr strValue );
00406 
00407     //  --------------------------------------------------------------------------------------------
00410 
00411     static double
00412     ConvertToFloat ( const tStringObj & strValue );
00413 
00414     //  --------------------------------------------------------------------------------------------
00444 
00445     static void
00446     ConvertToDate ( XMP_StringPtr  strValue,
00447                     XMP_DateTime * binValue );
00448 
00449     //  --------------------------------------------------------------------------------------------
00452 
00453     static void
00454     ConvertToDate ( const tStringObj & strValue,
00455                     XMP_DateTime *     binValue );
00456 
00458 
00459     // =============================================================================================
00460     // =============================================================================================
00461 
00462     //  ============================================================================================
00465 
00466     //  --------------------------------------------------------------------------------------------
00472 
00473     static void
00474     CurrentDateTime ( XMP_DateTime * time );
00475 
00476     //  --------------------------------------------------------------------------------------------
00481 
00482     static void
00483     SetTimeZone ( XMP_DateTime * time );
00484 
00485     //  --------------------------------------------------------------------------------------------
00490 
00491     static void
00492     ConvertToUTCTime ( XMP_DateTime * time );
00493 
00494     //  --------------------------------------------------------------------------------------------
00499 
00500     static void
00501     ConvertToLocalTime ( XMP_DateTime * time );
00502 
00503     //  --------------------------------------------------------------------------------------------
00514 
00515     static int
00516     CompareDateTime ( const XMP_DateTime & left,
00517                       const XMP_DateTime & right );
00518 
00520 
00521     // =============================================================================================
00522     // =============================================================================================
00523 
00524     //  ============================================================================================
00527 
00528     //  --------------------------------------------------------------------------------------------
00536 
00537     static void
00538     EncodeToBase64 ( XMP_StringPtr rawStr,
00539                      XMP_StringLen rawLen,
00540                      tStringObj *  encodedStr );
00541 
00542     //  --------------------------------------------------------------------------------------------
00545 
00546     static void
00547     EncodeToBase64 ( const tStringObj & rawStr,
00548                      tStringObj *       encodedStr );
00549 
00550     //  --------------------------------------------------------------------------------------------
00558 
00559     static void
00560     DecodeFromBase64 ( XMP_StringPtr encodedStr,
00561                        XMP_StringLen encodedLen,
00562                        tStringObj *  rawStr );
00563 
00564     //  --------------------------------------------------------------------------------------------
00567 
00568     static void
00569     DecodeFromBase64 ( const tStringObj & encodedStr,
00570                        tStringObj *       rawStr );
00571 
00573 
00574     // =============================================================================================
00575     // =============================================================================================
00576 
00577     //  ============================================================================================
00582 
00583     //  --------------------------------------------------------------------------------------------
00595 
00596     static void
00597     PackageForJPEG ( const TXMPMeta<tStringObj> & xmpObj,
00598                      tStringObj * standardXMP,
00599                      tStringObj * extendedXMP,
00600                      tStringObj * extendedDigest );
00601 
00602     //  --------------------------------------------------------------------------------------------
00608 
00609     static void
00610     MergeFromJPEG ( TXMPMeta<tStringObj> * fullXMP,
00611                     const TXMPMeta<tStringObj> & extendedXMP );
00612 
00614 
00615     // =============================================================================================
00616     // =============================================================================================
00617 
00618     //  ============================================================================================
00622 
00623     //  --------------------------------------------------------------------------------------------
00644 
00645     static void
00646     CatenateArrayItems ( const TXMPMeta<tStringObj> & xmpObj,
00647                          XMP_StringPtr  schemaNS,
00648                          XMP_StringPtr  arrayName,
00649                          XMP_StringPtr  separator,
00650                          XMP_StringPtr  quotes,
00651                          XMP_OptionBits options,
00652                          tStringObj *   catedStr );
00653 
00654     //  --------------------------------------------------------------------------------------------
00669 
00670     static void
00671     SeparateArrayItems ( TXMPMeta<tStringObj> * xmpObj,
00672                          XMP_StringPtr  schemaNS,
00673                          XMP_StringPtr  arrayName,
00674                          XMP_OptionBits options,
00675                          XMP_StringPtr  catedStr );
00676 
00677     //  --------------------------------------------------------------------------------------------
00680 
00681     static void
00682     SeparateArrayItems ( TXMPMeta<tStringObj> * xmpObj,
00683                          XMP_StringPtr      schemaNS,
00684                          XMP_StringPtr      arrayName,
00685                          XMP_OptionBits     options,
00686                          const tStringObj & catedStr );
00687 
00688     //  --------------------------------------------------------------------------------------------
00719 
00720     static void
00721     RemoveProperties ( TXMPMeta<tStringObj> * xmpObj,
00722                        XMP_StringPtr  schemaNS = 0,
00723                        XMP_StringPtr  propName = 0,
00724                        XMP_OptionBits options = 0 );
00725 
00726     //  --------------------------------------------------------------------------------------------
00800 
00801     static void
00802     AppendProperties ( const TXMPMeta<tStringObj> & source,
00803                        TXMPMeta<tStringObj> *       dest,
00804                        XMP_OptionBits options = 0 );
00805 
00806     //  --------------------------------------------------------------------------------------------
00826 
00827     static void
00828     DuplicateSubtree ( const TXMPMeta<tStringObj> & source,
00829                        TXMPMeta<tStringObj> *       dest,
00830                        XMP_StringPtr  sourceNS,
00831                        XMP_StringPtr  sourceRoot,
00832                        XMP_StringPtr  destNS = 0,
00833                        XMP_StringPtr  destRoot = 0,
00834                        XMP_OptionBits options = 0 );
00835 
00836 
00838 
00839     // =============================================================================================
00840 
00841 };  // class TXMPUtils
00842 
00843 // =================================================================================================
00844 
00845 #endif // __TXMPUtils_hpp__

Generated on Thu May 3 14:54:57 2007 for Adobe XMP Toolkit by  doxygen 1.5.1