Download Queue

From World Wind Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 13:55, 25 June 2005 (edit)
Mashiharu (Talk | contribs)

← Previous diff
Current revision (23:32, 27 June 2005) (edit) (undo)
Mashiharu (Talk | contribs)
(Suggestion)
 
(3 intermediate revisions not shown.)
Line 8: Line 8:
[[Image:DownloadQueue.png]] [[Image:DownloadQueue.png]]
-[[DownloadQueue]] is globally accessible and keeps track of active downloads and queued items. It doesn't run on it's own thread but starts downloads on the thread calling the Add/Remove methods, and also on the callback from WebDownload when a download has been completed. When initiating a download the DownloadQueue will loop through all requests and find the one with the highest score and download that. +==Suggestion==
 +[http://cvs.sourceforge.net/viewcvs.py/nasa-exp/WorldWind/WebDownload/DownloadQueue.cs DownloadQueue] is globally accessible and keeps track of active downloads and queued items. It doesn't run on it's own thread but starts downloads on the thread calling the Add/Remove methods, and also on the callback from [http://cvs.sourceforge.net/viewcvs.py/nasa-exp/WorldWind/WebDownload/WebDownload.cs WebDownload] when a download has been completed.
 + 
 +When initiating a download the DownloadQueue will loop through all requests and find the one with the highest score and download that. Downloads with score = float.MinValue will be removed.
 + 
 +In [http://cvs.sourceforge.net/viewcvs.py/nasa-exp/WorldWind/PluginSDK/ImageTileRequest.cs ImageTileRequest] the score equals the relative amount of screen area (pixels) the tile occupies. This prioritizes tiles that will have a big visual impact.
It would probably be nice to have other factors influcence the decisions too, like perhaps how many downloads are currently in progress from a certain server? It would probably be nice to have other factors influcence the decisions too, like perhaps how many downloads are currently in progress from a certain server?
[[Category:Dev]] [[Category:Dev]]

Current revision

World Wind has had no common download queue. Quad tile sets have had one queue each, terrain tiles had no queue at all and was blocking the update thread.

See:

[edit] Class diagram

Image:DownloadQueue.png

[edit] Suggestion

DownloadQueue is globally accessible and keeps track of active downloads and queued items. It doesn't run on it's own thread but starts downloads on the thread calling the Add/Remove methods, and also on the callback from WebDownload when a download has been completed.

When initiating a download the DownloadQueue will loop through all requests and find the one with the highest score and download that. Downloads with score = float.MinValue will be removed.

In ImageTileRequest the score equals the relative amount of screen area (pixels) the tile occupies. This prioritizes tiles that will have a big visual impact.

It would probably be nice to have other factors influcence the decisions too, like perhaps how many downloads are currently in progress from a certain server?

Personal tools