diff options
author | Ken Shirriff <kens@google.com> | 2009-09-03 15:28:16 -0700 |
---|---|---|
committer | Ken Shirriff <kens@google.com> | 2009-09-03 15:43:21 -0700 |
commit | 6fd7385f56b129b49164f606d23771a39507f772 (patch) | |
tree | 95024ffc2cf347e4c97594973ccfef8783cda80d /core/java/android | |
parent | 75f1d43b64cbf4b68ad62919a0c58907933ccd59 (diff) | |
download | frameworks_base-6fd7385f56b129b49164f606d23771a39507f772.zip frameworks_base-6fd7385f56b129b49164f606d23771a39507f772.tar.gz frameworks_base-6fd7385f56b129b49164f606d23771a39507f772.tar.bz2 |
Add sync_details support.
This adds sync_details logging to AbstractThreadedSyncAdapter and thus
the new contacts code.
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/content/AbstractThreadedSyncAdapter.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/core/java/android/content/AbstractThreadedSyncAdapter.java b/core/java/android/content/AbstractThreadedSyncAdapter.java index 1edcb0a..6d870da 100644 --- a/core/java/android/content/AbstractThreadedSyncAdapter.java +++ b/core/java/android/content/AbstractThreadedSyncAdapter.java @@ -19,6 +19,8 @@ package android.content; import android.accounts.Account; import android.os.Bundle; import android.os.Process; +import android.os.NetStat; +import android.util.EventLog; import java.util.concurrent.atomic.AtomicInteger; @@ -45,6 +47,7 @@ public abstract class AbstractThreadedSyncAdapter { /** Kernel event log tag. Also listed in data/etc/event-log-tags. */ public static final int LOG_SYNC_DETAILS = 2743; + private static final String TAG = "Sync"; private final boolean mAutoInitialize; /** @@ -127,6 +130,8 @@ public abstract class AbstractThreadedSyncAdapter { private final String mAuthority; private final Account mAccount; private final Bundle mExtras; + private long mInitialTxBytes; + private long mInitialRxBytes; private SyncThread(String name, SyncContext syncContext, String authority, Account account, Bundle extras) { @@ -145,6 +150,9 @@ public abstract class AbstractThreadedSyncAdapter { } SyncResult syncResult = new SyncResult(); + int uid = Process.myUid(); + mInitialTxBytes = NetStat.getUidTxBytes(uid); + mInitialRxBytes = NetStat.getUidRxBytes(uid); ContentProviderClient provider = null; try { provider = mContext.getContentResolver().acquireContentProviderClient(mAuthority); @@ -162,6 +170,8 @@ public abstract class AbstractThreadedSyncAdapter { if (!isCanceled()) { mSyncContext.onFinished(syncResult); } + logSyncDetails(NetStat.getUidTxBytes(uid) - mInitialTxBytes, + NetStat.getUidRxBytes(uid) - mInitialRxBytes, syncResult); // synchronize so that the assignment will be seen by other threads // that also synchronize accesses to mSyncThread synchronized (mSyncThreadLock) { @@ -196,4 +206,18 @@ public abstract class AbstractThreadedSyncAdapter { */ public abstract void performSync(Account account, Bundle extras, String authority, ContentProviderClient provider, SyncResult syncResult); + + /** + * Logs details on the sync. + * Normally this will be overridden by a subclass that will provide + * provider-specific details. + * + * @param bytesSent number of bytes the sync sent over the network + * @param bytesReceived number of bytes the sync received over the network + * @param result The SyncResult object holding info on the sync + */ + protected void logSyncDetails(long bytesSent, long bytesReceived, SyncResult result) { + EventLog.writeEvent(SyncAdapter.LOG_SYNC_DETAILS, TAG, bytesSent, bytesReceived, ""); + } + }
\ No newline at end of file |