public void cleanup() { //Cleanup slide trash CleanupInfo cleanupInfo = new CleanupInfo(); slideshow.cleanup(cleanupInfo, ResourceProvider); undoBuffer.clear(); //Can't really recover from this one, so just erase all undo List <Guid> cleanupSlides = new List <Guid>(projectGuidDirectories()); foreach (Slide slide in slideshow.Slides) { Guid guid; if (Guid.TryParse(slide.UniqueName, out guid)) { cleanupSlides.Remove(guid); } foreach (String file in ResourceProvider.listFiles("*", slide.UniqueName, true)) { if (!cleanupInfo.isClaimed(file)) { try { editorController.ResourceProvider.delete(file); } catch (Exception ex) { Logging.Log.Error("Cleanup -- Failed to delete file '{0}'. Reason: {1}", file, ex.Message); } } } } foreach (Guid dir in cleanupSlides) { try { editorController.ResourceProvider.delete(dir.ToString("D")); } catch (Exception ex) { Logging.Log.Error("Cleanup -- Failed to delete directory '{0}'. Reason: {1}", dir, ex.Message); } } PropFactory propFactory = standaloneController.PropFactory; DDAtlasPlugin plugin; using (Stream pluginFileStream = editorController.ResourceProvider.openFile("Plugin.ddp")) { plugin = SharedXmlSaver.Load <DDAtlasPlugin>(pluginFileStream); } plugin.setDependencyIds(cleanupInfo.getObjects <String>(ShowPropAction.PropClass) .Select(n => propFactory.getDependencyIdForProp(n)) .Where(id => id.HasValue) .Select(id => id.Value)); using (Stream pluginFileStream = editorController.ResourceProvider.openWriteStream("Plugin.ddp")) { SharedXmlSaver.Save(plugin, pluginFileStream); } }
public void CleanUp() { shadowCleanupList.AddRange(cleanupList); cleanupList.Clear(); foreach (CleanupInfo shadowCleanup in shadowCleanupList) { CleanupInfo current = shadowCleanup; OnCleanUp(current.handle); InternalRemoveComponent(current); } shadowCleanupList.Clear(); }
public override void Remove(GameObject go) { HandleVector <int> .Handle handle = GetHandle(go); OnCleanUpImmediate(handle); CleanupInfo cleanupInfo = new CleanupInfo(go, handle); if (!KComponentCleanUp.InCleanUpPhase) { cleanupList.Add(cleanupInfo); } else { InternalRemoveComponent(cleanupInfo); } }
public virtual void Remove(GameObject go) { HandleVector <int> .Handle handle = GetHandle(go); CleanupInfo cleanupInfo = new CleanupInfo(go, handle); if (!KComponentCleanUp.InCleanUpPhase) { cleanupList.Add(cleanupInfo); } else { RemoveFromCleanupList(go); OnCleanUp(handle); InternalRemoveComponent(cleanupInfo); } }
private void RunCore(CleanupInfo cleanupInfo, CleanupRunResult result) { if (cleanupInfo.IsFile) { if (File.Exists(cleanupInfo.FullPath)) { File.Delete(cleanupInfo.FullPath); } result.TargetAffectedFileCount++; } else { Directory.Delete(cleanupInfo.FullPath, true); } }
protected void RemoveFromCleanupList(object instance) { int num = 0; while (true) { if (num >= cleanupList.Count) { return; } CleanupInfo cleanupInfo = cleanupList[num]; if (cleanupInfo.instance == instance) { break; } num++; } cleanupList[num] = cleanupList[cleanupList.Count - 1]; cleanupList.RemoveAt(cleanupList.Count - 1); }
protected void InternalRemoveComponent(CleanupInfo info) { if (info.instance != null) { if (!instanceHandleMap.ContainsKey(info.instance)) { DebugUtil.LogErrorArgs("Tried to remove component of type", typeof(Header).ToString(), typeof(Payload).ToString(), "on instance", info.instance.ToString(), "but instance has not been registered yet. Handle:", info.handle); return; } instanceHandleMap.Remove(info.instance); } else { foreach (KeyValuePair <object, HandleVector <int> .Handle> item in instanceHandleMap) { if (item.Value == info.handle) { instanceHandleMap.Remove(item.Key); } } } Free(info.handle); spawnList.Remove(info.handle); }
public virtual void cleanup(Slide slide, CleanupInfo info, ResourceProvider resourceProvider) { }
public override void cleanup(Slide slide, CleanupInfo info, ResourceProvider resourceProvider) { info.claimFile(Path.Combine(slide.UniqueName, imageName)); base.cleanup(slide, info, resourceProvider); }