Modify ContextHubHAL
Change the loadNanoApp signature to take the nanoapp binary as a vector.
Add some clarifications about timing.
Remove redundant parameter hubId from callbacks.
Test: update_makefiles.sh
Change-Id: I48cc0ba0001ac80329ac83148ebefdaa7deaa8bf
diff --git a/contexthub/1.0/IContexthub.hal b/contexthub/1.0/IContexthub.hal
index 8d19aeb..8c792fd 100644
--- a/contexthub/1.0/IContexthub.hal
+++ b/contexthub/1.0/IContexthub.hal
@@ -60,9 +60,11 @@
* After the init method for nanoApp returns success, this must be indicated
* to the service by an asynchronous call to handleTxnResult.
*
+ * Loading a nanoapp must not take more than 30 seconds.
+ *
* @param hubId identifer of the contextHub
- * appBinary binary for the nanoApp
- * msg message to be sent
+ * appBinary serialized NanoApppBinary for the nanoApp
+ * transactionId transactionId for this call
*
* @return result OK if transation started
* BAD_VALUE if parameters are not sane
@@ -71,7 +73,9 @@
* TRANSACTION_FAILED if load failed synchronously
*
*/
- loadNanoApp(uint32_t hubId, NanoAppBinary appBinary, uint32_t transactionId)
+ loadNanoApp(uint32_t hubId,
+ vec<uint8_t> appBinary,
+ uint32_t transactionId)
generates (Result result);
/**
@@ -79,6 +83,8 @@
* After this, success must be indicated to the service through an
* asynchronous call to handleTxnResult.
*
+ * Unloading a nanoapp must not take more than 5 seconds.
+ *
* @param hubId identifer of the contextHub
* appId appIdentifier returned by the HAL
* msg message to be sent
@@ -98,6 +104,8 @@
* After this, success must be indicated to the service through an
* asynchronous message.
*
+ * Enabling a nanoapp must not take more than 5 seconds.
+ *
* @param hubId identifer of the contextHub
* appId appIdentifier returned by the HAL
* msg message to be sent
@@ -117,6 +125,8 @@
* After this, success must be indicated to the service through an
* asynchronous message.
*
+ * Disabling a nanoapp must not take more than 5 seconds.
+ *
* @param hubId identifer of the contextHub
* appId appIdentifier returned by the HAL
* msg message to be sent
@@ -136,7 +146,11 @@
*
* @param hubId identifer of the contextHub
*
- * @return apps all nanoApps on the hub
+ * @return apps all nanoApps on the hub.
+ * All nanoApps that can be modified by the service must
+ * be returned. A non-modifiable nanoapps must not be
+ * returned. A modifiable nanoApp is one that can be
+ * unloaded/disabled/enabled by the service.
*
*/
queryApps(uint32_t hubId) generates (Result result);
diff --git a/contexthub/1.0/IContexthubCallback.hal b/contexthub/1.0/IContexthubCallback.hal
index 29c41ce..9e9cf27 100644
--- a/contexthub/1.0/IContexthubCallback.hal
+++ b/contexthub/1.0/IContexthubCallback.hal
@@ -22,41 +22,44 @@
* implementation to allow the HAL to send asynchronous messages back
* to the service and registered clients of the ContextHub service.
*
- * @params hubId : identifier of the hub calling callback
- * msg : message
+ * @params msg : message
*
*/
- handleClientMsg(uint32_t hubId, ContextHubMsg msg);
+ handleClientMsg(ContextHubMsg msg);
/*
* This callback is passed by the Contexthub service to the HAL
* implementation to allow the HAL to send the response for a
* transaction.
*
- * @params hubId : identifier of the hub calling callback
- * txnId : transaction id whose result is being sent
+ * @params txnId : transaction id whose result is being sent
* passed in by the service at start of transacation.
* result: result of transaction.
*
*/
- handleTxnResult(uint32_t hubId, uint32_t txnId,
- TransactionResult result);
+ handleTxnResult(uint32_t txnId, TransactionResult result);
/*
* This callback is passed by the Contexthub service to the HAL
* implementation to allow the HAL to send an asynchronous event
* to the ContextHub service.
*
- * @params hubId : identifier of the hub calling callback
- * msg : message
+ * @params msg : message
*
*/
- handleHubEvent(uint32_t hubId, AsyncEventType evt);
+ handleHubEvent(AsyncEventType evt);
/*
* This callback is passed by the Contexthub service to the HAL
* implementation to allow the HAL to send information about the
* currently loaded and active nanoapps on the hub.
+ *
+ * @params appInfo : vector of HubAppinfo structure for each nanoApp
+ * on the hub that can be enabled, disabled and
+ * unloaded by the service. Any nanoApps that cannot
+ * be controlled by the service must not be reported.
+ * All nanoApps that can be controlled by the service
+ * must be reported.
*/
- handleAppsInfo(uint32_t hubId, vec<HubAppInfo> appInfo);
+ handleAppsInfo(vec<HubAppInfo> appInfo);
};
diff --git a/contexthub/1.0/types.hal b/contexthub/1.0/types.hal
index b9f014b..043bb39 100644
--- a/contexthub/1.0/types.hal
+++ b/contexthub/1.0/types.hal
@@ -18,6 +18,7 @@
enum Result : uint32_t {
OK, // Success
+ UNKNOWN_FAILURE, // Failure, unknown reason
BAD_PARAMS, // Parameters not sane
NOT_INIT, // not initialized
TRANSACTION_FAILED, // transaction failed