internal void IncrementalUpdate(AssetIndexChangeSet changeset) { var it = IncrementalUpdate(-1, changeset); while (it.MoveNext()) { ; } }
private void IncrementalUpdate(AssetIndexChangeSet changeset) { #if DEBUG_LOG_CHANGES if (changeset.updated.Length > 0) { Log("Change", string.Join(", ", changeset.updated)); } if (changeset.removed.Length > 0) { Log("Remove", string.Join(", ", changeset.removed)); } #endif if (!this) { return; } AssetPostprocessorIndexer.contentRefreshed -= OnContentRefreshed; var baseScore = settings.baseScore; var indexName = settings.name.ToLowerInvariant(); var updates = ProduceArtifacts(changeset.updated); ++m_UpdateTasks; ResolveArtifacts(updates, null, new Task("Update", $"Updating {settings.name} index ({updates.Length})", (Task task, TaskData data) => { if (task.canceled || task.error != null) { if (task.error != null) { Debug.LogException(task.error); } --m_UpdateTasks; return; } byte[] mergedBytes = null; task.Report("Merging changes to index..."); task.RunThread(() => { index.Merge(changeset.removed, data.combinedIndex, baseScore, (di, indexer) => indexer.AddProperty("a", indexName, di, true, true)); mergedBytes = index.SaveBytes(); }, () => { //foreach (var t in changeset.updated) Debug.Log($"updated {t}"); //foreach (var t in changeset.removed) Debug.Log($"removed {t}"); --m_UpdateTasks; bytes = SaveIndex(mergedBytes, Setup); }); }, updates.Length, this)); }
private void OnContentRefreshed(string[] updated, string[] removed, string[] moved) { if (!this || settings.options.disabled || updating) { return; } var changeset = new AssetIndexChangeSet(updated, removed, moved, p => !index.SkipEntry(p, true)); if (changeset.empty) { return; } IncrementalUpdate(changeset); }
private void OnContentRefreshed(string[] updated, string[] removed, string[] moved) { if (!this || settings.options.disabled) { return; } var changeset = new AssetIndexChangeSet(updated, removed, moved, p => HasDocumentChanged(p)); if (!changeset.empty) { Log("OnContentRefreshed", changeset.all.ToArray()); var it = IncrementalUpdate(-1, changeset); while (it.MoveNext()) { ; } } }
private void OnContentRefreshed(string[] updated, string[] removed, string[] moved) { if (!this || settings.options.disabled) { return; } var changeset = new AssetIndexChangeSet(updated, removed, moved, p => HasDocumentChanged(p)); if (!changeset.empty) { Log("OnContentRefreshed", changeset.all.ToArray()); #if ENABLE_ASYNC_INCREMENTAL_UPDATES Progress.RunTask($"Updating {index.name} index...", null, IncrementalUpdate, Progress.Options.None, -1, changeset); #else var it = IncrementalUpdate(-1, changeset); while (it.MoveNext()) { ; } #endif } }