Sync LLCompileQueue, fix compile (...queue)
This commit is contained in:
@@ -50,13 +50,13 @@
|
|||||||
#include "llviewerobject.h"
|
#include "llviewerobject.h"
|
||||||
#include "llviewerobjectlist.h"
|
#include "llviewerobjectlist.h"
|
||||||
#include "llviewerregion.h"
|
#include "llviewerregion.h"
|
||||||
//#include "lscript_rt_interface.h"
|
|
||||||
#include "llviewercontrol.h"
|
#include "llviewercontrol.h"
|
||||||
#include "llviewerobject.h"
|
#include "llviewerobject.h"
|
||||||
#include "llviewerregion.h"
|
#include "llviewerregion.h"
|
||||||
#include "llresmgr.h"
|
#include "llresmgr.h"
|
||||||
|
|
||||||
#include "llbutton.h"
|
#include "llbutton.h"
|
||||||
|
#include "llscrolllistctrl.h"
|
||||||
#include "lldir.h"
|
#include "lldir.h"
|
||||||
#include "llnotificationsutil.h"
|
#include "llnotificationsutil.h"
|
||||||
#include "llfloaterchat.h"
|
#include "llfloaterchat.h"
|
||||||
@@ -66,6 +66,9 @@
|
|||||||
|
|
||||||
#include "llselectmgr.h"
|
#include "llselectmgr.h"
|
||||||
|
|
||||||
|
// *TODO: This should be separated into the script queue, and the floater views of that queue.
|
||||||
|
// There should only be one floater class that can view any queue type
|
||||||
|
|
||||||
///----------------------------------------------------------------------------
|
///----------------------------------------------------------------------------
|
||||||
/// Local function declarations, constants, enums, and typedefs
|
/// Local function declarations, constants, enums, and typedefs
|
||||||
///----------------------------------------------------------------------------
|
///----------------------------------------------------------------------------
|
||||||
@@ -105,15 +108,10 @@ LLFloaterScriptQueue::LLFloaterScriptQueue(const std::string& name,
|
|||||||
mID.generate();
|
mID.generate();
|
||||||
|
|
||||||
LLUICtrlFactory::getInstance()->buildFloater(this,"floater_script_queue.xml");
|
LLUICtrlFactory::getInstance()->buildFloater(this,"floater_script_queue.xml");
|
||||||
|
|
||||||
childSetAction("close",onCloseBtn,this);
|
|
||||||
childSetEnabled("close",FALSE);
|
|
||||||
|
|
||||||
setTitle(title);
|
setTitle(title);
|
||||||
|
|
||||||
LLRect curRect = getRect();
|
LLRect curRect = getRect();
|
||||||
translate(rect.mLeft - curRect.mLeft, rect.mTop - curRect.mTop);
|
translate(rect.mLeft - curRect.mLeft, rect.mTop - curRect.mTop);
|
||||||
|
|
||||||
mStartString = start_string;
|
mStartString = start_string;
|
||||||
sInstances.addData(mID, this);
|
sInstances.addData(mID, this);
|
||||||
}
|
}
|
||||||
@@ -124,18 +122,20 @@ LLFloaterScriptQueue::~LLFloaterScriptQueue()
|
|||||||
sInstances.removeData(mID);
|
sInstances.removeData(mID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL LLFloaterScriptQueue::postBuild()
|
||||||
|
{
|
||||||
|
childSetAction("close",onCloseBtn,this);
|
||||||
|
getChildView("close")->setEnabled(FALSE);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
// find an instance by ID. Return NULL if it does not exist.
|
// find an instance by ID. Return NULL if it does not exist.
|
||||||
// static
|
// static
|
||||||
LLFloaterScriptQueue* LLFloaterScriptQueue::findInstance(const LLUUID& id)
|
LLFloaterScriptQueue* LLFloaterScriptQueue::findInstance(const LLUUID& id)
|
||||||
{
|
{
|
||||||
if(sInstances.checkData(id))
|
return sInstances.checkData(id)? sInstances.getData(id) : NULL
|
||||||
{
|
|
||||||
return sInstances.getData(id);
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// This is the callback method for the viewer object currently being
|
// This is the callback method for the viewer object currently being
|
||||||
// worked on.
|
// worked on.
|
||||||
// NOT static, virtual!
|
// NOT static, virtual!
|
||||||
@@ -191,7 +191,6 @@ void LLFloaterScriptQueue::addObject(const LLUUID& id)
|
|||||||
|
|
||||||
BOOL LLFloaterScriptQueue::start()
|
BOOL LLFloaterScriptQueue::start()
|
||||||
{
|
{
|
||||||
//LL_INFOS() << "LLFloaterCompileQueue::start()" << LL_ENDL;
|
|
||||||
std::string buffer;
|
std::string buffer;
|
||||||
|
|
||||||
LLStringUtil::format_map_t args;
|
LLStringUtil::format_map_t args;
|
||||||
@@ -201,7 +200,7 @@ BOOL LLFloaterScriptQueue::start()
|
|||||||
|
|
||||||
getChild<LLScrollListCtrl>("queue output")->addSimpleElement(buffer, ADD_BOTTOM);
|
getChild<LLScrollListCtrl>("queue output")->addSimpleElement(buffer, ADD_BOTTOM);
|
||||||
|
|
||||||
return nextObject();
|
return startQueue();
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL LLFloaterScriptQueue::isDone() const
|
BOOL LLFloaterScriptQueue::isDone() const
|
||||||
@@ -266,6 +265,42 @@ BOOL LLFloaterScriptQueue::popNext()
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL LLFloaterScriptQueue::startQueue()
|
||||||
|
{
|
||||||
|
return nextObject();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Singu TODO: Experiences
|
||||||
|
class CompileQueueExperienceResponder : public LLHTTPClient::ResponderWithResult
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CompileQueueExperienceResponder(const LLUUID& parent):mParent(parent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
LLUUID mParent;
|
||||||
|
|
||||||
|
/*virtual*/ void httpSuccess()
|
||||||
|
{
|
||||||
|
sendResult(getContent());
|
||||||
|
}
|
||||||
|
/*virtual*/ void httpFailure()
|
||||||
|
{
|
||||||
|
sendResult(LLSD());
|
||||||
|
}
|
||||||
|
void sendResult(const LLSD& content)
|
||||||
|
{
|
||||||
|
LLFloaterCompileQueue* queue = (LLFloaterCompileQueue*) LLFloaterScriptQueue::findInstance(mParent);
|
||||||
|
if(!queue)
|
||||||
|
return;
|
||||||
|
|
||||||
|
queue->experienceIdsReceived(content["experience_ids"]);
|
||||||
|
}
|
||||||
|
/*virtual*/ char const* getName() const { return "RequiredRubbish"; }
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///----------------------------------------------------------------------------
|
///----------------------------------------------------------------------------
|
||||||
/// Class LLFloaterCompileQueue
|
/// Class LLFloaterCompileQueue
|
||||||
@@ -306,7 +341,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
// static
|
// static
|
||||||
LLFloaterCompileQueue* LLFloaterCompileQueue::create(BOOL mono)
|
LLFloaterCompileQueue* LLFloaterCompileQueue::create(bool mono)
|
||||||
{
|
{
|
||||||
S32 left, top;
|
S32 left, top;
|
||||||
gFloaterView->getNewFloaterPosition(&left, &top);
|
gFloaterView->getNewFloaterPosition(&left, &top);
|
||||||
@@ -315,7 +350,7 @@ LLFloaterCompileQueue* LLFloaterCompileQueue::create(BOOL mono)
|
|||||||
LLFloaterCompileQueue* new_queue = new LLFloaterCompileQueue("queue", rect);
|
LLFloaterCompileQueue* new_queue = new LLFloaterCompileQueue("queue", rect);
|
||||||
|
|
||||||
new_queue->mUploadQueue = new LLAssetUploadQueue(new LLCompileFloaterUploadQueueSupplier(new_queue->getID()));
|
new_queue->mUploadQueue = new LLAssetUploadQueue(new LLCompileFloaterUploadQueueSupplier(new_queue->getID()));
|
||||||
new_queue->mMono = mono;
|
new_queue->setMono(mono);
|
||||||
new_queue->open();
|
new_queue->open();
|
||||||
return new_queue;
|
return new_queue;
|
||||||
}
|
}
|
||||||
@@ -387,6 +422,7 @@ void LLFloaterCompileQueue::handleInventory(LLViewerObject *viewer_object,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// This is the callback for when each script arrives
|
// This is the callback for when each script arrives
|
||||||
// static
|
// static
|
||||||
void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
|
void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
|
||||||
@@ -395,7 +431,10 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
|
|||||||
{
|
{
|
||||||
LL_INFOS() << "LLFloaterCompileQueue::scriptArrived()" << LL_ENDL;
|
LL_INFOS() << "LLFloaterCompileQueue::scriptArrived()" << LL_ENDL;
|
||||||
LLScriptQueueData* data = (LLScriptQueueData*)user_data;
|
LLScriptQueueData* data = (LLScriptQueueData*)user_data;
|
||||||
if(!data) return;
|
if(!data)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
LLFloaterCompileQueue* queue = static_cast<LLFloaterCompileQueue*> (LLFloaterScriptQueue::findInstance(data->mQueueID));
|
LLFloaterCompileQueue* queue = static_cast<LLFloaterCompileQueue*> (LLFloaterScriptQueue::findInstance(data->mQueueID));
|
||||||
|
|
||||||
std::string buffer;
|
std::string buffer;
|
||||||
@@ -423,8 +462,8 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
|
|||||||
file.read(script_data, script_size);
|
file.read(script_data, script_size);
|
||||||
|
|
||||||
queue->mUploadQueue->queue(filename, data->mTaskId,
|
queue->mUploadQueue->queue(filename, data->mTaskId,
|
||||||
data->mItemId, is_running, queue->mMono, queue->getID(),
|
data->mItemId, is_running, queue->mMono, queue->getID(),
|
||||||
script_data, script_size, data->mScriptName);
|
script_data, script_size, data->mScriptName);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -435,42 +474,6 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
|
|||||||
LL_WARNS() << "Problem uploading script asset." << LL_ENDL;
|
LL_WARNS() << "Problem uploading script asset." << LL_ENDL;
|
||||||
if(queue) queue->removeItemByItemID(data->mItemId);
|
if(queue) queue->removeItemByItemID(data->mItemId);
|
||||||
}
|
}
|
||||||
#if 0 //Client side compiling disabled.
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// It's now in the file, now compile it.
|
|
||||||
buffer = LLTrans::getString("CompileQueueDownloadedCompiling") + (": ") + data->mScriptName;
|
|
||||||
|
|
||||||
// Write script to local file for compilation.
|
|
||||||
LLFILE *fp = LLFile::fopen(filename, "wb"); /*Flawfinder: ignore*/
|
|
||||||
if (fp)
|
|
||||||
{
|
|
||||||
const S32 buf_size = 65536;
|
|
||||||
U8 copy_buf[buf_size];
|
|
||||||
|
|
||||||
while (file.read(copy_buf, buf_size)) /*Flawfinder: ignore*/
|
|
||||||
{
|
|
||||||
if (fwrite(copy_buf, file.getLastBytesRead(), 1, fp) < 1)
|
|
||||||
{
|
|
||||||
// return a bad file error if we can't write the whole thing
|
|
||||||
status = LL_ERR_CANNOT_OPEN_FILE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fclose(fp);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LL_ERRS() << "Unable to find object to compile" << LL_ENDL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: babbage: No compile if no cap.
|
|
||||||
queue->compile(filename, data->mItemId);
|
|
||||||
|
|
||||||
// Delete it after we're done compiling?
|
|
||||||
LLFile::remove(filename);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -506,83 +509,6 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
|
|||||||
delete data;
|
delete data;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0 //Client side compiling disabled.
|
|
||||||
// static
|
|
||||||
void LLFloaterCompileQueue::onSaveTextComplete(const LLUUID& asset_id, void* user_data, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed)
|
|
||||||
{
|
|
||||||
LL_INFOS() << "LLFloaterCompileQueue::onSaveTextComplete()" << LL_ENDL;
|
|
||||||
if (status)
|
|
||||||
{
|
|
||||||
LL_WARNS() << "Unable to save text for script." << LL_ENDL;
|
|
||||||
LLSD args;
|
|
||||||
args["REASON"] = std::string(LLAssetStorage::getErrorString(status));
|
|
||||||
LLNotificationsUtil::add("CompileQueueSaveText", args);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// static
|
|
||||||
void LLFloaterCompileQueue::onSaveBytecodeComplete(const LLUUID& asset_id, void* user_data, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed)
|
|
||||||
{
|
|
||||||
LL_INFOS() << "LLFloaterCompileQueue::onSaveBytecodeComplete()" << LL_ENDL;
|
|
||||||
LLCompileQueueData* data = (LLCompileQueueData*)user_data;
|
|
||||||
LLFloaterCompileQueue* queue = static_cast<LLFloaterCompileQueue*> (LLFloaterScriptQueue::findInstance(data->mQueueID));
|
|
||||||
if(queue && (0 == status) && data)
|
|
||||||
{
|
|
||||||
queue->saveItemByItemID(data->mItemId);
|
|
||||||
queue->removeItemByItemID(data->mItemId);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LL_WARNS() << "Unable to save bytecode for script." << LL_ENDL;
|
|
||||||
LLSD args;
|
|
||||||
args["REASON"] = std::string(LLAssetStorage::getErrorString(status));
|
|
||||||
LLNotificationsUtil::add("CompileQueueSaveBytecode", args);
|
|
||||||
}
|
|
||||||
delete data;
|
|
||||||
data = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// compile the file given and save it out.
|
|
||||||
void LLFloaterCompileQueue::compile(const std::string& filename,
|
|
||||||
const LLUUID& item_id)
|
|
||||||
{
|
|
||||||
LLUUID new_asset_id;
|
|
||||||
LLTransactionID tid;
|
|
||||||
tid.generate();
|
|
||||||
new_asset_id = tid.makeAssetID(gAgent.getSecureSessionID());
|
|
||||||
|
|
||||||
std::string uuid_string;
|
|
||||||
new_asset_id.toString(uuid_string);
|
|
||||||
std::string dst_filename;
|
|
||||||
dst_filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,uuid_string) + ".lso";
|
|
||||||
std::string err_filename;
|
|
||||||
err_filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,uuid_string) + ".out";
|
|
||||||
|
|
||||||
gAssetStorage->storeAssetData(filename, tid,
|
|
||||||
LLAssetType::AT_LSL_TEXT,
|
|
||||||
&onSaveTextComplete, NULL, FALSE);
|
|
||||||
|
|
||||||
const BOOL compile_to_mono = FALSE;
|
|
||||||
if(!lscript_compile(filename.c_str(), dst_filename.c_str(),
|
|
||||||
err_filename.c_str(), compile_to_mono,
|
|
||||||
uuid_string.c_str(), gAgent.isGodlike()))
|
|
||||||
{
|
|
||||||
LL_WARNS() << "compile failed" << LL_ENDL;
|
|
||||||
removeItemByItemID(item_id);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LL_INFOS() << "compile successful." << LL_ENDL;
|
|
||||||
|
|
||||||
// Save LSL bytecode
|
|
||||||
LLCompileQueueData* data = new LLCompileQueueData(mID, item_id);
|
|
||||||
gAssetStorage->storeAssetData(dst_filename, new_asset_id,
|
|
||||||
LLAssetType::AT_LSL_BYTECODE,
|
|
||||||
&LLFloaterCompileQueue::onSaveBytecodeComplete,
|
|
||||||
(void*)data, FALSE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const LLInventoryItem* LLFloaterCompileQueue::findItemByItemID(const LLUUID& asset_id) const
|
const LLInventoryItem* LLFloaterCompileQueue::findItemByItemID(const LLUUID& asset_id) const
|
||||||
{
|
{
|
||||||
@@ -651,7 +577,6 @@ void LLFloaterResetQueue::handleInventory(LLViewerObject* viewer_obj,
|
|||||||
{
|
{
|
||||||
// find all of the lsl, leaving off duplicates. We'll remove
|
// find all of the lsl, leaving off duplicates. We'll remove
|
||||||
// all matching asset uuids on compilation success.
|
// all matching asset uuids on compilation success.
|
||||||
std::vector<const char*> names;
|
|
||||||
|
|
||||||
LLInventoryObject::object_list_t::const_iterator it = inv->begin();
|
LLInventoryObject::object_list_t::const_iterator it = inv->begin();
|
||||||
LLInventoryObject::object_list_t::const_iterator end = inv->end();
|
LLInventoryObject::object_list_t::const_iterator end = inv->end();
|
||||||
@@ -712,8 +637,6 @@ void LLFloaterRunQueue::handleInventory(LLViewerObject* viewer_obj,
|
|||||||
{
|
{
|
||||||
// find all of the lsl, leaving off duplicates. We'll remove
|
// find all of the lsl, leaving off duplicates. We'll remove
|
||||||
// all matching asset uuids on compilation success.
|
// all matching asset uuids on compilation success.
|
||||||
std::vector<const char*> names;
|
|
||||||
|
|
||||||
LLInventoryObject::object_list_t::const_iterator it = inv->begin();
|
LLInventoryObject::object_list_t::const_iterator it = inv->begin();
|
||||||
LLInventoryObject::object_list_t::const_iterator end = inv->end();
|
LLInventoryObject::object_list_t::const_iterator end = inv->end();
|
||||||
for ( ; it != end; ++it)
|
for ( ; it != end; ++it)
|
||||||
@@ -791,13 +714,29 @@ void LLFloaterCompileQueue::removeItemByItemID(const LLUUID& asset_id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL LLFloaterCompileQueue::startQueue()
|
||||||
|
{
|
||||||
|
/* Singu TODO: Experiences
|
||||||
|
LLViewerRegion* region = gAgent.getRegion();
|
||||||
|
if (region)
|
||||||
|
{
|
||||||
|
std::string lookup_url=region->getCapability("GetCreatorExperiences");
|
||||||
|
if(!lookup_url.empty())
|
||||||
|
{
|
||||||
|
LLHTTPClient::get(lookup_url, new CompileQueueExperienceResponder(getKey().asUUID()));
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
return nextObject();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void LLFloaterNotRunQueue::handleInventory(LLViewerObject* viewer_obj,
|
void LLFloaterNotRunQueue::handleInventory(LLViewerObject* viewer_obj,
|
||||||
LLInventoryObject::object_list_t* inv)
|
LLInventoryObject::object_list_t* inv)
|
||||||
{
|
{
|
||||||
// find all of the lsl, leaving off duplicates. We'll remove
|
// find all of the lsl, leaving off duplicates. We'll remove
|
||||||
// all matching asset uuids on compilation success.
|
// all matching asset uuids on compilation success.
|
||||||
std::vector<const char*> names;
|
|
||||||
|
|
||||||
LLInventoryObject::object_list_t::const_iterator it = inv->begin();
|
LLInventoryObject::object_list_t::const_iterator it = inv->begin();
|
||||||
LLInventoryObject::object_list_t::const_iterator end = inv->end();
|
LLInventoryObject::object_list_t::const_iterator end = inv->end();
|
||||||
for ( ; it != end; ++it)
|
for ( ; it != end; ++it)
|
||||||
|
|||||||
@@ -40,10 +40,11 @@
|
|||||||
#include "lluuid.h"
|
#include "lluuid.h"
|
||||||
|
|
||||||
#include "llfloater.h"
|
#include "llfloater.h"
|
||||||
#include "llscrolllistctrl.h"
|
|
||||||
|
|
||||||
#include "llviewerinventory.h"
|
#include "llviewerinventory.h"
|
||||||
|
|
||||||
|
class LLScrollListCtrl;
|
||||||
|
|
||||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
// Class LLFloaterScriptQueue
|
// Class LLFloaterScriptQueue
|
||||||
//
|
//
|
||||||
@@ -58,20 +59,23 @@
|
|||||||
class LLFloaterScriptQueue : public LLFloater, public LLVOInventoryListener
|
class LLFloaterScriptQueue : public LLFloater, public LLVOInventoryListener
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
// find an instance by ID. Return NULL if it does not exist.
|
||||||
|
static LLFloaterScriptQueue* findInstance(const LLUUID& id);
|
||||||
|
LLFloaterScriptQueue(const std::string& name, const LLRect& rect,
|
||||||
|
const std::string& title, const std::string& start_string);
|
||||||
|
virtual ~LLFloaterScriptQueue();
|
||||||
|
|
||||||
|
/*virtual*/ BOOL postBuild();
|
||||||
|
|
||||||
|
void setMono(bool mono) { mMono = mono; }
|
||||||
|
|
||||||
// addObject() accepts an object id.
|
// addObject() accepts an object id.
|
||||||
void addObject(const LLUUID& id);
|
void addObject(const LLUUID& id);
|
||||||
|
|
||||||
// start() returns TRUE if the queue has started, otherwise FALSE.
|
// start() returns TRUE if the queue has started, otherwise FALSE.
|
||||||
BOOL start();
|
BOOL start();
|
||||||
|
|
||||||
// find an instance by ID. Return NULL if it does not exist.
|
|
||||||
static LLFloaterScriptQueue* findInstance(const LLUUID& id);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
LLFloaterScriptQueue(const std::string& name, const LLRect& rect,
|
|
||||||
const std::string& title, const std::string& start_string);
|
|
||||||
virtual ~LLFloaterScriptQueue();
|
|
||||||
|
|
||||||
// This is the callback method for the viewer object currently
|
// This is the callback method for the viewer object currently
|
||||||
// being worked on.
|
// being worked on.
|
||||||
/*virtual*/ void inventoryChanged(LLViewerObject* obj,
|
/*virtual*/ void inventoryChanged(LLViewerObject* obj,
|
||||||
@@ -88,12 +92,16 @@ protected:
|
|||||||
// returns true if this is done
|
// returns true if this is done
|
||||||
BOOL isDone() const;
|
BOOL isDone() const;
|
||||||
|
|
||||||
|
virtual BOOL startQueue();
|
||||||
|
|
||||||
// go to the next object. If no objects left, it falls out
|
// go to the next object. If no objects left, it falls out
|
||||||
// silently and waits to be killed by the deleteIfDone() callback.
|
// silently and waits to be killed by the deleteIfDone() callback.
|
||||||
BOOL nextObject();
|
BOOL nextObject();
|
||||||
BOOL popNext();
|
BOOL popNext();
|
||||||
|
|
||||||
// Get this instances ID.
|
void setStartString(const std::string& s) { mStartString = s; }
|
||||||
|
|
||||||
|
// Get this instance's ID.
|
||||||
const LLUUID& getID() const { return mID; }
|
const LLUUID& getID() const { return mID; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@@ -110,6 +118,7 @@ protected:
|
|||||||
static LLMap<LLUUID, LLFloaterScriptQueue*> sInstances;
|
static LLMap<LLUUID, LLFloaterScriptQueue*> sInstances;
|
||||||
|
|
||||||
std::string mStartString;
|
std::string mStartString;
|
||||||
|
bool mMono;
|
||||||
};
|
};
|
||||||
|
|
||||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@@ -133,13 +142,16 @@ class LLFloaterCompileQueue : public LLFloaterScriptQueue
|
|||||||
public:
|
public:
|
||||||
// Use this method to create a compile queue. Once created, it
|
// Use this method to create a compile queue. Once created, it
|
||||||
// will be responsible for it's own destruction.
|
// will be responsible for it's own destruction.
|
||||||
static LLFloaterCompileQueue* create(BOOL mono);
|
static LLFloaterCompileQueue* create(bool mono);
|
||||||
|
|
||||||
// remove any object in mScriptScripts with the matching uuid.
|
// remove any object in mScriptScripts with the matching uuid.
|
||||||
void removeItemByItemID(const LLUUID& item_id);
|
void removeItemByItemID(const LLUUID& item_id);
|
||||||
|
|
||||||
LLAssetUploadQueue* getUploadQueue() { return mUploadQueue; }
|
LLAssetUploadQueue* getUploadQueue() { return mUploadQueue; }
|
||||||
|
|
||||||
|
void experienceIdsReceived( const LLSD& content );
|
||||||
|
BOOL hasExperience(const LLUUID& id)const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
LLFloaterCompileQueue(const std::string& name, const LLRect& rect);
|
LLFloaterCompileQueue(const std::string& name, const LLRect& rect);
|
||||||
virtual ~LLFloaterCompileQueue();
|
virtual ~LLFloaterCompileQueue();
|
||||||
@@ -152,17 +164,6 @@ protected:
|
|||||||
static void scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
|
static void scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
|
||||||
LLAssetType::EType type,
|
LLAssetType::EType type,
|
||||||
void* user_data, S32 status, LLExtStat ext_status);
|
void* user_data, S32 status, LLExtStat ext_status);
|
||||||
|
|
||||||
#if 0 //Client side compiling disabled.
|
|
||||||
static void onSaveTextComplete(const LLUUID& asset_id, void* user_data, S32 status, LLExtStat ext_status);
|
|
||||||
|
|
||||||
static void onSaveBytecodeComplete(const LLUUID& asset_id,
|
|
||||||
void* user_data,
|
|
||||||
S32 status, LLExtStat ext_status);
|
|
||||||
|
|
||||||
// compile the file given and save it out.
|
|
||||||
void compile(const std::string& filename, const LLUUID& asset_id);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// remove any object in mScriptScripts with the matching uuid.
|
// remove any object in mScriptScripts with the matching uuid.
|
||||||
void removeItemByAssetID(const LLUUID& asset_id);
|
void removeItemByAssetID(const LLUUID& asset_id);
|
||||||
@@ -173,12 +174,13 @@ protected:
|
|||||||
// find InventoryItem given item id.
|
// find InventoryItem given item id.
|
||||||
const LLInventoryItem* findItemByItemID(const LLUUID& item_id) const;
|
const LLInventoryItem* findItemByItemID(const LLUUID& item_id) const;
|
||||||
|
|
||||||
|
virtual BOOL startQueue();
|
||||||
protected:
|
protected:
|
||||||
LLViewerInventoryItem::item_array_t mCurrentScripts;
|
LLViewerInventoryItem::item_array_t mCurrentScripts;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BOOL mMono; // Compile to mono.
|
|
||||||
LLAssetUploadQueue* mUploadQueue;
|
LLAssetUploadQueue* mUploadQueue;
|
||||||
|
uuid_list_t mExperienceIds;
|
||||||
};
|
};
|
||||||
|
|
||||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
Reference in New Issue
Block a user