WireEncoding in GemStone
The WireEncoding format is used to pass arguments from GT to GemStone and is one of the serialisation options for returning data.
To run the examples in GemStone:
exampleSelectors := GtWireEncodingExamples methods select: [ :each | each hasPragmaNamed: #gtExample ] thenCollect: [ :each | each selector ].
exampleSelectors collect: [ :selector | GtWireEncodingExamples new perform: selector ].
nestedSelectors := GtWireNestedEncodingExamples methods select: [ :each | (each hasPragmaNamed: #gtExample) and: [ each protocol first ~= $* ] ] thenCollect: [ :each | each selector ].
nestedSelectors collect: [ :selector | GtWireNestedEncodingExamples new perform: selector ].
Timing:
[ 1000 timesRepeat: [ GtWireEncoderDecoder getDefaultMap; getDefaultReverseMap ] ] timeToRun.