Hi,

> Please don't mix and match tabs and spaces for indentation

Oops, will fix. For some reason my checkpatch script did not complain about 
this.

You must be using a script as well. To avoid unnecessary fuss like this, would 
it be possible to integrate it to the oFono tree so everyone would check their 
patches using the same thing?

> I prefer you keep the current implementation as it is consistent with
> the rest of ofono core.  The way the rest of the core works 
> is that you
> query each in sequence, then set the the CACHED flag (only one is
> actually required).
> 
> We use a single cached flag to keep the logic simpler and optimize for
> the general case (e.g. UI will query the properties first before
> allowing the user to set them)  While this does lead to us 
> querying some
> attributes unnecessarily in certain extremely unlikely corner cases, I
> believe it is an acceptable compromise.

This was my intention as well but I did it in a different way, as I didn't 
realize there was an existing pattern for it.

My code does actually query all the properties up front but I serialized the 
driver queries in a different way. I.e., I used a separate CACHED flag for each 
property to keep track of whether the value is already valid. Each driver 
callback attempts to create the pending reply. The attempt to create the reply 
either succeeds or triggers a new driver query for another missing property 
value. This goes on until all the properties are cached and the pending reply 
can be sent.

I now see that the other services use a separate state machine to fetch the 
properties. That introduces more code than my solution but I guess I can do it 
that way if you feel it is easier to read.

        MikaL
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to