public string GetXMLState(OpenMetaverse.UUID itemID, StopScriptReason stopScriptReason) { if (!_masterScheduler.IsRunning) { _log.ErrorFormat("[Phlox]: Unable to retrieve state data for {0} master scheduler has died", itemID); return(String.Empty); } StateDataRequest req = new StateDataRequest(itemID, true); req.DisableScriptReason = stopScriptReason; _exeScheduler.RequestStateData(req); bool success = req.WaitForData(STATE_REQUEST_TIMEOUT); if (req.SerializedStateData != null) { return(Convert.ToBase64String(req.SerializedStateData)); } else { _log.ErrorFormat("[Phlox]: Unable to retrieve state data for {0}, timeout: {1}", itemID, !success); return(String.Empty); } }
public void ScriptChanged(VM.Interpreter script) { lock (_scriptChangeLock) { _dirtyScripts[script.ItemId] = script; if (!_delayQueue.ContainsKey(script.ItemId)) { _delayQueue.Add(script.ItemId, DateTime.Now + SAVE_INTERVAL); _scheduler.RequestStateData(new StateDataRequest(script.ItemId, this.StateAvailable)); } } }