W3C home > Mailing lists > Public > public-device-apis@w3.org > March 2011

Re: Question about System Information API

From: Cameron McCormack <cam@mcc.id.au>
Date: Tue, 22 Mar 2011 11:23:15 +1300
To: Robin Berjon <robin@berjon.com>
Cc: Mark Watson <watsonm@netflix.com>, public-device-apis@w3.org
Message-ID: <20110321222315.GA5025@wok.mcc.id.au>
Robin Berjon:
> Mark is not the first one to be (IMHO understandably) confused by this
> somewhat arcane construct. I know that you already have a lot on your
> plate with WebIDL, but I was wondering if you'd considered some syntax
> to make this more straightforward to specify. Since we don't care
> about Java, I've thought of switching to just Function but I don't
> like losing the ability to specify the callback's signature.

“Care less” rather than “don’t care”, I think.

Someone had proposed adding first class function types to Web IDL, to
avoid having to define an interface for this.  How about (the not quite
first class):

  function void SuccessCB(optional Object obj);

and then SuccessCB can be used as an argument type just like the
interface SuccessCB currently is.

There wouldn’t be a property “SuccessCB” on the global object, so
[NoInterfaceObject] wouldn’t be required.

In other languages where you don’t have functions outside of objects,
like Java, it could get mapped to

  interface SuccessCB {
    void run(Object obj);
  }

i.e. the binding would have to assume a name like “run”, and not take it
from the definition of the function, since we’re not giving it one.

Then we could have a built-in definition to Web IDL, either:

  function any Function(in any... args);

or

  function void Function();

(Probably the former.)

-- 
Cameron McCormack ≝ http://mcc.id.au/
Received on Monday, 21 March 2011 22:24:06 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 9 May 2012 00:14:18 GMT