Revert "Initial checkin of AOSP Messaging app."
This reverts commit 461a34b466.
Change-Id: Iac4ca77eeaa94989e91dead49a7959c905bd3078
This commit is contained in:
@@ -1,112 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Esmertec AG.
|
||||
* Copyright (C) 2008 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.messaging.mmslib.util;
|
||||
|
||||
import android.support.v4.util.SimpleArrayMap;
|
||||
import android.util.Log;
|
||||
|
||||
public abstract class AbstractCache<K, V> {
|
||||
private static final String TAG = "AbstractCache";
|
||||
private static final boolean LOCAL_LOGV = false;
|
||||
|
||||
private static final int MAX_CACHED_ITEMS = 500;
|
||||
|
||||
private final SimpleArrayMap<K, CacheEntry<V>> mCacheMap;
|
||||
|
||||
protected AbstractCache() {
|
||||
mCacheMap = new SimpleArrayMap<K, CacheEntry<V>>();
|
||||
}
|
||||
|
||||
public boolean put(K key, V value) {
|
||||
if (LOCAL_LOGV) {
|
||||
Log.v(TAG, "Trying to put " + key + " into cache.");
|
||||
}
|
||||
|
||||
if (mCacheMap.size() >= MAX_CACHED_ITEMS) {
|
||||
// TODO: Should remove the oldest or least hit cached entry
|
||||
// and then cache the new one.
|
||||
if (LOCAL_LOGV) {
|
||||
Log.v(TAG, "Failed! size limitation reached.");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (key != null) {
|
||||
CacheEntry<V> cacheEntry = new CacheEntry<V>();
|
||||
cacheEntry.value = value;
|
||||
mCacheMap.put(key, cacheEntry);
|
||||
|
||||
if (LOCAL_LOGV) {
|
||||
Log.v(TAG, key + " cached, " + mCacheMap.size() + " items total.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public V get(K key) {
|
||||
if (LOCAL_LOGV) {
|
||||
Log.v(TAG, "Trying to get " + key + " from cache.");
|
||||
}
|
||||
|
||||
if (key != null) {
|
||||
CacheEntry<V> cacheEntry = mCacheMap.get(key);
|
||||
if (cacheEntry != null) {
|
||||
cacheEntry.hit++;
|
||||
if (LOCAL_LOGV) {
|
||||
Log.v(TAG, key + " hit " + cacheEntry.hit + " times.");
|
||||
}
|
||||
return cacheEntry.value;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public V purge(K key) {
|
||||
if (LOCAL_LOGV) {
|
||||
Log.v(TAG, "Trying to purge " + key);
|
||||
}
|
||||
|
||||
CacheEntry<V> v = mCacheMap.remove(key);
|
||||
|
||||
if (LOCAL_LOGV) {
|
||||
Log.v(TAG, mCacheMap.size() + " items cached.");
|
||||
}
|
||||
|
||||
return v != null ? v.value : null;
|
||||
}
|
||||
|
||||
public void purgeAll() {
|
||||
if (LOCAL_LOGV) {
|
||||
Log.v(TAG, "Purging cache, " + mCacheMap.size()
|
||||
+ " items dropped.");
|
||||
}
|
||||
mCacheMap.clear();
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return mCacheMap.size();
|
||||
}
|
||||
|
||||
private static class CacheEntry<V> {
|
||||
|
||||
int hit;
|
||||
|
||||
V value;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user