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