1/* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.hardware.contexthub@1.0; 18 19interface IContexthubCallback { 20 /** 21 * This callback is passed by the Contexthub service to the HAL 22 * implementation to allow the HAL to send asynchronous messages back 23 * to the service and registered clients of the ContextHub service. 24 * 25 * @param msg message being sent from the contexthub 26 * 27 */ 28 handleClientMsg(ContextHubMsg msg); 29 30 /** 31 * This callback is passed by the Contexthub service to the HAL 32 * implementation to allow the HAL to send the response for a 33 * transaction. 34 * 35 * @param txnId transaction id whose result is being sent 36 * passed in by the service at start of transacation. 37 * @param result result of transaction. 38 * 39 */ 40 handleTxnResult(uint32_t txnId, TransactionResult result); 41 42 /** 43 * This callback is passed by the Contexthub service to the HAL 44 * implementation to allow the HAL to send an asynchronous event 45 * to the ContextHub service. 46 * 47 * @param evt event being sent from the contexthub 48 * 49 */ 50 handleHubEvent(AsyncEventType evt); 51 52 /** 53 * This callback is passed by the Contexthub service to the HAL 54 * implementation to allow the HAL to send a notification to the service 55 * that a nanp-app has aborted. 56 * This method must be called when a nanoapp invokes chreAbort(...)). 57 * 58 * @param appId app identifier 59 * @param abortCode code passed by the nanoApp. 60 * 61 * Also see chreAbort(...) 62 * 63 */ 64 handleAppAbort(uint64_t appId, uint32_t abortCode); 65 66 /** 67 * This callback is passed by the Contexthub service to the HAL 68 * implementation to allow the HAL to send information about the 69 * currently loaded and active nanoapps on the hub. 70 * 71 * @param appInfo vector of HubAppinfo structure for each nanoApp on the 72 * hub that can be enabled, disabled and unloaded by the 73 * service. Any nanoApps that cannot be controlled by the 74 * service must not be reported. All nanoApps that can be 75 * controlled by the service must be reported. 76 */ 77 handleAppsInfo(vec<HubAppInfo> appInfo); 78}; 79