summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/resources/webidl2/test/widlproc/examples/bondi.widl
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/resources/webidl2/test/widlproc/examples/bondi.widl')
-rw-r--r--testing/web-platform/tests/resources/webidl2/test/widlproc/examples/bondi.widl227
1 files changed, 227 insertions, 0 deletions
diff --git a/testing/web-platform/tests/resources/webidl2/test/widlproc/examples/bondi.widl b/testing/web-platform/tests/resources/webidl2/test/widlproc/examples/bondi.widl
new file mode 100644
index 000000000..200b95fe9
--- /dev/null
+++ b/testing/web-platform/tests/resources/webidl2/test/widlproc/examples/bondi.widl
@@ -0,0 +1,227 @@
+/*
+ * 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;
+};