Example #1
0
        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);
            }
        }
Example #2
0
 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));
         }
     }
 }