aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llmessage/llassetstorage.h
diff options
context:
space:
mode:
authorJacek Antonelli2008-09-06 18:24:57 -0500
committerJacek Antonelli2008-09-06 18:25:07 -0500
commit798d367d54a6c6379ad355bd8345fa40e31e7fe9 (patch)
tree1921f1708cd0240648c97bc02df2c2ab5f2fc41e /linden/indra/llmessage/llassetstorage.h
parentSecond Life viewer sources 1.20.15 (diff)
downloadmeta-impy-798d367d54a6c6379ad355bd8345fa40e31e7fe9.zip
meta-impy-798d367d54a6c6379ad355bd8345fa40e31e7fe9.tar.gz
meta-impy-798d367d54a6c6379ad355bd8345fa40e31e7fe9.tar.bz2
meta-impy-798d367d54a6c6379ad355bd8345fa40e31e7fe9.tar.xz
Second Life viewer sources 1.21.0-RC
Diffstat (limited to 'linden/indra/llmessage/llassetstorage.h')
-rw-r--r--linden/indra/llmessage/llassetstorage.h25
1 files changed, 19 insertions, 6 deletions
diff --git a/linden/indra/llmessage/llassetstorage.h b/linden/indra/llmessage/llassetstorage.h
index 739242a..86bf66a 100644
--- a/linden/indra/llmessage/llassetstorage.h
+++ b/linden/indra/llmessage/llassetstorage.h
@@ -197,7 +197,8 @@ public:
197}; 197};
198 198
199 199
200 200// Map of known bad assets
201typedef std::map<LLUUID,U64,lluuid_less> toxic_asset_map_t;
201 202
202typedef void (*LLGetAssetCallback)(LLVFS *vfs, const LLUUID &asset_id, 203typedef void (*LLGetAssetCallback)(LLVFS *vfs, const LLUUID &asset_id,
203 LLAssetType::EType asset_type, void *user_data, S32 status, LLExtStat ext_status); 204 LLAssetType::EType asset_type, void *user_data, S32 status, LLExtStat ext_status);
@@ -231,6 +232,9 @@ protected:
231 request_list_t mPendingUploads; 232 request_list_t mPendingUploads;
232 request_list_t mPendingLocalUploads; 233 request_list_t mPendingLocalUploads;
233 234
235 // Map of toxic assets - these caused problems when recently rezzed, so avoid them
236 toxic_asset_map_t mToxicAssetMap; // Objects in this list are known to cause problems and are not loaded
237
234public: 238public:
235 LLAssetStorage(LLMessageSystem *msg, LLXferManager *xfer, 239 LLAssetStorage(LLMessageSystem *msg, LLXferManager *xfer,
236 LLVFS *vfs, const LLHost &upstream_host); 240 LLVFS *vfs, const LLHost &upstream_host);
@@ -291,6 +295,15 @@ public:
291 const LLUUID &asset_id, LLAssetType::EType atype, 295 const LLUUID &asset_id, LLAssetType::EType atype,
292 LLGetAssetCallback cb, void *user_data, BOOL is_priority = FALSE); // Get a particular inventory item. 296 LLGetAssetCallback cb, void *user_data, BOOL is_priority = FALSE); // Get a particular inventory item.
293 297
298 // Check if an asset is in the toxic map. If it is, the entry is updated
299 BOOL isAssetToxic( const LLUUID& uuid );
300
301 // Clean the toxic asset list, remove old entries
302 void flushOldToxicAssets( BOOL force_it );
303
304 // Add an item to the toxic asset map
305 void markAssetToxic( const LLUUID& uuid );
306
294protected: 307protected:
295 virtual LLSD getPendingDetails(const request_list_t* requests, 308 virtual LLSD getPendingDetails(const request_list_t* requests,
296 LLAssetType::EType asset_type, 309 LLAssetType::EType asset_type,
@@ -365,7 +378,7 @@ public:
365 * AssetID version. 378 * AssetID version.
366 */ 379 */
367 virtual void storeAssetData( 380 virtual void storeAssetData(
368 const char* filename, 381 const std::string& filename,
369 const LLUUID& asset_id, 382 const LLUUID& asset_id,
370 LLAssetType::EType type, 383 LLAssetType::EType type,
371 LLStoreAssetCallback callback, 384 LLStoreAssetCallback callback,
@@ -379,7 +392,7 @@ public:
379 * TransactionID version 392 * TransactionID version
380 */ 393 */
381 virtual void storeAssetData( 394 virtual void storeAssetData(
382 const char * filename, 395 const std::string& filename,
383 const LLTransactionID &transaction_id, 396 const LLTransactionID &transaction_id,
384 LLAssetType::EType type, 397 LLAssetType::EType type,
385 LLStoreAssetCallback callback, 398 LLStoreAssetCallback callback,
@@ -438,9 +451,9 @@ protected:
438 451
439 static class LLMetrics *metric_recipient; 452 static class LLMetrics *metric_recipient;
440 453
441 static void reportMetric( const LLUUID& asset_id, const LLAssetType::EType asset_type, const char *filename, 454 static void reportMetric( const LLUUID& asset_id, const LLAssetType::EType asset_type, const std::string& filename,
442 const LLUUID& agent_id, S32 asset_size, EMetricResult result, 455 const LLUUID& agent_id, S32 asset_size, EMetricResult result,
443 const char *file, const S32 line, const char *message ); 456 const char* file, const S32 line, const std::string& message );
444public: 457public:
445 static void setMetricRecipient( LLMetrics *recip ) 458 static void setMetricRecipient( LLMetrics *recip )
446 { 459 {