| /* |
| * Licensed to OMTP Ltd. (OMTP) under one or more contributor license agreements. |
| * See the NOTICE file distributed with this work for additional information regarding |
| * copyright ownership. |
| * |
| * The Reference Implementation (save for such parts of the reference implementation made |
| * available under separate terms and conditions) is made available under the terms of the |
| * Apache License, version 2.0, subject to the condition that any "Works" and "Derivative |
| * Works" used or distributed for commercial purposes must be and remain compliant with the |
| * BONDI specification as promulgated by OMTP in each release. Your implementation of the |
| * Reference Implementation (whether object or source) must maintain these conditions, and |
| * you must notify any recipient of this condition in a conspicuous way. |
| * |
| * You may not use this BONDI Reference Implementation except in compliance with the License. |
| * |
| * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 or at |
| * http://bondi.omtp.org/BONDI-LICENSE-2.0 |
| */ |
| |
| /** |
| * \brief Common BONDI functionality. |
| * |
| * These definitions can be used in all other BONDI modules as dependencies. |
| * \version 1.1 |
| */ |
| module bondi { |
| |
| /** |
| * \brief Array of DOMStrings. |
| */ |
| typedef sequence<DOMString> StringArray; |
| |
| /** |
| * \brief Array of 8-bit unsigned integer values. |
| */ |
| typedef sequence<octet> ByteArray; |
| |
| /** |
| * \brief Array of 16-bit signed integer values. |
| */ |
| typedef sequence<short> ShortArray; |
| |
| /** |
| * \brief Array of 32-bit signed integer values. |
| */ |
| typedef sequence<long> LongArray; |
| |
| /** |
| * \brief Array of floating point values. |
| */ |
| typedef sequence<float> FloatArray; |
| |
| /** |
| * \brief Generic Map object. |
| */ |
| typedef Object Map; |
| |
| /** |
| * \brief Generic success callback interface. |
| */ |
| [Callback=FunctionOnly, NoInterfaceObject] interface SuccessCallback { |
| /** |
| * \brief Method invoked when the asynchronous call completes successfully |
| */ |
| void onSuccess(); |
| }; |
| |
| |
| /** |
| * \brief Success callback interface for requestFeature invocations |
| */ |
| [Callback=FunctionOnly, NoInterfaceObject] interface RequestFeatureSuccessCallback {
|
| /** |
| * \brief Method invoked upon a succesful requestFeature invocation |
| * |
| * \param ob Object implementing the JavaScript API associated with the requested Feature. |
| */
|
| void onSuccess(in Object ob);
|
| };
|
| |
| |
| /** |
| * \brief Generic error callback interface. |
| */ |
| [Callback=FunctionOnly, NoInterfaceObject] interface ErrorCallback { |
| /** |
| * \brief Method invoked when an error occurs |
| * |
| * \param error The error that is raised. |
| */ |
| void onError(in GenericError error); |
| }; |
| |
| /** |
| * \brief Generic error interface. |
| * |
| * |
| */ |
| |
| |
| interface GenericError { |
| |
| /** |
| * \brief 16-bit error code. |
| */ |
| readonly attribute unsigned short code; |
| }; |
| |
| /** |
| * \brief DeviceApiError error interface. |
| * |
| * The error codes must be in the range 10000-19999. |
| */ |
| |
| interface DeviceAPIError : GenericError { |
| |
| /** |
| * \brief Unknown error. |
| */ |
| const unsigned short UNKNOWN_ERROR = 10000; |
| |
| /** |
| * \brief Invalid value was specified as input parameter. |
| */ |
| const unsigned short INVALID_ARGUMENT_ERROR = 10001; |
| |
| /** |
| * \brief The searched value or object was not found. |
| */ |
| const unsigned short NOT_FOUND_ERROR = 10002; |
| |
| /** |
| * \brief Operation is pending. |
| */ |
| const unsigned short PENDING_OPERATION_ERROR = 10003; |
| |
| /** |
| * \brief Input/Output error. |
| */ |
| const unsigned short IO_ERROR = 10004; |
| |
| /** |
| * \brief Not supported error. |
| */ |
| const unsigned short NOT_SUPPORTED_ERROR = 10005; |
| }; |
| |
| /** |
| * \brief Security error interface. |
| * |
| * The error codes must be in the range 20000-29999 |
| */ |
| interface SecurityError : GenericError { |
| const unsigned short PERMISSION_DENIED_ERROR = 20000; |
| }; |
| |
| /** |
| * \brief PendingOperation. |
| * |
| * Interface that is returned by asynchronous operations in order to |
| * provide a cancellation operation. |
| */ |
| interface PendingOperation { |
| /** |
| * \brief Call to cancel the underlying asynchronous operation. |
| * |
| * This call is always successful, i.e. the pending operation i.e. |
| * either cancelled or one of the callback is called. |
| * |
| * \return <em>false</em> if the cancellation did not succeed |
| * either because the pending operation finished already or because |
| * the cancellation cannot succeed due to technical limitations in |
| * the underlying implementation. Consquently the pending operation |
| * completes and depending on the success or failure the appropriate |
| * callbacks will be called. |
| * <em>true</em> if the cancellation did succeed. No callbacks will |
| * be called by the cancelled pending operation. |
| */ |
| boolean cancel(); |
| }; |
| |
| /** |
| * \brief BONDI root API. |
| * bondi root property exists in the global object |
| * \def-api-feature http://bondi.omtp.org/api/bondi.requestfeature |
| */ |
| interface Bondi { |
| /** |
| * \brief Requests a feature. |
| * |
| * This function requests a named feature |
| * asynchronously and returns a pending operation object. |
| * If it succeeds it calls the successCallback and passes in |
| * the object of the requested feature. If it fails it calls |
| * the errorCallback passing in a DeviceAPIError which provides |
| * an error message and error code indicating the nature of the error. |
| * |
| * If the requested feature binds itself to a root namespace |
| * ( for example, "bondi.pim.contact") this will happen prior to the |
| * successCallback being invoked. |
| * |
| * \param successCallback the success callback function |
| * \param errorCallback the error callback function |
| * \param name the feature name IRI |
| * |
| * \return PendingOperation enabling the requester to cancel this request. |
| * |
| * The errorCallback will receive one of the following errors: |
| * \throw DeviceAPIError INVALID_ARGUMENT_ERROR if a malformed |
| * argument has been supplied or a required argument has been omitted. |
| * \throw DeviceAPIError NOT_FOUND_ERROR if the requested feature could not be found. |
| * \throw SecurityError PERMISSION_DENIED_ERROR if the |
| * requested feature is not permitted to load/bind or that |
| * access to a required device capability has been denied. |
| * \throw DeviceAPIError UNKNOWN_ERROR if an error occurred and a pending |
| * operation object can't be returned. |
| */ |
| PendingOperation requestFeature(in RequestFeatureSuccessCallback successCallback, |
| in ErrorCallback errorCallback, |
| in DOMString name) |
| raises(DeviceAPIError, SecurityError); |
| }; |
| interface BondiObject { |
| readonly attribute Bondi bondi; |
| }; |
| Window implements bondiObject; |
| }; |