|
Boost : |
From: Craig Henderson (cdm.henderson_at_[hidden])
Date: 2002-10-07 05:07:43
"Bohdan" <warever_at_[hidden]> wrote in message
news:anhspk$dr5$1_at_main.gmane.org...
>
> "Craig Henderson" <cdm.henderson_at_[hidden]> wrote in message
> news:anhmca$b7t$1_at_main.gmane.org...
> > I'd be interested in this kind of class. I have implemented a similar
type
> > of class using the boost CRC library to calculate the CRC of the string
and
> > using that for comparisons. It is far less feature-rich that your
> > implementation and does not use any pooling yet - it is still in the
early
> > development stage for a specific use where I needed to optimise lots of
> > string compares.
>
> If it is possible, i'd like to look at your implementation.
> Even if it is very draft version. At this point i'd like to
> hear more ideas about stuff and its implementation. Definitely
> CRC in string is something new for me.
Sorry, for the delay in replying. I attach the current state of my class,
crc_string (for the want of a better name). Note that the code is not really
generic and needs quite a lot of work before it is generally usable, but it
satisfies my immediate requirements until I get time to complete it.
Regards
--Craig
begin 666 crc_string.hpp
M(VEF;F1E9B!?7T-20U]35%))3D=?2 T*(V1E9FEN92!?7T-20U]35%))3D=?
M2 T*#0HO+R!V8S8@=V%R;FEN9R!P<F%G;6%S#0HC<')A9VUA('=A<FYI;F<H
M9&ES86)L93H_at_-#8V,RD@("\O('1O(&5X<&QI8VET;'D@<W!E8VEA;&EZ92!C
M;&%S<R!T96UP;&%T92 G>'@G('5S92!T:&4_at_9F]L;&]W:6YG('-Y;G1A> T*
M(W!R86=M82!W87)N:6YG*&1I<V%B;&4Z(#0R-#0I(" O+R!C;VYV97)S:6]N
M(&9R;VT@)WAX>"<@=&\@)WEY>2<L('!O<W-I8FQE(&QO<W,@;V8_at_9&%T80T*
M(VEN8VQU9&4@(F)O;W-T+V-R8RYH<' B#0H-"FYA;65S<&%C92!C9&UH('L-
M"@T*+R\@*&QI;6ET960I('-T<FEN9R!C;&%S<R!O<'1I;6ES960_at_9F]R(&-O
M;7!A<FES;VYS#0HO+R!U<V4@=&AI<R!C;&%S<R!I9B!T:&4@=&5X="!D;V5S
M(&YO="!C:&%N9V4_at_9G)E<75E;G1L>2!A;F0@=&AE(&ET(&ES#0HO+R!U<V5D
M(&EN(&$@;&]T(&]F(&-O;7!A<FES;VYS+B!T:&4_at_8VQA<W,@:7,@;W!T:6UI
M<V5D(&)Y(&-A;&-U;&%T:6YG#0HO+R!A($-20R!V86QU92!F;W(@=&AE('1E
M>'0_at_86YD(&$@8V]M<&%R:7-O;B!O9B!T=V\@:6YS=&%N8V5S(&]F('1H:7,-
M"B\O(&-L87-S('1H97)E9F]R92!T86ME<R!T:&4@=&EM92!O9B!A('-I;F=L
M92 S,B!B:70_at_8V]M<&%R92P@<F%T:&5R#0HO+R!T:&%N(&$@9G5L;"!S=')I
M;F<@8V]M<&%R90T*=&5M<&QA=&4\='EP96YA;64_at_5#X-"F-L87-S(&-R8U]S
M=')I;F<-"GL-"B @<'5B;&EC._at_T*(" @('1Y<&5D968@<W1D.CIB87-I8U]S
M=')I;F<\5#X@=F%L=65?='EP93L-"@T*("!P<FEV871E._at_T*(" @('-T9#HZ
M<VEZ95]T(&-R8U\[#0H@(" @=F%L=65?='EP92 @<W1R:6YG7SL-"@T*("!P
M<F]T96-T960Z#0H@(" @=F]I9"!A<W-I9VXH8V]N<W0_at_5" J<W1R*0T*(" @
M('L-"B @(" @(" @87-S:6=N*'-T<BP@<W1R;&5N*'-T<BDI.PT*(" @('T-
M"@T*(" @('9O:60_at_87-S:6=N*&-O;G-T(%0@*G-T<BP@='EP96YA;64@=F%L
M=65?='EP93HZ<VEZ95]T>7!E(&QE;BD-"B @("![#0H@(" @(" @('-T<FEN
M9U\N97)A<V4H*3L-"B @(" @(" @<W1R:6YG7RYA<'!E;F0H<W1R+&QE;BD[
M#0H@(" @(" @(&)O;W-T.CIC<F-?;W!T:6UA;#PQ-BP@,'@X,# U+" P+" P
M+"!T<G5E+"!T<G5E/B!C<F,[#0H@(" @(" @(&-R8RYP<F]C97-S7V)L;V-K
M*'-T<FEN9U\N9&%T82_at_I+"!S=')I;F=?+F1A=&$H*2ML96XI.PT*(" @(" @
M("!C<F-?(#T_at_8W)C*"D[#0H@(" @?0T*#0H@('!U8FQI8SH-"B @("!C<F-?
M<W1R:6YG*"D-"B @("![#0H@(" @?0T*#0H@(" @8W)C7W-T<FEN9RAC;VYS
M="!4("IS='(I#0H@(" @>PT*(" @(" @("!A<W-I9VXH<W1R*3L-"B @("!]
M#0H-"B @("!C<F-?<W1R:6YG*&-O;G-T('-T9#HZ8F%S:6-?<W1R:6YG/%0^
M("9S='(I#0H@(" @>PT*(" @(" @("!A<W-I9VXH<W1R+F-?<W1R*"DI.PT*
M(" @('T-"@T*(" @(&-R8U]S=')I;F<H8V]N<W0@<W1D.CIB87-I8U]S=')I
M;F<\5#X@)G-T<BP@='EP96YA;64@=F%L=65?='EP93HZ<VEZ95]T>7!E(&QE
M;BD-"B @("![#0H@(" @(" @(&%S<VEG;BAS='(N8U]S='(H*2P@;&5N*3L-
M"B @("!]#0H-"B @("!C<F-?<W1R:6YG*&-O;G-T(%0@*G-T<BP@='EP96YA
M;64@=F%L=65?='EP93HZ<VEZ95]T>7!E(&QE;BD-"B @("![#0H@(" @(" @
M(&%S<VEG;BAS='(L(&QE;BD[#0H@(" @?0T*(" @( T*(" @(&-R8U]S=')I
M;F<@)F]P97)A=&]R/2AC;VYS="!4("IS='(I#0H@(" @>PT*(" @(" @("!A
M<W-I9VXH<W1R*3L-"B @(" @(" @<F5T=7)N("IT:&ES.PT*(" @('T-"@T*
M(" @(&)O;VP@;W!E<F%T;W(]/2AC;VYS="!C<F-?<W1R:6YG/%0^("9O=&AE
M<BD_at_8V]N<W0-"B @("![#0H@(" @(" @(')E='5R;B!C<F-?(#T](&]T:&5R
M+F-R8U\[#0H@(" @?0T*#0H@(" @8F]O;"!O<&5R871O<CT]*&-O;G-T(%0@
M*G-T<BD_at_8V]N<W0-"B @("![#0H@(" @(" @(&-R8U]S=')I;F<\5#X_at_8W)C
M<W1R:6YG*'-T<BD[#0H@(" @(" @(')E='5R;B J=&AI<R ]/2!C<F-S=')I
M;F<[#0H@(" @?0T*#0H@(" @8F]O;"!O<&5R871O<B$]*&-O;G-T(&-R8U]S
M=')I;F<\5#X@)F]T:&5R*2!C;VYS= T*(" @('L-"B @(" @(" @<F5T=7)N
M(&-R8U\@(3T@;W1H97(N8W)C7SL-"B @("!]#0H-"B @("!B;V]L(&]P97)A
M=&]R(3TH8V]N<W0_at_5" J<W1R*2!C;VYS= T*(" @('L-"B @(" @(" @<F5T
M=7)N("$H*G1H:7,@/3T@<W1R*3L-"B @("!]#0H-"B @("!S=&0Z.G-I>F5?
M="!C<F,H=F]I9"D_at_8V]N<W0-"B @("![#0H@(" @(" @(')E='5R;B!C<F-?
M.PT*(" @('T-"@T*(" @('1Y<&5N86UE('9A;'5E7W1Y<&4Z.G-I>F5?='EP
M92!L96YG=&@H=F]I9"D_at_8V]N<W0-"B @("![#0H@(" @(" @(')E='5R;B!S
M=')I;F=?+FQE;F=T:"@I.PT*(" @('T-"@T*(" @(&-O;G-T('9A;'5E7W1Y
M<&4@)G-T<BAV;VED*2!C;VYS= T*(" @('L-"B @(" @(" @<F5T=7)N('-T
M<FEN9U\[#0H@(" @?0T*#0H@(" @8V]N<W0@='EP96YA;64@=F%L=65?='EP
M93HZ=F%L=65?='EP92 J8U]S='(H=F]I9"D_at_8V]N<W0-"B @("![#0H@(" @
M(" @(')E='5R;B!S=')I;F=?+F-?<W1R*"D[#0H@(" @?0T*(" @( T*(" @
M(&9R:65N9"!S=&0Z.F]S=')E86T@)F]P97)A=&]R/#PH<W1D.CIO<W1R96%M
M("9O<W1R+"!C;VYS="!C<F-?<W1R:6YG/%0^("9S='(I#0H@(" @>PT*(" @
M(" @("!O<W1R(#P\('-T<BYS=')I;F=?.PT*(" @(" @("!R971U<FX@;W-T
M<CL-"B @("!]#0I].PT*#0I](" @+R\@;F%M97-P86-E(&-D;6_at_-"@T*(W!R
M86=M82!W87)N:6YG*&1E9F%U;'0Z(#0V-C,I(" O+R!T;R!E>'!L:6-I=&QY
M('-P96-I86QI>F4_at_8VQA<W,@=&5M<&QA=&4@)WAX)R!U<V4@=&AE(&9O;&QO
M=VEN9R!S>6YT87_at_-"B-P<F%G;6$@=V%R;FEN9RAD969A=6QT.B T,C0T*2 @
M+R\@;VYV97)S:6]N(&9R;VT@)WAX>"<@=&\@)WEY>2<L('!O<W-I8FQE(&QO
I<W,@;V8_at_9&%T80T*#0HC96YD:68@("\O(%]?0U)#7U-44DE.1U](#0H`
`
end
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk