Hi Anthony,

thanks for the reply! 
I have been looking at the code and there is something I don't really 
understand (sorry for a noob question):
when the functions get called, they are called using a pattern:

ret = ...
ret and [f(fields,ret) for f in self._after_insert]
return ret

The question is - should the function I define return something?
Is the result of the function call used somehow, somewhere?

I suspect that using ret and [] is simply in order to invoke the functions,
but then I don't understand why not use something like
[f(fields,ret) for f in self._after_insert]
without using the and operator.

Best wishes,
Omri

On Wednesday, June 6, 2012 3:44:46 PM UTC+2, Anthony wrote:
>
> In trunk, there are now triggers for DAL tables:
>
>         self._before_insert = []
>         self._before_update = [lambda self,fs:self.delete_uploaded_files(
> fs)]
>         self._before_delete = [lambda self:self.delete_uploaded_files()]
>         self._after_insert = []
>         self._after_update = []
>         self._after_delete = []
>
> You could define a function that stores a timestamp in the cache and add 
> it to the three "_after_" triggers for the relevant tables. Then just check 
> the timestamp to see if it is more recent than the last request. To 
> determine the time of the last request, you could store a timestamp in the 
> session upon each request (so it will be specific to each user).
>
> Anthony
>
> On Wednesday, June 6, 2012 5:30:56 AM UTC-4, Omri Har-Shemesh wrote:
>>
>> Is it possible to watch a table for changes and define a callback 
>> whenever the table is changed?
>> I am trying to implement a mechanism where the client is asking for data 
>> every 5 seconds from the server
>> and the server should only return not a null value whenever the data has 
>> changed. The problem is that
>> the data is quite complex and is inferred from several tables. Therefore, 
>> in order to save processing time,
>> I want to calculate this data and return it only when I know it has 
>> changed.
>>
>> Thanks,
>> Omri
>>
>

Reply via email to