internal WrenchProvider (GraphBuilder gb, string basis, short id) : base (gb, basis) { namecontext = new NameLookupContext (); this.id = id; }
public static void Write (GraphBuilder gb, string file) { XmlTextWriter tw = new XmlTextWriter (file, System.Text.Encoding.UTF8); if (DebugOutput) tw.Formatting = Formatting.Indented; Write (gb, tw); }
public static void Write (GraphBuilder gb, string file) { BinaryGraphSerializer bsg = new BinaryGraphSerializer (gb, file); try { bsg.Write (); } catch (Exception e) { File.Delete (file); throw e; } }
public static void Write (GraphBuilder gb, XmlTextWriter tw) { tw.WriteStartElement ("mbuild-graph"); WriteDependents (gb, tw); WriteProviders (gb, tw); WriteTargets (gb, tw); WriteTags (gb, tw); WriteProject (gb, tw); tw.WriteEndElement (); tw.Close (); }
// Providers static void WriteProviders (GraphBuilder gb, XmlTextWriter tw) { tw.WriteStartElement ("providers"); foreach (WrenchProvider wp in gb.Providers) { tw.WriteStartElement ("p"); tw.WriteAttributeString ("id", wp.Id.ToString ()); tw.WriteAttributeString ("basis", wp.Basis); tw.WriteAttributeString ("decl_loc", wp.DeclarationLoc); tw.WriteAttributeString ("ntargs", wp.NumTargets.ToString ()); tw.WriteEndElement (); } tw.WriteEndElement (); }
// Dependents static void WriteDependents (GraphBuilder gb, XmlTextWriter tw) { tw.WriteStartElement ("dependents"); foreach (DependentItemInfo dii in gb.GetDependentFiles ()) { tw.WriteStartElement ("file"); WriteDependentInterior (dii, tw); tw.WriteEndElement (); } foreach (DependentItemInfo dii in gb.GetDependentBundles ()) { tw.WriteStartElement ("bundle"); WriteDependentInterior (dii, tw); tw.WriteEndElement (); } tw.WriteEndElement (); }
// Targets static void WriteTargets (GraphBuilder gb, XmlTextWriter tw) { tw.WriteStartElement ("targets"); foreach (WrenchTarget wt in gb.GetTargets ()) { tw.WriteStartElement ("t"); tw.WriteAttributeString ("id", wt.Id.ToString ()); tw.WriteAttributeString ("name", wt.Name); tw.WriteAttributeString ("rule", wt.RuleType.AssemblyQualifiedName); tw.WriteStartElement ("deps"); wt.VisitDependencies (new WriteVisitor (tw)); tw.WriteEndElement (); tw.WriteStartElement ("tags"); WriteTargetTags (gb, wt, tw); tw.WriteEndElement (); tw.WriteEndElement (); } tw.WriteEndElement (); }
// Project static void WriteProject (GraphBuilder gb, XmlTextWriter tw) { tw.WriteStartElement ("project-info"); ProjectInfo pinfo = gb.PInfo; tw.WriteAttributeString ("name", pinfo.Name); tw.WriteAttributeString ("version", pinfo.Version); tw.WriteAttributeString ("compat-code", pinfo.CompatCode); tw.WriteAttributeString ("buildfile-name", pinfo.BuildfileName); foreach (System.Reflection.AssemblyName aname in pinfo.Refs) { tw.WriteStartElement ("ref"); tw.WriteAttributeString ("name", aname.FullName); tw.WriteEndElement (); } tw.WriteEndElement (); }
// Tags static void WriteTags (GraphBuilder gb, XmlTextWriter tw) { tw.WriteStartElement ("tags"); foreach (string tag in gb.GetTags ()) { tw.WriteStartElement ("tag"); tw.WriteAttributeString ("name", tag); tw.WriteAttributeString ("id", gb.GetTagId (tag).ToString ()); tw.WriteEndElement (); } tw.WriteEndElement (); }
static void WriteTargetTags (GraphBuilder gb, WrenchTarget wt, XmlTextWriter tw) { foreach (KeyValuePair<string,SingleValue<int>> kvp in wt.IdTags) { int tagid = gb.GetTagId (kvp.Key); if (tagid < 0) throw ExHelp.Argument ("tag", "Invalid tag name {0}", kvp.Key); if (kvp.Value.IsResult) { tw.WriteStartElement ("rt"); tw.WriteAttributeString ("id", tagid.ToString ()); ((Result) kvp.Value).ExportXml (tw, "r"); } else { tw.WriteStartElement ("tt"); tw.WriteAttributeString ("id", tagid.ToString ()); tw.WriteAttributeString ("target", ((int) kvp.Value).ToString ()); } tw.WriteEndElement (); } }
BinaryGraphSerializer (GraphBuilder gb, string file) { this.gb = gb; s = File.Create (file, BufferSize); }
BinaryGraphSerializer(GraphBuilder gb, string file) { this.gb = gb; s = File.Create(file, BufferSize); }