diff options
author | Xiao Ma <xiaom@google.com> | 2019-03-19 06:54:43 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-03-19 06:54:43 -0700 |
commit | e18a83520682b5c197e15d503505de141861ee4f (patch) | |
tree | c99039d865f545c5706bc5395c3b4302741834aa /src/com/android/server/NetworkStackService.java | |
parent | 8fb8c3b2a939bcbe72fed8fca6b777d9bb508dbc (diff) | |
parent | 5b6787641347ef2122afcc39487ca7765dfb3f18 (diff) |
Merge "Move the IpMemoryStore to the network stack." am: 93bf5ef495 am: 5db1518bfa
am: 3176d57308
Change-Id: I243056012d2f099d96a33657c0eb63a5b66a2cfe
Diffstat (limited to 'src/com/android/server/NetworkStackService.java')
-rw-r--r-- | src/com/android/server/NetworkStackService.java | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/com/android/server/NetworkStackService.java b/src/com/android/server/NetworkStackService.java index e7c8e85..335d951 100644 --- a/src/com/android/server/NetworkStackService.java +++ b/src/com/android/server/NetworkStackService.java @@ -29,6 +29,8 @@ import android.app.Service; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; +import android.net.IIpMemoryStore; +import android.net.IIpMemoryStoreCallbacks; import android.net.INetd; import android.net.INetworkMonitor; import android.net.INetworkMonitorCallbacks; @@ -49,6 +51,7 @@ import android.os.RemoteException; import com.android.internal.annotations.GuardedBy; import com.android.internal.util.IndentingPrintWriter; import com.android.server.connectivity.NetworkMonitor; +import com.android.server.connectivity.ipmemorystore.IpMemoryStoreService; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -86,7 +89,19 @@ public class NetworkStackService extends Service { return makeConnector(this); } - private static class NetworkStackConnector extends INetworkStackConnector.Stub { + /** + * An interface for internal clients of the network stack service that can return + * or create inline instances of the service it manages. + */ + public interface NetworkStackServiceManager { + /** + * Get an instance of the IpMemoryStoreService. + */ + IIpMemoryStore getIpMemoryStoreService(); + } + + private static class NetworkStackConnector extends INetworkStackConnector.Stub + implements NetworkStackServiceManager { private static final int NUM_VALIDATION_LOG_LINES = 20; private final Context mContext; private final INetd mNetd; @@ -94,6 +109,7 @@ public class NetworkStackService extends Service { private final ConnectivityManager mCm; @GuardedBy("mIpClients") private final ArrayList<WeakReference<IpClient>> mIpClients = new ArrayList<>(); + private final IpMemoryStoreService mIpMemoryStoreService; private static final int MAX_VALIDATION_LOGS = 10; @GuardedBy("mValidationLogs") @@ -116,6 +132,7 @@ public class NetworkStackService extends Service { (IBinder) context.getSystemService(Context.NETD_SERVICE)); mObserverRegistry = new NetworkObserverRegistry(); mCm = context.getSystemService(ConnectivityManager.class); + mIpMemoryStoreService = new IpMemoryStoreService(context); try { mObserverRegistry.register(mNetd); @@ -159,7 +176,7 @@ public class NetworkStackService extends Service { @Override public void makeIpClient(String ifName, IIpClientCallbacks cb) throws RemoteException { - final IpClient ipClient = new IpClient(mContext, ifName, cb, mObserverRegistry); + final IpClient ipClient = new IpClient(mContext, ifName, cb, mObserverRegistry, this); synchronized (mIpClients) { final Iterator<WeakReference<IpClient>> it = mIpClients.iterator(); @@ -176,6 +193,17 @@ public class NetworkStackService extends Service { } @Override + public IIpMemoryStore getIpMemoryStoreService() { + return mIpMemoryStoreService; + } + + @Override + public void fetchIpMemoryStore(@NonNull final IIpMemoryStoreCallbacks cb) + throws RemoteException { + cb.onIpMemoryStoreFetched(mIpMemoryStoreService); + } + + @Override protected void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter fout, @Nullable String[] args) { checkDumpPermission(); |