Tizen Native API  3.0
Dali::Toolkit::AsyncImageLoader Class Reference

The AsyncImageLoader is used to load pixel data from a URL asynchronously. More...

Inheritance diagram for Dali::Toolkit::AsyncImageLoader:
Dali::BaseHandle

Public Types

typedef Signal< void(uint32_t,
PixelData) > 
ImageLoadedSignalType
 Image loaded signal type.

Public Member Functions

 AsyncImageLoader ()
 Constructor which creates an empty AsyncImageLoader handle.
 ~AsyncImageLoader ()
 Destructor.
 AsyncImageLoader (const AsyncImageLoader &handle)
 This copy constructor is required for (smart) pointer semantics.
AsyncImageLoaderoperator= (const AsyncImageLoader &handle)
 This assignment operator is required for (smart) pointer semantics.
uint32_t Load (const std::string &url)
 Starts an image loading task. Note: When using this method, the following defaults will be used: fittingMode = FittingMode::DEFAULT samplingMode = SamplingMode::BOX_THEN_LINEAR orientationCorrection = true.
uint32_t Load (const std::string &url, ImageDimensions dimensions)
 Starts an image loading task. Note: When using this method, the following defaults will be used: fittingMode = FittingMode::DEFAULT samplingMode = SamplingMode::BOX_THEN_LINEAR orientationCorrection = true.
uint32_t Load (const std::string &url, ImageDimensions dimensions, FittingMode::Type fittingMode, SamplingMode::Type samplingMode, bool orientationCorrection)
 Starts an image loading task.
bool Cancel (uint32_t loadingTaskId)
 Cancels an image loading task if it is still queueing in the work thread.
void CancelAll ()
 Cancels all the loading tasks in the queue.
ImageLoadedSignalTypeImageLoadedSignal ()
 Signal emitted for connected callback functions to get access to the loaded pixel data.

Static Public Member Functions

static AsyncImageLoader New ()
 Creates a new loader to load the image asynchronously in a worker thread.
static AsyncImageLoader DownCast (BaseHandle handle)
 Downcasts a handle to AsyncImageLoader handle.

Detailed Description

The AsyncImageLoader is used to load pixel data from a URL asynchronously.

The images are loaded in a worker thread to avoid blocking the main event thread.

To keep track of the loading images, each load call is assigned an ID (which is returned by the Load() call). To know when the Load has completed, connect to the ImageLoadedSignal. This signal should be connected before Load is called (in case the signal is emitted immediately).

Load errors can be detected by checking the PixelData object is valid from within the signal handler.

Note: The PixelData object will automatically be destroyed when it leaves its scope.

Example:

 class MyClass : public ConnectionTracker
 {
   public:

   MyCallback( uint32_t loadedTaskId, PixelData pixelData )
   {
     // First check if the image loaded correctly.
     if( pixelData )
     {
       if( loadedTaskId == mId1 )
       {
         // use the loaded pixel data from the first image
       }
       else if( loadedTaskId == mId2 )
       {
         // use the loaded pixel data from the second image
       }
     }
   }

   uint32_t mId1;
   uint32_t mId2;
 };

 MyClass myObject;
 AsyncImageLoader imageLoader = AsyncImageLoader::New();

 // Connect the signal here.
 imageLoader.ImageLoadedSignal().Connect( &myObject, &MyClass::MyCallback );

 // Invoke the load calls (must do this after connecting the signal to guarantee callbacks occur).
 myObject.mId1 = imageLoader.Load( "first_image_url.jpg" );
 myObject.mId2 = imageLoader.Load( "second_image_url.jpg" );

Member Typedef Documentation

Image loaded signal type.

Since:
3.0, DALi version 1.2.14

Constructor & Destructor Documentation

Constructor which creates an empty AsyncImageLoader handle.

Since:
3.0, DALi version 1.2.14

Use AsyncImageLoader::New() to create an initialised object.

Destructor.

Since:
3.0, DALi version 1.2.14

This is non-virtual since derived Handle types must not contain data or virtual methods.

This copy constructor is required for (smart) pointer semantics.

