193a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein/* 293a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * Copyright (C) 2013 The Android Open Source Project 393a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * 493a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * Licensed under the Apache License, Version 2.0 (the "License"); 593a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * you may not use this file except in compliance with the License. 693a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * You may obtain a copy of the License at 793a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * 893a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * http://www.apache.org/licenses/LICENSE-2.0 993a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * 1093a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * Unless required by applicable law or agreed to in writing, software 1193a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * distributed under the License is distributed on an "AS IS" BASIS, 1293a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1393a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * See the License for the specific language governing permissions and 1493a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * limitations under the License. 1593a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein */ 1693a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein 1793a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzsteinpackage com.android.bitmap; 1893a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein 1993a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzsteinpublic interface PooledCache<K, V> { 2093a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein 2193a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein V get(K key, boolean incrementRefCount); 2293a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein V put(K key, V value); 2393a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein void offer(V scrapValue); 2493a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein V poll(); 2593a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein String toDebugString(); 2693a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein 2793a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein /** 2893a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * Purge existing Poolables from the pool+cache. Usually, this is done when situations 2993a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * change and the items in the pool+cache are no longer appropriate. For example, 3093a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * if the layout changes, the pool+cache may need to hold larger bitmaps. 3193a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * 3293a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * <p/> 3393a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * The existing Poolables will be garbage collected when they are no longer being referenced 3493a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein * by other objects. 3593a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein */ 3693a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein void clear(); 3793a35b93dc582e38ff8ee5979754a16b4bf4da0cSam Blitzstein} 38