Marble/TileDownload: Difference between revisions

From KDE Community Wiki
No edit summary
No edit summary
Line 8: Line 8:


Separation between http download and tile providing since http download is needed for wikipedia (and perhaps other stuff) integration also.
Separation between http download and tile providing since http download is needed for wikipedia (and perhaps other stuff) integration also.
The interface needs to support asynchronous calls because inside the network plugin we want to have a threaded implementation.
The network plugin should be able to handle redirects but it should also be possible to forbid redirects or to inform about redirects.
It should be possible to set a storage policy for the network plugin, so downloaded content could be saved in files for example.
The TileLoader should be able to handle not only files, but also QByteArrays or whatever is delivered by the network plugin interface.


=== Design proposal ===
=== Design proposal ===


to be done
to be done

Revision as of 19:35, 23 March 2009

Design considerations

Downloading of tiles should be in separate threads so that each connection to a tile server has its own thread.

Connections to tile servers should use the "keep alive" feature. At the moment for every tile a new connection is created.

Perhaps create an (abstract) interface / abstract class TileProvider? Not sure, if there is an use case.

Separation between http download and tile providing since http download is needed for wikipedia (and perhaps other stuff) integration also.

The interface needs to support asynchronous calls because inside the network plugin we want to have a threaded implementation.

The network plugin should be able to handle redirects but it should also be possible to forbid redirects or to inform about redirects.

It should be possible to set a storage policy for the network plugin, so downloaded content could be saved in files for example.

The TileLoader should be able to handle not only files, but also QByteArrays or whatever is delivered by the network plugin interface.

Design proposal

to be done