phoenix-firestorm/indra/newview/app_settings
Rick Pasetto 349eb393bc DEV-40650: Refactor llmediadataresponder and llmediadatafetcher into a single reusable class
CC Review #7 (monroe)

LLMediaDataResponder and LLMediaDataFetcher were helpful classes that interacted with each other, but they were not general enough to cleanly be used for all media service interaction. This change refactors these classes into one (in fact, it is closer to a complete rewrite): LLMediaDataClient. This class has the following design points:

- You subclass from it when you want to specialize the responder, and then subclass from LLMediaDataClient::Responder if desired
- It has a few inner classes:
- LLMediaDataClient::Request, which now holds all of the data pertaining to a request, including retry counts
- LLMediaDataClient::Responder, which is now the LLHTTPClient::Responder
- LLMediaDataClient::PriorityQueue, which is now a STL priority_queue of Request objects.
- LLMediaDataClient::QueueTimer, which is the timer that fires to peel off queue items
- LLMediaDataClient::Responder::RetryTimer, which is the timer that is used when 503 errors are received.

The encapsulation of these inner classes is a lot cleaner and better reflects the scope of their responsibilities.

By and large, the logic hasn't really changed much. However, now there are two subclasses of LLMediaDataClient: one for the ObjectMedia cap and the other for the ObjectMediaNavigate cap. (I decided it was overkill to make three subclasses, one each for GET, UPDATE, and NAVIGATE, but we could still do that). LLVOVolume now instantiates both of these classes as statics (and destroys them on shutdown). They now have very simple API:

- LLObjectMediaDataClient::fetchMedia(LLVOVolume*) fetches the media for the given object
- LLObjectMediaDataClient::updateMedia(LLVOVolume*) sends an UPDATE of the media from the given object
- LLObjectMediaNavigateClient::navigate(LLVOVolume*, U8 texture_index, const std::string &url) navigates the given face (texture_index) on the given object to the given url.
2009-10-05 17:21:08 +00:00
..
shaders Merging render-pipeline-6-qa-2 into viewer-2 2009-09-22 11:11:45 +00:00
windlight 1.19.1 Viewer merge: QAR_367, QAR-374, QAR-408, QAR-426 2008-04-03 19:21:14 +00:00
CA.pem Print done when done. 2007-01-02 08:33:20 +00:00
anim.ini Print done when done. 2007-01-02 08:33:20 +00:00
cmd_line.xml DEV-34569 2009-06-26 12:17:35 +00:00
foldertypes.xml svn merge -r129617:130277 svn+ssh://svn.lindenlab.com/svn/linden/branches/avatar-pipeline/currently-worn-folder-5 into svn+ssh://svn.lindenlab.com/svn/linden/branches/viewer/viewer-2.0.0-3 2009-08-12 19:03:20 +00:00
grass.xml merge release@83343 skinning-1-merge@83714 -> release 2008-04-01 17:45:04 +00:00
high_graphics.xml Merge of windlight into release (QAR-286). This includes all changes in 2008-02-27 18:58:14 +00:00
ignorable_dialogs.xml merge -r 122421-124917 viewer-2.0.0-2 -> viewer-2.0.0-3 2009-06-21 08:04:56 +00:00
keys.ini svn merge -r 81304:81392 svn+ssh://svn.lindenlab.com/svn/linden/branches/maint-ui-8-merge 2008-03-04 16:59:57 +00:00
keywords.ini svn merge -r 134922:134973 svn+ssh://svn.lindenlab.com/svn/linden/branches/media-on-a-prim/moap-7 2009-10-01 02:35:53 +00:00
logcontrol.xml small change to turn off ShaderLoading debug logging 2009-10-05 17:19:09 +00:00
low_graphics.xml Merge of windlight into release (QAR-286). This includes all changes in 2008-02-27 18:58:14 +00:00
mid_graphics.xml Merge of windlight into release (QAR-286). This includes all changes in 2008-02-27 18:58:14 +00:00
settings.xml DEV-40650: Refactor llmediadataresponder and llmediadatafetcher into a single reusable class 2009-10-05 17:21:08 +00:00
settings_crash_behavior.xml merge release@82383 viewer-cleanup2-7-merge@82828 2008-03-20 21:41:26 +00:00
settings_files.xml merge -r 122421-124917 viewer-2.0.0-2 -> viewer-2.0.0-3 2009-06-21 08:04:56 +00:00
settings_per_account.xml Merge xui-army-8 to pick up 2+ weeks of art, colors, and dialog layout changes. 2009-07-27 16:50:01 +00:00
std_bump.ini merge -r 122421-124917 viewer-2.0.0-2 -> viewer-2.0.0-3 2009-06-21 08:04:56 +00:00
trees.xml Print done when done. 2007-01-02 08:33:20 +00:00
ultra_graphics.xml Merge of windlight into release (QAR-286). This includes all changes in 2008-02-27 18:58:14 +00:00
viewerart.xml merge -r 59028:59178 maintenance -> release. 2007-03-16 20:39:40 +00:00