Thanks Mariano, That's pretty much what I want, but... why to expose the visitor interface? ;) Just to give a little feedback of what I have in my mind:
mySerializer setEngine: ExternalCompressor for: ( MyClass -> #myStringIVar ) or mySerializer setEngine: ExternalCompressor for: incomingStream Now with machines generating daily 6 TBytes of raw data, one of the keys will be data compression. 2011/10/10 Mariano Martinez Peck <marianop...@gmail.com>: > > > On Mon, Oct 10, 2011 at 9:35 PM, Hernán Morales Durand > <hernan.mora...@gmail.com> wrote: >> >> Is there any serializer (Fuel/StOMP/Ma object >> serialization/BOSS/SRP/SIXX??) which let me attach an external >> compressor/decompressor for specific Strings to the >> serialization/deserialization process? > > In Fuel you can do: > > String >> fuelSubstitution > ^ ExternalCompressor compress: self > > String >> fuelAccept: aVisitor > ^ (ExternalCompressor shouldCompressString: self) > ifTrue: [aVisitor visitSubstitution: self] > ifFalse: [super fuelAccept: aVisitor] > > But the problem is that if #compress: answers an instance of String, you > should be careful that if #shouldCompressString: asnwers true to the > compressed string, then you will end up in an infinitive loop. > > See: http://rmod.lille.inria.fr/web/pier/software/Fuel/Hooks and > FLHookedSubstitutionTest > > I think StOMP should support this as well: > http://stomp.smalltalk-users.jp/home/how-to-use-stomp/hook-methods > > The previous hook you let you replace the original String with its > compression during serialization. Which make sense because if you are going > to compress it is better to do it during serialization. > >> With external I mean it could >> be in a separate binary (I could arrange the binding though). > > I am not sure if I understood. > > > >> >> Thanks >> >> Hernán >> > > > > -- > Mariano > http://marianopeck.wordpress.com > >