00001 #ifndef __TXMPIterator_hpp__ 00002 #define __TXMPIterator_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 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 // ================================================================================================= 00075 // ================================================================================================= 00076 00077 #include "client-glue/WXMPIterator.hpp" 00078 00079 template <class tStringObj> class TXMPIterator { 00080 00081 public: 00082 00083 // --------------------------------------------------------------------------------------------- 00090 00091 void operator= ( const TXMPIterator<tStringObj> & rhs ); 00092 00093 // --------------------------------------------------------------------------------------------- 00099 00100 TXMPIterator ( const TXMPIterator<tStringObj> & original ); 00101 00102 // --------------------------------------------------------------------------------------------- 00125 00126 TXMPIterator ( const TXMPMeta<tStringObj> & xmpObj, 00127 XMP_StringPtr schemaNS, 00128 XMP_StringPtr propName, 00129 XMP_OptionBits options = 0 ); 00130 00131 // --------------------------------------------------------------------------------------------- 00150 00151 TXMPIterator ( const TXMPMeta<tStringObj> & xmpObj, 00152 XMP_StringPtr schemaNS, 00153 XMP_OptionBits options = 0 ); 00154 00155 // --------------------------------------------------------------------------------------------- 00171 00172 TXMPIterator ( const TXMPMeta<tStringObj> & xmpObj, 00173 XMP_OptionBits options = 0 ); 00174 00175 // --------------------------------------------------------------------------------------------- 00177 00178 TXMPIterator ( XMP_StringPtr schemaNS, 00179 XMP_StringPtr propName, 00180 XMP_OptionBits options ); 00181 00182 // --------------------------------------------------------------------------------------------- 00184 00185 virtual ~TXMPIterator() throw(); 00186 00187 // --------------------------------------------------------------------------------------------- 00207 00208 bool Next ( tStringObj * schemaNS = 0, 00209 tStringObj * propPath = 0, 00210 tStringObj * propValue = 0, 00211 XMP_OptionBits * options = 0 ); 00212 00213 // --------------------------------------------------------------------------------------------- 00220 00221 void Skip ( XMP_OptionBits options ); 00222 00223 private: 00224 00225 XMPIteratorRef iterRef; 00226 00227 TXMPIterator(); // ! Hidden, must choose property or table iteration. 00228 00229 static void SetClientString ( void * clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen ); 00230 00231 }; // class TXMPIterator 00232 00233 // ================================================================================================= 00234 00235 #endif // __TXMPIterator_hpp__