- From: Jean-Claude Dufourd <jean-claude.dufourd@telecom-paristech.fr>
- Date: Mon, 17 Jun 2013 18:52:24 +0200
- To: public-device-apis@w3.org
- Message-ID: <51BF3EC8.5060506@telecom-paristech.fr>
Dear all The current NSD API is used in this sequence: - NSD.getNetworkServices( "type", callback, errorcb) - then in callback, you immediately set the onserviceavailable callback and you return, because usually, the first NetworkServices object you get is empty - then onserviceavailable is called, and in there you call NSD.getNetworkServices( "type", callback, errorcb) again - then in callback, you immediately set the onserviceavailable callback and you do the actual work. You need to define: - a function calling NSD.getNetworkServices( "type", successcallback, errorcb) - a onserviceavailable callback that calls NSD.getNetworkServices( "type", successcallback, errorcb) - the successcallback. It is possible to define a wrapper around this to deal with the onserviceavailable process transparently for the author, on top of the existing API. Thus, I avoid the need for the definition of onserviceavailable. The actual code does the same as above, but the process that the webapp author sees is: - discover( "type", callback, errorcb) - then in callback, you immediately do the actual work. Why not simplify the API and get rid of the need for onserviceavaible ? Why make the API more complex than it needs to be ? Why expose a more intricate process that brings no advantage ? Best regards JC Note: here is a possible implementation of the wrapper avoiding the need for onserviceavailable: function discover(serviceType, callBack, errcb) { var thisFunction = function (services) { services.onserviceavailable = function () { NSD.getNetworkServices(serviceType, thisFunction, errcb); }; if (services.length > 0) { callBack.call(this, services); } }; NSD.getNetworkServices(serviceType, thisFunction, errcb); } -- Télécom ParisTech <http://www.telecom-paristech.fr> *Jean-Claude DUFOURD* Directeur d'études Tél. : 01 45 81 77 33 37-39 rue Dareau 75014 Paris Site web <http://www.telecom-paristech.fr>Twitter <https://twitter.com/TelecomPTech>Facebook <https://www.facebook.com/TelecomParisTech>Google+ <https://plus.google.com/111525064771175271294>Blog <http://blogrecherche.wp.mines-telecom.fr>
Received on Monday, 17 June 2013 16:52:54 UTC