IT. Expert System.

Android Reference

Cache


org.apache.harmony.security.provider.cert

Class Cache



  • public class Cache
    extends Object
    The caching mechanism designed to speed up the process of Certificates/CRLs generation in the case of their repeated generation. It keeps correspondences between Objects (Certificates or CLRs) and arrays of bytes on the base of which the Objects have been generated, and provides the means to determine whether it contains the object built on the base of particular encoded form or not. If there are such objects they are returned from the cache, if not - newly generated objects can be saved in the cache.
    The process of Certificate/CRL generation (implemented in X509CertFactoryImpl) is accompanied with prereading of the beginning of encoded form. This prefix is used to determine whether provided form is PEM encoding or not.
    So the use of the prefix is the first point to (approximately) determine whether object to be generated is in the cache or not. The failure of the predetermination process tells us that there were not object generated from the encoded form with such prefix and we should generate (decode) the object. If predetermination is successful, we conduct the accurate search on the base of whole encoded form.
    So to speed up the object generation process this caching mechanism provides the following functionality:
    1. With having of the beginning of the encoded form (prefix) it is possible to predetermine whether object has already been generated on the base of the encoding with the SIMILAR prefix or not. This process is not computationally expensive and takes a little time. But it prevents us from use of expensive full encoding search in the case of its failure.
    2. If predetermination ends with success, the whole encoding form should be provided to make the final answer: whether object has already been generated on the base of this PARTICULAR encoded form or not. If it is so - the cached object is returned from the cache, if not - new object should be generated and saved in the cache.
    Note: The length of the prefixes of the encoded forms should not be less than correspondence (default value is 28).
    • Constructor Summary

      Constructors
      Constructor and Description
      Cache()
      Creates the Cache object of size of 9.
      Cache(int pref_size)
      Creates the Cache object of size of 9.
      Cache(int pref_size, int size)
      Creates the Cache object.
    • Method Summary

      Methods
      Modifier and Type Method and Description
      boolean contains(long prefix_hash)
      Checks if there are any object in the cache generated on the base of encoding with prefix corresponding to the specified hash code.
      Object get(long hash, byte[] encoding)
      Returns the object built on the base on the specified encoded form if it is contained in the cache and null otherwise.
      long getHash(byte[] arr)
      Returns the hash code for the array.
      void put(long hash, byte[] encoding, Object object)
      Puts the object into the cache.
    • Constructor Detail

      • Cache

        public Cache(int pref_size,
             int size)
        Creates the Cache object.
        Parameters:
        pref_size - specifies how many leading/trailing bytes of object's encoded form will be used for hash computation
        size - capacity of the cache to be created.
      • Cache

        public Cache(int pref_size)
        Creates the Cache object of size of 9.
        Parameters:
        pref_size - specifies how many leading/trailing bytes of object's encoded form will be used for hash computation
      • Cache

        public Cache()
        Creates the Cache object of size of 9.
    • Method Detail

      • getHash

        public long getHash(byte[] arr)
        Returns the hash code for the array. This code is used to predetermine whether the object was built on the base of the similar encoding or not (by means of contains(long) method), to exactly determine whether object is contained in the cache or not, and to put the object in the cache. Note: parameter array should be of length not less than specified by prefix_size (default 28)
        Parameters:
        arr - the byte array containing at least prefix_size leading bytes of the encoding.
        Returns:
        hash code for specified encoding prefix
      • contains

        public boolean contains(long prefix_hash)
        Checks if there are any object in the cache generated on the base of encoding with prefix corresponding to the specified hash code.
        Parameters:
        prefix_hash - the hash code for the prefix of the encoding (retrieved by method getHash(byte[]))
        Returns:
        false if there were not any object generated on the base of encoding with specified hash code, true otherwise.
      • get

        public Object get(long hash,
                 byte[] encoding)
        Returns the object built on the base on the specified encoded form if it is contained in the cache and null otherwise. This method is computationally expensive and should be called only if the method contains(long) for the hash code returned true.
        Parameters:
        hash - the hash code for the prefix of the encoding (retrieved by method getHash(byte[]))
        encoding - encoded form of the required object.
        Returns:
        the object corresponding to specified encoding or null if there is no such correspondence.
      • put

        public void put(long hash,
               byte[] encoding,
               Object object)
        Puts the object into the cache.
        Parameters:
        hash - hash code for the prefix of the encoding
        encoding - the encoded form of the object
        object - the object to be saved in the cache


Content

Android Reference

Java basics

Java Enterprise Edition (EE)

Java Standard Edition (SE)

SQL

HTML

PHP

CSS

Java Script

MYSQL

JQUERY

VBS

REGEX

C

C++

C#

Design patterns

RFC (standard status)

RFC (proposed standard status)

RFC (draft standard status)

RFC (informational status)

RFC (experimental status)

RFC (best current practice status)

RFC (historic status)

RFC (unknown status)

IT dictionary

License.
All information of this service is derived from the free sources and is provided solely in the form of quotations. This service provides information and interfaces solely for the familiarization (not ownership) and under the "as is" condition.
Copyright 2016 © ELTASK.COM. All rights reserved.
Site is optimized for mobile devices.
Downloads: 124 / 158668811. Delta: 0.00367 с