| // Copyright 2019 The Cobalt Authors. All Rights Reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| [ |
| ConstructorCallWith=EnvironmentSettings |
| ] |
| |
| interface H5vccPlatformService { |
| // Returns true if the given service exists on the platform, false otherwise. |
| static boolean has(DOMString service_name); |
| |
| // Opens and returns a service with the specified name. |
| // Returns null if no service of the specified name exists. |
| // Data may be received via the |receive_callback| the moment after this |
| // function returns non-null. |
| [CallWith=EnvironmentSettings] static H5vccPlatformService? open(DOMString service_name, ReceiveCallback receive_callback); |
| |
| // Sends the specified data to the service. The service |
| // may optionally synchronously return data. For asynchronous |
| // responses the service should utilize the |receive_callback|. |
| // If the service has been closed, then kInvalidStateErr is raised. |
| // If the service is open but not currently able to accept data, then |
| // kInvalidStateErr is raised. |
| [RaisesException] ArrayBuffer? send(ArrayBuffer data); |
| |
| // Closes the specified service. After calling Close(), it is |
| // guaranteed that |receive_callback| will no longer be called, and |
| // subsequent calls to send() are considered errors. |
| void close(); |
| }; |
| |
| // When a service is opened a callback must be registered to enable push |
| // communications from the service. A service may use the receive callback |
| // to asynchronously respond to a previous Send() call. |
| callback ReceiveCallback = void (H5vccPlatformService service, ArrayBuffer data); |