com.bumptech.glide.load.engine
Class EngineResource<Z>

java.lang.Object
  extended by com.bumptech.glide.load.engine.EngineResource<Z>
Type Parameters:
Z - The type of data returned by the wrapped Resource.
All Implemented Interfaces:
Resource<Z>

public class EngineResource<Z>
extends Object
implements Resource<Z>

A wrapper resource that allows reference counting a wrapped Resource interface.


Method Summary
 void acquire(int times)
          Increments the number of consumers using the wrapped resource.
 Z get()
          Returns an instance of the wrapped resource.
 int getSize()
          Returns the size in bytes of the wrapped resource to use to determine how much of the memory cache this resource uses.
 void recycle()
          Cleans up and recycles internal resources.
 void release()
          Decrements the number of consumers using the wrapped resource.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

get

public Z get()
Description copied from interface: Resource
Returns an instance of the wrapped resource.

Note - This does not have to be the same instance of the wrapped resource class and in fact it is often appropriate to return a new instance for each call. For example, Drawables should only be used by a single View at a time so each call to this method for Resources that wrap Drawables should always return a new Drawable.

Specified by:
get in interface Resource<Z>

getSize

public int getSize()
Description copied from interface: Resource
Returns the size in bytes of the wrapped resource to use to determine how much of the memory cache this resource uses.

Specified by:
getSize in interface Resource<Z>

recycle

public void recycle()
Cleans up and recycles internal resources.

It is only safe to call this method if there are no current resource consumers and if this method has not yet been called. Typically this occurs at one of two times:

For most users of this class, the only time this method should ever be called is during transformations or transcoders, the framework will call this method when all consumers have released this resource and it has been evicted from the cache.

Specified by:
recycle in interface Resource<Z>

acquire

public void acquire(int times)
Increments the number of consumers using the wrapped resource. Must be called on the main thread.

This must be called with a number corresponding to the number of new consumers each time new consumers begin using the wrapped resource. It is always safer to call acquire more often than necessary. Generally external users should never call this method, the framework will take care of this for you.

Parameters:
times - The number of consumers that have just started using the resource.

release

public void release()
Decrements the number of consumers using the wrapped resource. Must be called on the main thread.

This must only be called when a consumer that called the acquire(int) method is now done with the resource. Generally external users should never callthis method, the framework will take care of this for you.