From 2fc5a4b2e7ca8fa554050ba3329fa47733e97858 Mon Sep 17 00:00:00 2001 From: Arthur Ishiguro Date: Mon, 11 Dec 2017 15:15:44 -0800 Subject: [PATCH] Renames nanoapp instance IDs to handles in ContextHubService Use handles to refer to nanoapp instances at the service to be consistent with the terminology at NanoAppInstanceInfo, and to reduce confusion with other instance IDs (e.g. ones maintained in the CHRE implementation). Bug: 67734082 Test: None Change-Id: Iab60b4df20383907668824ac95c3f5a1a559ee6b --- .../android/server/location/ContextHubService.java | 23 ++++---- .../server/location/NanoAppStateManager.java | 62 +++++++++++----------- 2 files changed, 42 insertions(+), 43 deletions(-) diff --git a/services/core/java/com/android/server/location/ContextHubService.java b/services/core/java/com/android/server/location/ContextHubService.java index 6673a8909bd6..f70ca86eafcd 100644 --- a/services/core/java/com/android/server/location/ContextHubService.java +++ b/services/core/java/com/android/server/location/ContextHubService.java @@ -202,11 +202,11 @@ public class ContextHubService extends IContextHubService.Stub { return new IContextHubClientCallback.Stub() { @Override public void onMessageFromNanoApp(NanoAppMessage message) { - int nanoAppInstanceId = mNanoAppStateManager.getNanoAppInstanceId( + int nanoAppHandle = mNanoAppStateManager.getNanoAppHandle( contextHubId, message.getNanoAppId()); onMessageReceiptOldApi( - message.getMessageType(), contextHubId, nanoAppInstanceId, + message.getMessageType(), contextHubId, nanoAppHandle, message.getMessageBody()); } @@ -403,17 +403,17 @@ public class ContextHubService extends IContextHubService.Stub { } @Override - public int unloadNanoApp(int nanoAppInstanceHandle) throws RemoteException { + public int unloadNanoApp(int nanoAppHandle) throws RemoteException { checkPermissions(); if (mContextHubProxy == null) { return -1; } NanoAppInstanceInfo info = - mNanoAppStateManager.getNanoAppInstanceInfo(nanoAppInstanceHandle); + mNanoAppStateManager.getNanoAppInstanceInfo(nanoAppHandle); if (info == null) { - Log.e(TAG, "Cannot find app with handle " + nanoAppInstanceHandle); - return -1; //means failed + Log.e(TAG, "Cannot find nanoapp with handle " + nanoAppHandle); + return -1; } int contextHubId = info.getContexthubId(); @@ -434,11 +434,10 @@ public class ContextHubService extends IContextHubService.Stub { } @Override - public NanoAppInstanceInfo getNanoAppInstanceInfo( - int nanoAppInstanceHandle) throws RemoteException { + public NanoAppInstanceInfo getNanoAppInstanceInfo(int nanoAppHandle) throws RemoteException { checkPermissions(); - return mNanoAppStateManager.getNanoAppInstanceInfo(nanoAppInstanceHandle); + return mNanoAppStateManager.getNanoAppInstanceInfo(nanoAppHandle); } @Override @@ -524,7 +523,7 @@ public class ContextHubService extends IContextHubService.Stub { success = (client.sendMessageToNanoApp(message) == ContextHubTransaction.TRANSACTION_SUCCESS); } else { - Log.e(TAG, "Failed to send nanoapp message - nanoapp with instance ID " + Log.e(TAG, "Failed to send nanoapp message - nanoapp with handle " + nanoAppHandle + " does not exist."); } } @@ -556,9 +555,9 @@ public class ContextHubService extends IContextHubService.Stub { byte[] data = new byte[5]; data[0] = (byte) result; - int instanceId = mNanoAppStateManager.getNanoAppInstanceId( + int nanoAppHandle = mNanoAppStateManager.getNanoAppHandle( contextHubId, nanoAppBinary.getNanoAppId()); - ByteBuffer.wrap(data, 1, 4).order(ByteOrder.nativeOrder()).putInt(instanceId); + ByteBuffer.wrap(data, 1, 4).order(ByteOrder.nativeOrder()).putInt(nanoAppHandle); onMessageReceiptOldApi(MSG_LOAD_NANO_APP, contextHubId, OS_APP_INSTANCE, data); } diff --git a/services/core/java/com/android/server/location/NanoAppStateManager.java b/services/core/java/com/android/server/location/NanoAppStateManager.java index de040d2f7471..81c47849c3ad 100644 --- a/services/core/java/com/android/server/location/NanoAppStateManager.java +++ b/services/core/java/com/android/server/location/NanoAppStateManager.java @@ -48,24 +48,24 @@ import java.util.List; private static final boolean ENABLE_LOG_DEBUG = true; /* - * Service cache maintaining of instance ID to nanoapp infos. + * Service cache maintaining of handle to nanoapp infos. */ private final HashMap mNanoAppHash = new HashMap<>(); /* - * The next instance ID to use. + * The next nanoapp handle to use. */ - private int mNextInstanceId = 0; + private int mNextHandle = 0; /** - * @param instanceId the instance ID of the nanoapp - * @return the NanoAppInstanceInfo for the given nanoapp, null if the nanoapp does not exist in - * the cache + * @param nanoAppHandle the nanoapp handle + * @return the NanoAppInstanceInfo for the given nanoapp, or null if the nanoapp does not exist + * in the cache */ @Nullable /* package */ - synchronized NanoAppInstanceInfo getNanoAppInstanceInfo(int instanceId) { - return mNanoAppHash.get(instanceId); + synchronized NanoAppInstanceInfo getNanoAppInstanceInfo(int nanoAppHandle) { + return mNanoAppHash.get(nanoAppHandle); } /** @@ -79,10 +79,10 @@ import java.util.List; /** * @param contextHubId the ID of the hub to search for the instance * @param nanoAppId the unique 64-bit ID of the nanoapp - * @return the instance ID of the nanoapp, -1 if the nanoapp is not in the cache + * @return the nanoapp handle, -1 if the nanoapp is not in the cache */ /* package */ - synchronized int getNanoAppInstanceId(int contextHubId, long nanoAppId) { + synchronized int getNanoAppHandle(int contextHubId, long nanoAppId) { for (NanoAppInstanceInfo info : mNanoAppHash.values()) { if (info.getContexthubId() == contextHubId && info.getAppId() == nanoAppId) { return info.getHandle(); @@ -95,7 +95,7 @@ import java.util.List; /** * Adds a nanoapp instance to the cache. * - * If the cache already contained the nanoapp, the entry is removed and a new instance ID is + * If the cache already contained the nanoapp, the entry is removed and a new nanoapp handle is * generated. * * @param contextHubId the ID of the hub the nanoapp is loaded in @@ -110,20 +110,20 @@ import java.util.List; return; } - int instanceId = mNextInstanceId; + int nanoAppHandle = mNextHandle; for (int i = 0; i <= Integer.MAX_VALUE; i++) { - if (!mNanoAppHash.containsKey(instanceId)) { - mNanoAppHash.put(instanceId, new NanoAppInstanceInfo( - instanceId, nanoAppId, nanoAppVersion, contextHubId)); - mNextInstanceId = (instanceId == Integer.MAX_VALUE) ? 0 : instanceId + 1; + if (!mNanoAppHash.containsKey(nanoAppHandle)) { + mNanoAppHash.put(nanoAppHandle, new NanoAppInstanceInfo( + nanoAppHandle, nanoAppId, nanoAppVersion, contextHubId)); + mNextHandle = (nanoAppHandle == Integer.MAX_VALUE) ? 0 : nanoAppHandle + 1; break; } - instanceId = (instanceId == Integer.MAX_VALUE) ? 0 : instanceId + 1; + nanoAppHandle = (nanoAppHandle == Integer.MAX_VALUE) ? 0 : nanoAppHandle + 1; } if (ENABLE_LOG_DEBUG) { - Log.v(TAG, "Added app instance " + instanceId + " to hub " + contextHubId - + ": ID=0x" + Long.toHexString(nanoAppId) + Log.v(TAG, "Added app instance with handle " + nanoAppHandle + " to hub " + + contextHubId + ": ID=0x" + Long.toHexString(nanoAppId) + ", version=0x" + Integer.toHexString(nanoAppVersion)); } } @@ -135,8 +135,8 @@ import java.util.List; */ /* package */ synchronized void removeNanoAppInstance(int contextHubId, long nanoAppId) { - int instanceId = getNanoAppInstanceId(contextHubId, nanoAppId); - mNanoAppHash.remove(instanceId); + int nanoAppHandle = getNanoAppHandle(contextHubId, nanoAppId); + mNanoAppHash.remove(nanoAppHandle); } /** @@ -153,11 +153,11 @@ import java.util.List; nanoAppIdSet.add(appInfo.appId); } - for (int instanceId : mNanoAppHash.keySet()) { - NanoAppInstanceInfo info = mNanoAppHash.get(instanceId); + for (int nanoAppHandle : mNanoAppHash.keySet()) { + NanoAppInstanceInfo info = mNanoAppHash.get(nanoAppHandle); if (info.getContexthubId() == contextHubId && !nanoAppIdSet.contains(info.getAppId())) { - mNanoAppHash.remove(instanceId); + mNanoAppHash.remove(nanoAppHandle); } } } @@ -171,17 +171,17 @@ import java.util.List; * @param nanoAppVersion the version of the nanoapp */ private void handleQueryAppEntry(int contextHubId, long nanoAppId, int nanoAppVersion) { - int instanceId = getNanoAppInstanceId(contextHubId, nanoAppId); - if (instanceId == -1) { + int nanoAppHandle = getNanoAppHandle(contextHubId, nanoAppId); + if (nanoAppHandle == -1) { addNanoAppInstance(contextHubId, nanoAppId, nanoAppVersion); } else { - NanoAppInstanceInfo info = mNanoAppHash.get(instanceId); + NanoAppInstanceInfo info = mNanoAppHash.get(nanoAppHandle); if (info.getAppVersion() != nanoAppVersion) { - mNanoAppHash.put(instanceId, new NanoAppInstanceInfo( - instanceId, nanoAppId, nanoAppVersion, contextHubId)); + mNanoAppHash.put(nanoAppHandle, new NanoAppInstanceInfo( + nanoAppHandle, nanoAppId, nanoAppVersion, contextHubId)); if (ENABLE_LOG_DEBUG) { - Log.v(TAG, "Updated app instance " + instanceId + " at hub " + contextHubId - + ": ID=0x" + Long.toHexString(nanoAppId) + Log.v(TAG, "Updated app instance with handle " + nanoAppHandle + " at hub " + + contextHubId + ": ID=0x" + Long.toHexString(nanoAppId) + ", version=0x" + Integer.toHexString(nanoAppVersion)); } } -- 2.11.0