public void PerformanceTest_VisitEntityContainer() { var entity = m_Manager.CreateEntity(typeof(TestComponent), typeof(TestBufferElementData)); var testComponent = m_Manager.GetComponentData <TestComponent>(entity); testComponent.x = 123f; m_Manager.SetComponentData(entity, testComponent); var buffer = m_Manager.GetBuffer <TestBufferElementData>(entity); buffer.Add(new TestBufferElementData { flt = 1.2f }); buffer.Add(new TestBufferElementData { flt = 3.4f }); var visitor = new DebugVisitor(); Measure.Method(() => { PropertyContainer.Visit(ref testComponent, visitor); }) .Definition("EntityContainerVisit") .WarmupCount(1) .MeasurementCount(100) .GC() .Run(); }
public static void ShowDebug(IExportContainer exportContainer) { var visitor = new DebugVisitor(); foreach (var item in exportContainer.ExportedItems) { var container = item as IExportContainer; var acceptor = item as IAcceptor; if (container != null) { if (acceptor != null) { Console.WriteLine("----"); acceptor.Accept(visitor); } ShowDebug(container); } else { if (acceptor != null) { acceptor.Accept(visitor); } } } }
public override void BuildExportList() { CreateDataSource(); SetupExpressionRunner(ReportModel.ReportSettings, DataSource); base.BuildExportList(); BuildDetail(); BuildReportFooter(); AddPage(CurrentPage); UpdatePageInfo(); ExpressionRunner.Run(); var formatVisitor = new FormatVisitor(); formatVisitor.Run(Pages); var dv = new DebugVisitor(); dv.Run(Pages); }
public void ExampleUsage() { Console.WriteLine("using serpent library version {0}", LibraryVersion.Version); var data = new Dictionary <string, object> { { "tuple", new [] { 1, 2, 3 } }, { "date", DateTime.Now }, { "set", new HashSet <string> { "a", "b", "c" } }, { "class", new SampleClass { Name = "Sally", Age = 26 } } }; // serialize data structure to bytes Serializer serpent = new Serializer(true); var ser = serpent.Serialize(data); // print it on the screen, but normally you'd store byte bytes in a file or transfer them across a network connection Console.WriteLine("Serialized:"); Console.WriteLine(Encoding.UTF8.GetString(ser)); // parse the serialized bytes back into an abstract syntax tree of the datastructure Parser parser = new Parser(); Ast ast = parser.Parse(ser); Console.WriteLine("\nParsed AST:"); Console.WriteLine(ast.Root.ToString()); // print debug representation DebugVisitor dv = new DebugVisitor(); ast.Accept(dv); Console.WriteLine("DEBUG string representation:"); Console.WriteLine(dv.ToString()); // turn the Ast into regular .net objects var dict = (IDictionary)ast.GetData(); // You can get the data out of the Ast manually as well, by using the supplied visitor: // var visitor = new ObjectifyVisitor(); // ast.Accept(visitor); // var dict = (IDictionary) visitor.GetObject(); // print the results Console.WriteLine("PARSED results:"); Console.Write("tuple items: "); var tuple = (object[])dict["tuple"]; Console.WriteLine(string.Join(", ", tuple.Select(e => e.ToString()).ToArray())); Console.WriteLine("date: {0}", dict["date"]); Console.Write("set items: "); var set = (HashSet <object>)dict["set"]; Console.WriteLine(string.Join(", ", set.Select(e => e.ToString()).ToArray())); Console.WriteLine("class attributes:"); var clazz = (IDictionary)dict["class"]; // custom classes are serialized as dicts Console.WriteLine(" type: {0}", clazz["__class__"]); Console.WriteLine(" name: {0}", clazz["name"]); Console.WriteLine(" age: {0}", clazz["age"]); Console.WriteLine(""); // parse and print the example file ser = File.ReadAllBytes("testserpent.utf8.bin"); ast = parser.Parse(ser); dv = new DebugVisitor(); ast.Accept(dv); Console.WriteLine("DEBUG string representation of the test file:"); Console.WriteLine(dv.ToString()); }
public DebugExporter(Collection <ExportPage> pages) : base(pages) { visitor = new DebugVisitor(); }