summaryrefslogtreecommitdiff
path: root/indra/newview/lllandmarklist.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/lllandmarklist.h')
-rw-r--r--indra/newview/lllandmarklist.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/indra/newview/lllandmarklist.h b/indra/newview/lllandmarklist.h
index c41ba7a0f0..ebf1b65e97 100644
--- a/indra/newview/lllandmarklist.h
+++ b/indra/newview/lllandmarklist.h
@@ -33,6 +33,7 @@
#ifndef LL_LLLANDMARKLIST_H
#define LL_LLLANDMARKLIST_H
+#include <boost/function.hpp>
#include <map>
#include "lllandmark.h"
#include "lluuid.h"
@@ -45,6 +46,8 @@ class LLInventoryItem;
class LLLandmarkList
{
public:
+ typedef boost::function<void(LLLandmark*)> loaded_callback_t;
+
LLLandmarkList() {}
~LLLandmarkList();
@@ -53,7 +56,7 @@ public:
//const LLLandmark* getNext() { return mList.getNextData(); }
BOOL assetExists(const LLUUID& asset_uuid);
- LLLandmark* getAsset(const LLUUID& asset_uuid);
+ LLLandmark* getAsset(const LLUUID& asset_uuid, loaded_callback_t cb = NULL);
static void processGetAssetReply(
LLVFS *vfs,
const LLUUID& uuid,
@@ -63,11 +66,19 @@ public:
LLExtStat ext_status );
protected:
+ void onRegionHandle(const LLUUID& landmark_id);
+ void makeCallbacks(const LLUUID& landmark_id);
+
typedef std::map<LLUUID, LLLandmark*> landmark_list_t;
landmark_list_t mList;
typedef std::set<LLUUID> landmark_bad_list_t;
landmark_bad_list_t mBadList;
+
+ // *TODO: make the callback multimap a template class and make use of it
+ // here and in LLLandmark.
+ typedef std::multimap<LLUUID, loaded_callback_t> loaded_callback_map_t;
+ loaded_callback_map_t mLoadedCallbackMap;
};