C Level Iterators and Userland Classes

From: Date: Wed, 15 Feb 2006 17:23:44 +0000
Subject: C Level Iterators and Userland Classes
Groups: php.internals 
Request: Send a blank email to internals+get-21872@lists.php.net to get a copy of this message
A quick question about using iterators in C code: If it sufficient to use the interface gotten from zend_class_entry->get_iterator to handle userland classes which implement Iterator ? The attachment is part of code i'm using to do Unicode based collation. Will this work for userland iterators as well ? l0t3k begin 666 sort.txt M4$A07TDQ.$Y?05!)('IE;F1?8F]O;"!I8W5?8V]L;&%T;W)?<V]R="A#;VQL M871O<B J8V]L;"P@#0H)"0D)"7IV86P@*FET96US+" -"@D)"0D)>F5N9%]B M;V]L(&%S8V5N9&EN9RP@#0H)"0D)"7IV86P@*G)E<W5L="!44U)-3%-?1$,I M#0I[#0H):6YT,S)?="!C;W5N=" ](# L(&EN9&5X+"!I.PT*"6-O;&Q?<V]R M=%]K97D@("IS;W)T7VME>7,@/2!.54Q,.PT*"7IV86P@*BIE;G1R>3L-"@EZ M=F%L("IZ:71E;7,@/2!.54Q,.PT*"7IV86P@*GIS='([#0H)>F5N9%]B;V]L M(&9R;VU?:71E<F%T;W(@/2!&04Q313L-"@T*"6EF("A:7U194$5?4"AI=&5M M<RD@/3T@25-?3T)*14-4*2![#0H)"7IE;F1?;V)J96-T7VET97)A=&]R("II M=&5R(#T@3E5,3#L-"@D)>F5N9%]C;&%S<U]E;G1R>2 J8V4@/2!:7T]"2D-% M7U H:71E;7,I.PT*"0EI;G0S,E]T(&-A<&%C:71Y(#T@,38[#0H-"@D):68@ M*"$H8V4@)B8@8V4M/F=E=%]I=&5R871O<BDI('L-"@D)"7IE;F1?=&AR;W=? M97AC97!T:6]N7V5X*$Y53$PL(# @5%-234Q37T-#+" B3V)J96-T(&]F('1Y M<&4@)7,@9&ED(&YO="!C<F5A=&4@86X@271E<F%T;W(B+"!C92T^;F%M92D[ M#0H)"0ER971U<FX@,#L-"@D)?0T*#0H)"6ET97(@/2!C92T^9V5T7VET97)A M=&]R*&-E+"!I=&5M<RP@,"!44U)-3%-?0T,I.PT*#0H)"69R;VU?:71E<F%T M;W(@/2!44E5%.PT*#0H)"6EF("@A:71E<B!\?"!%1RAE>&-E<'1I;VXI*2![ M#0H)"0EI9B H(45'*&5X8V5P=&EO;BDI('L-"@D)"0EZ96YD7W1H<F]W7V5X M8V5P=&EO;E]E>"A.54Q,+" P(%134DU,4U]#0RP@(D]B:F5C="!O9B!T>7!E M("5S(&1I9"!N;W0@8W)E871E(&%N($ET97)A=&]R(BP@8V4M/FYA;64I.PT* M"0D)?0T*"0D)9V]T;R!C;&5A;G5P.PT*"0E]#0H-"@D)+RH@06QL('1H92!E M>'1R82!E>&-E<'1I;VX@8VAE8VMS(&%R92!F;W(@=7-E<FQA;F0@8V]D92!T M:&%T"2HO#0H)"2\J(&UA>2!B92!T:')O=VEN9R!E>&-E<'1I;VYS(&EN(&ET M97)A=&]R(&UE=&AO9',L(')A=&AE<B!T:&%N"2HO#0H)"2\J(')E;'EI;F<@ M;VX@<V5T=&EN9R!R971U<FX@=F%L=65S"0D)"0D)*B\-"@D):71E<BT^:6YD M97@@/2 P.PT*"0EI9B H:71E<BT^9G5N8W,M/G)E=VEN9"D@>PT*"0D):71E M<BT^9G5N8W,M/G)E=VEN9"AI=&5R(%134DU,4U]#0RD[#0H)"0EI9B H14<H M97AC97!T:6]N*2D@>PT*"0D)"6=O=&\@8VQE86YU<#L-"@D)"7T-"@D)?0T* M#0H)"6EN9&5X(#T@,#L-"@D)<V]R=%]K97ES(#T@*&-O;&Q?<V]R=%]K97D@ M*BEE;6%L;&]C*&-A<&%C:71Y("H@<VEZ96]F*&-O;&Q?<V]R=%]K97DI*3L- M"@D)9F]R("@[.RD@>PT*"0D):68@*&ET97(M/FEN9&5X*RLI('L-"@D)"0EI M=&5R+3YF=6YC<RT^;6]V95]F;W)W87)D*&ET97(@5%-234Q37T-#*3L-"@D) M"7T-"@D)"6EF("A%1RAE>&-E<'1I;VXI*2![#0H)"0D)9V]T;R!C;&5A;G5P M.PT*"0D)?0T*"0D):68@*&ET97(M/F9U;F-S+3YV86QI9"AI=&5R(%134DU, M4U]#0RD@/3T@1D%)3%5212D@>PT*"0D)"2\J(')E86-H960@96YD(&]F(&ET M97)A=&EO;B J+PT*"0D)"6EF("A%1RAE>&-E<'1I;VXI*2![#0H)"0D)"6=O M=&\@8VQE86YU<#L-"@D)"0E]#0H)"0D)8G)E86L[#0H)"0E]#0H)"0EI9B H M14<H97AC97!T:6]N*2D@>PT*"0D)"6=O=&\@8VQE86YU<#L-"@D)"7T-"@D) M"6ET97(M/F9U;F-S+3YG971?8W5R<F5N=%]D871A*&ET97(L("9E;G1R>2!4 M4U)-3%-?0T,I.PT*"0D)#0H)"0EI9B H(65N=')Y('Q\($5'*&5X8V5P=&EO M;BDI('L-"@D)"0DO*B!F86EL=7)E(&EN(&=E=%]C=7)R96YT7V1A=&$@*B\- M"@D)"0EI9B H96YT<GDI('L-"@D)"0D)>G9A;%]P=')?9'1O<BAE;G1R>2D[ M#0H)"0D)?0T*"0D)"6EF("@A14<H97AC97!T:6]N*2D@>PT*"0D)"0EZ96YD M7W1H<F]W7V5X8V5P=&EO;E]E>"A.54Q,+" P(%134DU,4U]#0RP@(D5R<F]R M(&9E=&-H:6YG(&ET97)A=&]R('9A;'5E+B(I.PT*"0D)"7T-"@D)"0EG;W1O M(&-L96%N=7 [#0H)"0E]"0D-"@D)"6EF("AI;F1E>" ^/2!C87!A8VET>2TQ M*2![#0H)"0D)8V%P86-I='D@/2!C87!A8VET>2 \/" Q.PT*"0D)"7-O<G1? M:V5Y<R ]("AC;VQL7W-O<G1?:V5Y("HI97)E86QL;V,H<V]R=%]K97ES+"!C M87!A8VET>2 J('-I>F5O9BAC;VQL7W-O<G1?:V5Y*2D[#0H)"0E]#0H-"@D) M"6-O;G9E<G1?=&]?=6YI8V]D92@J96YT<GDI.PT*"0D)6E9!3%]!1$12148H M*F5N=')Y*3L-"@T*"0D):68@*"%I;FET7W-O<G1?:V5Y*&-O;&PL("9S;W)T M7VME>7-;:6YD97A=+" J96YT<GD@5%-234Q37T-#*2D@>PT*"0D)"6=O=&\@ M8VQE86YU<#L-"@D)"7T-"@D)"6EN9&5X*RL[#0H)"0EC;W5N="LK.PT*"0E] M#0H)"6EF("@P(#T](&-O=6YT*2![#0H)"0DJ<F5S=6QT(#T@*FET96US.PT* M"0D)>G9A;%]C;W!Y7V-T;W(H<F5S=6QT*3L-"@D)"65F<F5E*'-O<G1?:V5Y M<RD[#0H)"0ER971U<FX@,#L-"@D)?0T*"7T@96QS92!I9B H25-?05)205D@ M/3T@6E]465!%7U H:71E;7,I*2![#0H)"4AA<VA0;W-I=&EO;@EP;W,[#0H) M"4AA<VA486)L92 @(" @("IH87-H(#T@2$%32%]/1BAI=&5M<RD[#0H-"@D) M8V]U;G0@/2!Z96YD7VAA<VA?;G5M7V5L96UE;G1S*%I?05)25D%,7U H:71E M;7,I*3L-"@D):68@*# @/3T@8V]U;G0I('L-"@D)"2IR97-U;'0@/2 J:71E M;7,[#0H)"0EZ=F%L7V-O<'E?8W1O<BAR97-U;'0I.PT*"0D)<F5T=7)N(# [ M#0H)"7T-"@T*"0ES;W)T7VME>7,@/2 H8V]L;%]S;W)T7VME>2 J*65C86QL M;V,H8V]U;G0L('-I>F5O9BAC;VQL7W-O<G1?:V5Y*2D[#0H)"6EN9&5X(#T@ M,#L-"@D)9F]R("AZ96YD7VAA<VA?:6YT97)N86Q?<&]I;G1E<E]R97-E=%]E M>"AH87-H+" M>F<&]S*3L-"@D)"2!Z96YD7VAA<VA?9V5T7V-U<G)E;G1?9&%T M85]E>"AH87-H+" H=F]I9" J*BDF96YT<GDL("9P;W,I(#T](%-50T-%4U,[ M#0H)"0EZ96YD7VAA<VA?;6]V95]F;W)W87)D7V5X*&AA<V@L("9P;W,I*2![ M#0H-"@D)"6EF("@A:6YI=%]S;W)T7VME>2AC;VQL+" F<V]R=%]K97ES6VEN M9&5X72P@*F5N=')Y(%134DU,4U]#0RDI('L-"@D)"0D@9V]T;R!C;&5A;G5P M.PT*"0D)?0T*"0D):6YD97@K*SL-"@D)?0T*"7T@96QS92![#0H)"4E,3$5' M04Q?05)'54U%3E0H(D5I=&AE<B!A;B!A<G)A>2!O<B!I=&5R871O<B!E>'!E M8W1E9"XB*3L-"@D)<F5T=7)N(# [#0H)?0T*#0H):68@*&%S8V5N9&EN9RD@ M>PT*"0EZ96YD7W%S;W)T*'-O<G1?:V5Y<RP@8V]U;G0L('-I>F5O9BAC;VQL M7W-O<G1?:V5Y*2P@*&-O;7!A<F5?9G5N8U]T*2!S;W)T7V-O;7!A<F4@5%-2 M34Q37T-#*3L-"@E](&5L<V4@>PT*"0EZ96YD7W%S;W)T*'-O<G1?:V5Y<RP@ M8V]U;G0L('-I>F5O9BAC;VQL7W-O<G1?:V5Y*2P@*&-O;7!A<F5?9G5N8U]T M*2!S;W)T7W)E=F5R<V5?8V]M<&%R92!44U)-3%-?0T,I.PT*"7T-"@EI9B H M6E]465!%7U H<F5S=6QT*2 A/2!)4U]!4E)!62D@>PT*"0EA<G)A>5]I;FET M*')E<W5L="D[#0H)?0T*"69O<B H:2 ](# [(&D@/"!C;W5N=#L@:2LK*2![ M#0H)"7IS='(@/2!S;W)T7VME>7-;:5TN:71E;3L-"@D):68@*"$H<V]R=%]K M97ES6VE=+FYE=U]S=')I;F<@?'P@9G)O;5]I=&5R871O<BDI('L-"@D)"5I6 M04Q?041$4D5&*'IS='(I.PT*"0E]#0H)"6%D9%]N97AT7VEN9&5X7WIV86PH M<F5S=6QT+"!Z<W1R*3L-"@D):68@*'-O<G1?:V5Y<UMI72YS;W)T7VME>2D@ M>PT*"0D)969R964H<V]R=%]K97ES6VE=+G-O<G1?:V5Y*3L-"@D)?0T*"7T- M"@EE9G)E92AS;W)T7VME>7,I.PT*"7)E='5R;B Q.PT*#0IC;&5A;G5P.@T* M"69O<B H:2 ](# [(&D@/"!I;F1E>#L@:2LK*2![#0H)"6EF("AS;W)T7VME M>7-;:5TN<V]R=%]K97DI('L-"@D)"65F<F5E*'-O<G1?:V5Y<UMI72YS;W)T M7VME>2D[#0H)"7T-"@D):68@*"AF<F]M7VET97)A=&]R('Q\('-O<G1?:V5Y M<UMI72YN97=?<W1R:6YG*2 F)B!S;W)T7VME>7-;:5TN:71E;2D@>PT*"0D) M1E)%15]:5D%,*'-O<G1?:V5Y<UMI72YI=&5M*3L-"@D)?0T*"7T-"@EE9G)E G92AS;W)T7VME>7,I.PT*"7)E='5R;B P.PT*?0T*+RH@?7U]("HO ` end

« previous php.internals (#21872) next »