Skip to content
Snippets Groups Projects
Commit d1d39c1d authored by Andrey Lihatskiy's avatar Andrey Lihatskiy
Browse files

Merged in rider_linden/viewer-lynx (pull request #26)

parents 1adfaa08 a3c4d1cd
No related branches found
No related tags found
No related merge requests found
...@@ -181,6 +181,10 @@ class LLEstateAssetRequest : public LLBaseDownloadRequest ...@@ -181,6 +181,10 @@ class LLEstateAssetRequest : public LLBaseDownloadRequest
// Map of known bad assets // Map of known bad assets
typedef std::map<LLUUID,U64,lluuid_less> toxic_asset_map_t; typedef std::map<LLUUID,U64,lluuid_less> toxic_asset_map_t;
// *TODO: these typedefs are passed into the VFS via a legacy C function pointer
// future project would be to convert these to C++ callables (std::function<>) so that
// we can use bind and remove the userData parameter.
//
typedef void (*LLGetAssetCallback)(LLVFS *vfs, const LLUUID &asset_id, typedef void (*LLGetAssetCallback)(LLVFS *vfs, const LLUUID &asset_id,
LLAssetType::EType asset_type, void *user_data, S32 status, LLExtStat ext_status); LLAssetType::EType asset_type, void *user_data, S32 status, LLExtStat ext_status);
......
This diff is collapsed.
...@@ -37,6 +37,8 @@ ...@@ -37,6 +37,8 @@
#include "llviewerinventory.h" #include "llviewerinventory.h"
#include "llevents.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLFloaterScriptQueue // Class LLFloaterScriptQueue
// //
...@@ -48,7 +50,7 @@ ...@@ -48,7 +50,7 @@
// scripts manipulated. // scripts manipulated.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class LLFloaterScriptQueue : public LLFloater, public LLVOInventoryListener class LLFloaterScriptQueue : public LLFloater/*, public LLVOInventoryListener*/
{ {
public: public:
LLFloaterScriptQueue(const LLSD& key); LLFloaterScriptQueue(const LLSD& key);
...@@ -64,29 +66,18 @@ class LLFloaterScriptQueue : public LLFloater, public LLVOInventoryListener ...@@ -64,29 +66,18 @@ class LLFloaterScriptQueue : public LLFloater, public LLVOInventoryListener
// start() returns TRUE if the queue has started, otherwise FALSE. // start() returns TRUE if the queue has started, otherwise FALSE.
BOOL start(); BOOL start();
protected: void addProcessingMessage(const std::string &message, const LLSD &args);
// This is the callback method for the viewer object currently void addStringMessage(const std::string &message);
// being worked on.
/*virtual*/ void inventoryChanged(LLViewerObject* obj,
LLInventoryObject::object_list_t* inv,
S32 serial_num,
void* queue);
// This is called by inventoryChanged
virtual void handleInventory(LLViewerObject* viewer_obj,
LLInventoryObject::object_list_t* inv) = 0;
std::string getStartString() const { return mStartString; }
protected:
static void onCloseBtn(void* user_data); static void onCloseBtn(void* user_data);
// returns true if this is done // returns true if this is done
BOOL isDone() const; BOOL isDone() const;
virtual BOOL startQueue(); virtual bool startQueue() = 0;
// go to the next object. If no objects left, it falls out
// silently and waits to be killed by the deleteIfDone() callback.
BOOL nextObject();
BOOL popNext();
void setStartString(const std::string& s) { mStartString = s; } void setStartString(const std::string& s) { mStartString = s; }
...@@ -96,12 +87,16 @@ class LLFloaterScriptQueue : public LLFloater, public LLVOInventoryListener ...@@ -96,12 +87,16 @@ class LLFloaterScriptQueue : public LLFloater, public LLVOInventoryListener
LLButton* mCloseBtn; LLButton* mCloseBtn;
// Object Queue // Object Queue
std::vector<LLUUID> mObjectIDs; uuid_list_t mObjectIDs;
LLUUID mCurrentObjectID; LLUUID mCurrentObjectID;
bool mDone; bool mDone;
std::string mStartString; std::string mStartString;
bool mMono; bool mMono;
typedef boost::function<bool(const LLPointer<LLViewerObject> &, LLInventoryObject*, LLEventPump &)> fnQueueAction_t;
static void objectScriptProcessingQueueCoro(std::string action, LLHandle<LLFloaterScriptQueue> hfloater, uuid_list_t objectList, fnQueueAction_t func);
}; };
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...@@ -122,8 +117,6 @@ class LLFloaterCompileQueue : public LLFloaterScriptQueue ...@@ -122,8 +117,6 @@ class LLFloaterCompileQueue : public LLFloaterScriptQueue
{ {
friend class LLFloaterReg; friend class LLFloaterReg;
public: public:
// remove any object in mScriptScripts with the matching uuid.
void removeItemByItemID(const LLUUID& item_id);
void experienceIdsReceived( const LLSD& content ); void experienceIdsReceived( const LLSD& content );
BOOL hasExperience(const LLUUID& id)const; BOOL hasExperience(const LLUUID& id)const;
...@@ -132,27 +125,17 @@ class LLFloaterCompileQueue : public LLFloaterScriptQueue ...@@ -132,27 +125,17 @@ class LLFloaterCompileQueue : public LLFloaterScriptQueue
LLFloaterCompileQueue(const LLSD& key); LLFloaterCompileQueue(const LLSD& key);
virtual ~LLFloaterCompileQueue(); virtual ~LLFloaterCompileQueue();
// This is called by inventoryChanged virtual bool startQueue();
virtual void handleInventory(LLViewerObject* viewer_obj,
LLInventoryObject::object_list_t* inv);
static void requestAsset(struct LLScriptQueueData* datap, const LLSD& experience);
static bool processScript(LLHandle<LLFloaterCompileQueue> hfloater, const LLPointer<LLViewerObject> &object, LLInventoryObject* inventory, LLEventPump &pump);
static void finishLSLUpload(LLUUID itemId, LLUUID taskId, LLUUID newAssetId, LLSD response, std::string scriptName, LLUUID queueId); //bool checkAssetId(const LLUUID &assetId);
static void handleHTTPResponse(std::string pumpName, const LLSD &expresult);
// This is the callback for when each script arrives static void handleScriptRetrieval(LLVFS *vfs, const LLUUID& assetId, LLAssetType::EType type, void* userData, S32 status, LLExtStat extStatus);
static void scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
LLAssetType::EType type,
void* user_data, S32 status, LLExtStat ext_status);
virtual BOOL startQueue();
protected:
LLViewerInventoryItem::item_array_t mCurrentScripts;
private: private:
static void processExperienceIdResults(LLSD result, LLUUID parent); static void processExperienceIdResults(LLSD result, LLUUID parent);
//uuid_list_t mAssetIds; // list of asset IDs processed.
uuid_list_t mExperienceIds; uuid_list_t mExperienceIds;
}; };
...@@ -169,9 +152,9 @@ class LLFloaterResetQueue : public LLFloaterScriptQueue ...@@ -169,9 +152,9 @@ class LLFloaterResetQueue : public LLFloaterScriptQueue
LLFloaterResetQueue(const LLSD& key); LLFloaterResetQueue(const LLSD& key);
virtual ~LLFloaterResetQueue(); virtual ~LLFloaterResetQueue();
// This is called by inventoryChanged static bool resetObjectScripts(LLHandle<LLFloaterScriptQueue> hfloater, const LLPointer<LLViewerObject> &object, LLInventoryObject* inventory, LLEventPump &pump);
virtual void handleInventory(LLViewerObject* viewer_obj,
LLInventoryObject::object_list_t* inv); virtual bool startQueue();
}; };
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...@@ -186,10 +169,10 @@ class LLFloaterRunQueue : public LLFloaterScriptQueue ...@@ -186,10 +169,10 @@ class LLFloaterRunQueue : public LLFloaterScriptQueue
protected: protected:
LLFloaterRunQueue(const LLSD& key); LLFloaterRunQueue(const LLSD& key);
virtual ~LLFloaterRunQueue(); virtual ~LLFloaterRunQueue();
// This is called by inventoryChanged static bool runObjectScripts(LLHandle<LLFloaterScriptQueue> hfloater, const LLPointer<LLViewerObject> &object, LLInventoryObject* inventory, LLEventPump &pump);
virtual void handleInventory(LLViewerObject* viewer_obj,
LLInventoryObject::object_list_t* inv); virtual bool startQueue();
}; };
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...@@ -205,9 +188,9 @@ class LLFloaterNotRunQueue : public LLFloaterScriptQueue ...@@ -205,9 +188,9 @@ class LLFloaterNotRunQueue : public LLFloaterScriptQueue
LLFloaterNotRunQueue(const LLSD& key); LLFloaterNotRunQueue(const LLSD& key);
virtual ~LLFloaterNotRunQueue(); virtual ~LLFloaterNotRunQueue();
// This is called by inventoryChanged static bool stopObjectScripts(LLHandle<LLFloaterScriptQueue> hfloater, const LLPointer<LLViewerObject> &object, LLInventoryObject* inventory, LLEventPump &pump);
virtual void handleInventory(LLViewerObject* viewer_obj,
LLInventoryObject::object_list_t* inv); virtual bool startQueue();
}; };
#endif // LL_LLCOMPILEQUEUE_H #endif // LL_LLCOMPILEQUEUE_H
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment