Package 

Class Engine

  • All Implemented Interfaces:
    com.mobwith.imgmodule.load.engine.EngineJobListener , com.mobwith.imgmodule.load.engine.EngineResource.ResourceListener , com.mobwith.imgmodule.load.engine.cache.MemoryCache.ResourceRemovedListener

    
    public class Engine
     implements EngineJobListener, MemoryCache.ResourceRemovedListener, EngineResource.ResourceListener
                        

    Responsible for starting loads and managing active and cached resources.

    • Method Detail

      • load

         <R> Engine.LoadStatus load(ImageContext imageContext, Object model, Key signature, int width, int height, Class<out Object> resourceClass, Class<R> transcodeClass, Priority priority, DiskCacheStrategy diskCacheStrategy, Map<Class<out Object>, Transformation<out Object>> transformations, boolean isTransformationRequired, boolean isScaleOnlyOrNoTransform, Options options, boolean isMemoryCacheable, boolean useUnlimitedSourceExecutorPool, boolean useAnimationPool, boolean onlyRetrieveFromCache, ResourceCallback cb, Executor callbackExecutor)

        Starts a load for the given arguments.

        Must be called on the main thread.

        The flow for any request is as follows:

        • Check the current set of actively used resources, return the active resource if present,and move any newly inactive resources into the memory cache.
        • Check the memory cache and provide the cached resource if present.
        • Check the current set of in progress loads and add the cb to the in progress load if oneis present.
        • Start a new load.

        Active resources are those that have been provided to at least one request and have not yetbeen released. Once all consumers of a resource have released that resource, the resource thengoes to cache. If the resource is ever returned to a new consumer from cache, it is re-added tothe active resources. If the resource is evicted from the cache, its resources are recycled andre-used if possible and the resource is discarded. There is no strict requirement thatconsumers release their resources so active resources are held weakly.

        Parameters:
        width - The target width in pixels of the desired resource.
        height - The target height in pixels of the desired resource.
        cb - The callback that will be called when the load completes.