Since:
3.0, DALi version 1.2.14
Parameters:
[in]handleA reference to the copied handle

Member Function Documentation

bool Dali::Toolkit::AsyncImageLoader::Cancel ( uint32_t  loadingTaskId)

Cancels an image loading task if it is still queueing in the work thread.

Since:
3.0, DALi version 1.2.14
Parameters:
[in]loadingTaskIdThe task id returned when invoking the load call.
Returns:
If true, the loading task is removed from the queue, otherwise the loading is already implemented and unable to cancel anymore

Cancels all the loading tasks in the queue.

Since:
3.0, DALi version 1.2.14

Downcasts a handle to AsyncImageLoader handle.

If the handle points to an AsyncImageLoader object, the downcast produces a valid handle. If not, the returned handle is left uninitialized.

Since:
3.0, DALi version 1.2.14
Parameters:
[in]handleA handle to an object
Returns:
A handle to a AsyncImageLoader object or an uninitialized handle

Signal emitted for connected callback functions to get access to the loaded pixel data.

A callback of the following type may be connected:

   void YourCallbackName( uint32_t id, PixelData pixelData );
Since:
3.0, DALi version 1.2.14
Returns:
A reference to a signal object to Connect() with
uint32_t Dali::Toolkit::AsyncImageLoader::Load ( const std::string &  url)

Starts an image loading task. Note: When using this method, the following defaults will be used: fittingMode = FittingMode::DEFAULT samplingMode = SamplingMode::BOX_THEN_LINEAR orientationCorrection = true.

Since:
3.0, DALi version 1.2.14
Remarks:
http://tizen.org/privilege/internet is needed if url is a http or https address.
http://tizen.org/privilege/mediastorage is needed if url is relevant to media storage.
http://tizen.org/privilege/externalstorage is needed if url is relevant to external storage.
Parameters:
[in]urlThe URL of the image file to load
Returns:
The loading task id
uint32_t Dali::Toolkit::AsyncImageLoader::Load ( const std::string &  url,
ImageDimensions  dimensions 
)

Starts an image loading task. Note: When using this method, the following defaults will be used: fittingMode = FittingMode::DEFAULT samplingMode = SamplingMode::BOX_THEN_LINEAR orientationCorrection = true.

Since:
3.0, DALi version 1.2.14
Remarks:
http://tizen.org/privilege/internet is needed if url is a http or https address.
http://tizen.org/privilege/mediastorage is needed if url is relevant to media storage.
http://tizen.org/privilege/externalstorage is needed if url is relevant to external storage.
Parameters:
[in]urlThe URL of the image file to load
[in]dimensionsThe width and height to fit the loaded image to
Returns:
The loading task id
uint32_t Dali::Toolkit::AsyncImageLoader::Load ( const std::string &  url,
ImageDimensions  dimensions,
FittingMode::Type  fittingMode,
SamplingMode::Type  samplingMode,
bool  orientationCorrection 
)

Starts an image loading task.

Since:
3.0, DALi version 1.2.14
Remarks:
http://tizen.org/privilege/internet is needed if url is a http or https address.
http://tizen.org/privilege/mediastorage is needed if url is relevant to media storage.
http://tizen.org/privilege/externalstorage is needed if url is relevant to external storage.
Parameters:
[in]urlThe URL of the image file to load
[in]dimensionsThe width and height to fit the loaded image to
[in]fittingModeThe method used to fit the shape of the image before loading to the shape defined by the size parameter
[in]samplingModeThe filtering method used when sampling pixels from the input image while fitting it to desired size
[in]orientationCorrectionReorient the image to respect any orientation metadata in its header
Returns:
The loading task id

Creates a new loader to load the image asynchronously in a worker thread.

Since:
3.0, DALi version 1.2.14
Returns:
The image loader
AsyncImageLoader& Dali::Toolkit::AsyncImageLoader::operator= ( const AsyncImageLoader handle)

This assignment operator is required for (smart) pointer semantics.

Since:
3.0, DALi version 1.2.14
Parameters:
[in]handleA reference to the copied handle
Returns:
A reference to this