[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