public void DumpNonTagFiles() { using (var util = new TagIndexDumpUtil(this.engine, directory)) { util.Setup(TagIndexDumpUtil.DumpFormat.Xml, TagIndexDumpUtil.DumpType.NonTags); System.IO.DirectoryInfo diri = new System.IO.DirectoryInfo(directory); util.NonTagsBegin(); DumpNonTagFilesRecursive(util, diri, engine.VersionToTagCollection()); util.NonTagsEnd(); } }
void DumpNonTagFilesRecursive(TagIndexDumpUtil util, System.IO.DirectoryInfo diri, TagInterface.TagGroupCollection coll) { System.IO.FileInfo[] files = diri.GetFiles(); System.IO.DirectoryInfo[] directories = diri.GetDirectories(); if (files.Length == 0 && directories.Length == 0) { util.NonTagsDirectoryBegin(diri.FullName.Replace(directory, ""), true); util.NonTagsDirectoryEnd(); } else { bool is_first = true; foreach (System.IO.FileInfo fi in files) { string ext; if (fi.Extension != "") ext = fi.Extension.Remove(0, 1).ToLowerInvariant(); // remove the '.' else continue; if (coll.FindGroupIndex(ext) == -1) { if (is_first) { util.NonTagsDirectoryBegin(diri.FullName.Replace(directory, ""), false); is_first = false; } util.NonTagsEntryAdd(fi.FullName.Replace(directory, "")); } } // if we wrote some entries, close the directory dump... if (!is_first) util.NonTagsDirectoryEnd(); foreach (System.IO.DirectoryInfo di in directories) DumpNonTagFilesRecursive(util, di, coll); } }
public void PrintDatabase() { using (var util = new TagIndexDumpUtil(this.engine, directory)) { util.Setup(TagIndexDumpUtil.DumpFormat.Xml, TagIndexDumpUtil.DumpType.Dependencies); util.TagInstancesBegin(); foreach (TagManager tm in Array) { util.TagInstanceBegin(tm.TagIndex, refManager[tm.ReferenceName], tm.GroupTag); util.TagInstanceDependentsBegin(); foreach (Blam.DatumIndex di in tm.References) { TagManager dep = Array[di]; util.TagInstanceDependentAdd(dep.Name, dep.GroupTag); } util.TagInstanceDependentsEnd(); util.TagInstanceEnd(); } util.TagInstancesEnd(); } }
public void DumpSharedReferences(TagIndex other) { List<Blam.DatumIndex> tag_indices = FindSharedReferences(other); if (tag_indices == null) return; using (var util = new TagIndexDumpUtil(this.engine, directory)) { util.Setup(TagIndexDumpUtil.DumpFormat.Xml, TagIndexDumpUtil.DumpType.SharedReferences); //util.SharedReferencesAddLeftIndex(); //util.SharedReferencesAddRightIndex(); util.SharedReferencesBegin(); foreach (Blam.DatumIndex di in tag_indices) { TagManager tm = Array[di]; util.TagInstanceBegin(tm.TagIndex, refManager[tm.ReferenceName], tm.GroupTag); util.TagInstanceEnd(); } util.SharedReferencesEnd(); } }
public void DumpToXml() { using (var util = new TagIndexDumpUtil(this.engine, directory)) { util.Setup(TagIndexDumpUtil.DumpFormat.Xml, TagIndexDumpUtil.DumpType.Memory); util.TagInstancesBegin(); foreach (TagManager tm in Array) { util.TagInstanceBegin(tm.TagIndex, refManager[tm.ReferenceName], tm.GroupTag); util.TagInstanceMemoryUsageAdd(tm.CalculateRuntimeSize(engine, false), tm.CalculateRuntimeSize(engine, true)); util.TagInstanceEnd(); } util.TagInstancesEnd(); } }