Class LazyResourceManager


  • @NoReference
    public class LazyResourceManager
    extends ResourceManager
    A LRU based ResourceManager Wrapper. Not to be used by clients.
    • Constructor Detail

      • LazyResourceManager

        public LazyResourceManager​(int cacheSize,
                                   ResourceManager parent)
        Parameters:
        cacheSize - the lru cache size
        parent - ResourceManager
    • Method Detail

      • getDevice

        public Device getDevice()
        Description copied from class: ResourceManager
        Returns the Device for which this ResourceManager will create resources
        Specified by:
        getDevice in class ResourceManager
        Returns:
        the Device associated with this ResourceManager
      • getDefaultImage

        protected Image getDefaultImage()
        Description copied from class: ResourceManager
        Returns the default image that will be returned in the event that the intended image is missing.
        Specified by:
        getDefaultImage in class ResourceManager
        Returns:
        a default image that will be returned in the event that the intended image is missing.
      • create

        public Object create​(DeviceResourceDescriptor descriptor)
        Description copied from class: ResourceManager
        Returns the resource described by the given descriptor. If the resource already exists, the reference count is incremented and the exiting resource is returned. Otherwise, a new resource is allocated. Every call to this method should have a corresponding call to ResourceManager.destroy(DeviceResourceDescriptor).

        If the resource is intended to live for entire lifetime of the resource manager, a subsequent call to ResourceManager.destroy(DeviceResourceDescriptor) may be omitted and the resource will be cleaned up when the resource manager is disposed. This pattern is useful for short-lived LocalResourceManagers, but should never be used with the global resource manager since doing so effectively leaks the resource.

        The resources returned from this method are reference counted and may be shared internally with other resource managers. They should never be disposed outside of the ResourceManager framework, or it will cause exceptions in other code that shares them. For example, never call Resource.dispose() on anything returned from this method.

        Callers may safely downcast the result to the resource type associated with the descriptor. For example, when given an ImageDescriptor, the return value of this method will always be an Image.

        Specified by:
        create in class ResourceManager
        Parameters:
        descriptor - descriptor for the resource to allocate
        Returns:
        the newly allocated resource (not null)
      • find

        public Object find​(DeviceResourceDescriptor descriptor)
        Description copied from class: ResourceManager
        Returns a previously allocated resource associated with the given descriptor, or null if none exists yet.
        Specified by:
        find in class ResourceManager
        Parameters:
        descriptor - descriptor to find
        Returns:
        a previously allocated resource for the given descriptor or null if none.