[PEAK] Re: Trellis-fork
Sergey Schetinin
maluke at gmail.com
Fri Jun 26 10:58:46 EDT 2009
Oh, and I forgot to mention that if you want to, you can actually do
cell.has_listeners_cell.has_listeners_cell.has_listeners_cell.value
Now that's meta :)
(Those cells will get garbage collected unless reference is saved
somewhere, like in a subject list :)
On 2009-06-26, Sergey Schetinin <maluke at gmail.com> wrote:
> If you were working Sensors and Connectors it could have crossed your
> mind that connect and disconnect methods are actually a kind of event
> handlers themselves -- the event being the change in presence of
> listeners to the sensor. That is events effectively being "we want to
> observe this cell (a LazyCell for example)" and "not anymore". But at
> the same time the implementation of this event handling was completely
> different from what Trellis generally offers -- you actually need to
> provide the event handlers instead of just observing some cell.
>
> The changes I've committed today change that -- every cell, even a
> Value gets a .has_listeners attribute that acts as a cell -- if you
> read it from a rule it will retrigger it when the cell gets any or
> loses all its listeners. One of the things this buys you is that
> connect / disconnect don't have to be very fast operations anymore.
> Imagine a cell representing some remote data, establishing the
> required connection, asking the server to send updates and other
> bootstrapping might take a while, with this change it doesn't have to
> happen inside single transaction anymore.
>
> Another reason why this is useful is that it allows one to make
> normally passive cells become active by means of some external
> component. It would work like this: if a Value is observed --
> .has_listeners -- make arrangements to update it as necessary. It's
> good to know that the same would work even if the target cell is not a
> Value which is something that makes the alternative strategy (replace
> cells with our own implementation) more fragile. The downside is that
> unless subscribed to that Value would just stay out of date.
>
> Another result is that LazyCell is not a Sensor anymore, but a direct
> descendant from ReadOnlyCell.
>
>
>
> --
> Best Regards,
> Sergey Schetinin
>
> http://s3bk.com/ -- S3 Backup
> http://word-to-html.com/ -- Word to HTML Converter
>
--
Best Regards,
Sergey Schetinin
http://s3bk.com/ -- S3 Backup
http://word-to-html.com/ -- Word to HTML Converter
More information about the PEAK
mailing list