1e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson/* 2e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * Copyright (C) 2012 The Android Open Source Project 3e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * 4e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * Licensed under the Apache License, Version 2.0 (the "License"); 5e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * you may not use this file except in compliance with the License. 6e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * You may obtain a copy of the License at 7e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * 8e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 9e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * 10e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * Unless required by applicable law or agreed to in writing, software 11e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 12e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * See the License for the specific language governing permissions and 14e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * limitations under the License. 15e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson */ 16e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson 17e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilsonpackage java.net; 18e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson 19e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson/** 20e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * A response cache that supports statistics tracking and updating stored 21e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * responses. Implementations of {@link ResponseCache} should implement this 22e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * interface to receive additional support from the HTTP engine. 23e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * 24e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * @hide 25e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson */ 26e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilsonpublic interface ExtendedResponseCache { 27e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson 28e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson /* 29e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * This hidden interface is defined in a non-hidden package (java.net) so 30e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * its @hide tag will be parsed by Doclava. This hides this interface from 31e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * implementing classes' documentation. 32e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson */ 33e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson 34e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson /** 35e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * Track an HTTP response being satisfied by {@code source}. 36e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * @hide 37e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson */ 38e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson void trackResponse(ResponseSource source); 39e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson 40e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson /** 41e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * Track an conditional GET that was satisfied by this cache. 42e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * @hide 43e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson */ 44e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson void trackConditionalCacheHit(); 45e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson 46e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson /** 47e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * Updates stored HTTP headers using a hit on a conditional GET. 48e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson * @hide 49e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson */ 50e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection); 51e636ca4d6bd101324bd95fbc817401e6e0b80a2cJesse Wilson} 52