diff options
Diffstat (limited to 'services/java/com/android/server/am/ContentProviderConnection.java')
-rw-r--r-- | services/java/com/android/server/am/ContentProviderConnection.java | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/services/java/com/android/server/am/ContentProviderConnection.java b/services/java/com/android/server/am/ContentProviderConnection.java new file mode 100644 index 0000000..84f8f02 --- /dev/null +++ b/services/java/com/android/server/am/ContentProviderConnection.java @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2012 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 com.android.server.am; + +import android.os.Binder; + +/** + * Represents a link between a content provider and client. + */ +public class ContentProviderConnection extends Binder { + public final ContentProviderRecord provider; + public final ProcessRecord client; + public int stableCount; + public int unstableCount; + // The client of this connection is currently waiting for the provider to appear. + // Protected by the provider lock. + public boolean waiting; + // The provider of this connection is now dead. + public boolean dead; + + // For debugging. + public int numStableIncs; + public int numUnstableIncs; + + public ContentProviderConnection(ContentProviderRecord _provider, ProcessRecord _client) { + provider = _provider; + client = _client; + } + + public String toString() { + StringBuilder sb = new StringBuilder(128); + sb.append("ContentProviderConnection{"); + toShortString(sb); + sb.append('}'); + return sb.toString(); + } + + public String toShortString() { + StringBuilder sb = new StringBuilder(128); + toShortString(sb); + return sb.toString(); + } + + public String toClientString() { + StringBuilder sb = new StringBuilder(128); + toClientString(sb); + return sb.toString(); + } + + public void toShortString(StringBuilder sb) { + sb.append(provider.toShortString()); + sb.append("->"); + toClientString(sb); + } + + public void toClientString(StringBuilder sb) { + sb.append(client.toShortString()); + sb.append(" s"); + sb.append(stableCount); + sb.append("/"); + sb.append(numStableIncs); + sb.append(" u"); + sb.append(unstableCount); + sb.append("/"); + sb.append(numUnstableIncs); + if (waiting) { + sb.append(" WAITING"); + } + if (dead) { + sb.append(" DEAD"); + } + } +} |