Magma + Form objects ?

Hilaire Fernandes hilaire2006 at laposte.net
Mon Oct 9 14:42:27 UTC 2006


Wow, impressive explaination!

As a trade-off, until you explain there, I saved the picture of the 
morph as a PNG image in a Stream as:

morph := WatchMorph new.
myStream := RWBinaryOrTextStream with: (ByteArray new: 20).
PNGReadWriter putForm: morph imageForm onStream: myStream.
maSession commit: [maSession root at: 'image' put: myStream]

then

(PNGReadWriter formFromStream: (maSession root at: 'image')) display

worked as a charm.


I have one question regarding your use of the readStrategy, why do you 
use a readToDepth of 999? As I understand the readStrategy I believe a 
value of 1 will just be enought.

Hilaire


Chris Muller a écrit :

> "*** add this code ***"
> maSession readStrategy:
> 	((MaReadStrategy minimumDepth: 1)
> 		onAny: Form readToDepth: 999 ;
> 		yourself).
> 
>>(maSession root at: 'test') display
> 
> 
> ReadStrategy's are critical to using Magma.  They are used for 1)
> optimizing performance, 2) ensuring any MagmaProxy is never sent an
> inlined message (like ==) or 3) ensuring any MagmaProxy is never an
> argument to a primitive.
> 
> So why was the 'offset' a Point instead of a Proxy?  Because, if you
> look at MaReadStrategy>>#initializeDefaultSpecifications, you will see
> that Point, among several other classes, is part of the default
> ReadStrategy to read 99 levels deep.  
> 
> For the next release I will add BitMap and Form to this list as well so
> you don't have to put them into your own ReadStrategy in the future.
> 
> Thanks for finding this..!
> 
>  - Chris




More information about the Magma mailing list