/* * Copyright 2016 The Android Open Source Project * * 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. */ package android.hardware.wifi.offload@1.0; import IOffloadCallback; interface IOffload { /** * Configure the offload module to perform scans and filter results * Scans must not be triggered due to configuration of the module. * * @param ScanParam paramters for scanning * @param ScanFilter settings to filter scan result * @return OffloadStatus indicating status of operation provided by this API * If OffloadStatusCode::OK is returned, the operation was successful * If OffloadStatusCode::NO_CONNECTION is returned, connection to the hardware is lost * If OffloadStatusCode::ERROR is returned, requested operation could not be completed */ @entry @callflow(next={"setEventCallback", "subscribeScanResults"}) configureScans(ScanParam param, ScanFilter filter) generates (OffloadStatus status); /** * Get scan statistics * * @return OffloadStatus indicating status of operation provided by this API * @return ScanStats statistics of scans performed * If OffloadStatusCode::OK is returned, the operation was successful * If OffloadStatusCode::NO_CONNECTION is returned, connection to the hardware is lost * If OffloadStatusCode::ERROR is returned, requested operation could not be completed * If OffloadStatusCode::TIMEOUT is returned, time out waiting for the requested data */ @exit @callflow(next={"subscribeScanResults", "unsubscribeScanResults", "getScanStats"}) getScanStats() generates (OffloadStatus status, ScanStats scanStats); /** * Subscribe to asynchronous scan events sent by offload module. This enables * offload scans to be performed as per scan parameters, filtering the scan * results based on configured scan filter and delivering the results after * at least delayMs milliseconds from this call. If the client is already * subscribed to the scan results, a call to this API must be a no-op. * * @param delayMs an integer expressing the minimum delay in mS after * subscribing when scan results must be delivered to the client * @return OffloadStatus indicating status of operation provided by this API * If OffloadStatusCode::OK is returned, the operation was successful * If OffloadStatusCode::NO_CONNECTION is returned, connection to the hardware is lost * If OffloadStatusCode::ERROR is returned, requested operation could not be completed */ @callflow(next={"unsubscribeScanResults", "getScanStats"}) subscribeScanResults(uint32_t delayMs) generates (OffloadStatus status); /** * Unsubscribe to scan events sent by the offload module, hence disabling scans. * If the client is already unsubscribed, a call to this API will be a no-op. */ @exit @callflow(next={"*"}) unsubscribeScanResults(); /** * Setup the HIDL interface for reporting asynchronous scan events. A maximum * of one callback interface is supported. Only one callback must be registered * at any given time. If two consecutive calls are made with different callback * interface objects, the latest one must be used to deliver events to client. * * @param cb An instance of the |IOffloadCallback| HIDL interface object */ @entry @callflow(next={"subscribeScanStats", "configureScans"}) setEventCallback(IOffloadCallback cb); };