summaryrefslogtreecommitdiff
path: root/indra/newview/llwearablelist.h
blob: cd5a479d112b98938b0263a6ed8598aa5d0bf7fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/** 
 * @file llwearablelist.h
 * @brief LLWearableList class header file
 *
 * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc.
 * $License$
 */

#ifndef LL_LLWEARABLELIST_H
#define LL_LLWEARABLELIST_H

#include "llwearable.h"
#include "llskiplist.h"
#include "lluuid.h"
#include "llassetstorage.h"

class LLWearableList
{
public:
	LLWearableList()	{}
	~LLWearableList();

	S32					getLength() { return mList.getLength(); }
	const LLWearable*	getFirst()	{ return mList.getFirstData(); }
	const LLWearable*	getNext()	{ return mList.getNextData(); }

	void				getAsset( 
							const LLAssetID& assetID,
							const LLString& wearable_name,
							LLAssetType::EType asset_type,
							void(*asset_arrived_callback)(LLWearable*, void* userdata),
							void* userdata );

	LLWearable*			createLegacyWearableFromAvatar( EWearableType type );

	LLWearable*			createWearableMatchedToInventoryItem( LLWearable* old_wearable, LLViewerInventoryItem* item );
	LLWearable*			createCopyFromAvatar( LLWearable* old_wearable, const std::string& new_name = "" );
	LLWearable*			createCopy( LLWearable* old_wearable );
	LLWearable*			createNewWearable( EWearableType type );
	
	// Pseudo-private
	static void	 	    processGetAssetReply(const char* filename, const LLAssetID& assetID, void* user_data, S32 status, LLExtStat ext_status);

protected:
	LLPtrSkipMap< const LLUUID, LLWearable* > mList;
};

extern LLWearableList gWearableList;

#endif  // LL_LLWEARABLELIST_H