public PeopleFlow(DataflowOptions dataflowOptions) : base(dataflowOptions) { m_peopleRecorder = new StatisticsRecorder(this) { Name = "PeopleRecorder" }; m_converter = new TransformBlock <string, Person>(s => JsonConvert.DeserializeObject <Person>(s)); m_recorder = new TransformBlock <Person, Person>( p => { //record every person m_peopleRecorder.Record(p); return(p); }); m_converter.LinkTo(m_recorder, new DataflowLinkOptions() { PropagateCompletion = true }); RegisterChild(m_converter); RegisterChild(m_recorder); }
public void TestMethod1() { var recorder = new StatisticsRecorder(); recorder.Record("a"); recorder.Record("a"); recorder.Record("a"); recorder.Record(1); recorder.Record(1); recorder.Record(1); recorder.Record(1); recorder.Record(new EventHolder()); recorder.Record(new EventHolder()); recorder.Record(new EventHolder()); recorder.RecordEvent("ev1"); recorder.RecordEvent("ev1"); recorder.RecordEvent("ev1"); recorder.RecordEvent("ev1"); recorder.RecordEvent("ev1"); recorder.RecordEvent("ev2", "1"); recorder.RecordEvent("ev2", "2"); recorder.RecordEvent("ev3", "1"); recorder.RecordEvent("ev3", "1"); recorder.RecordEvent("ev3", "1"); Assert.AreEqual(3, recorder[typeof(string)]); Assert.AreEqual(3, recorder[typeof(EventHolder)]); Assert.AreEqual(4, recorder[typeof(int)]); Assert.AreEqual(5 + 3, recorder["ev1"]); Assert.AreEqual(2, recorder["ev2"]); Assert.AreEqual(3, recorder[new DataflowEvent("ev3", "1")]); Assert.AreEqual("a-b", new DataflowEvent("a", "b").ToString()); Assert.AreEqual("a", new DataflowEvent("a").ToString()); }
// Use this for initialization void Start() { manager = this; doUpdate = false; statisticsRecorder = new StatisticsRecorder(defaultMaterial); startTime = 0f; }
public SimpleLogReader(DataflowOptions dataflowOptions) : base(dataflowOptions) { this.m_parsingBlock = new TransformManyBlock <string, string>( s => { if (string.IsNullOrEmpty(s)) { return(Enumerable.Empty <string>()); } if (s == "ERROR") { throw new InvalidDataException("evil data :)"); } return(s.Split(Splitor)); }); this.m_recorder = new StatisticsRecorder(this); this.m_recordBlock = new ActionBlock <string>( s => { if (s == "ERROR") { throw new InvalidDataException("evil data :)"); } this.m_recorder.RecordEvent(s); }); var df1 = DataflowUtils.FromBlock(m_parsingBlock); var df2 = DataflowUtils.FromBlock(m_recordBlock); df1.LinkTo(df2); RegisterChild(df1); RegisterChild(df2); }
public SimpleLogReader(DataflowOptions dataflowOptions) : base(dataflowOptions) { this.m_parsingBlock = new TransformManyBlock<string, string>( s => { if (string.IsNullOrEmpty(s)) { return Enumerable.Empty<string>(); } if (s == "ERROR") { throw new InvalidDataException("evil data :)"); } return s.Split(Splitor); }); this.m_recorder = new StatisticsRecorder(this); this.m_recordBlock = new ActionBlock<string>( s => { if (s == "ERROR") { throw new InvalidDataException("evil data :)"); } this.m_recorder.RecordEvent(s); }); var df1 = DataflowUtils.FromBlock(m_parsingBlock); var df2 = DataflowUtils.FromBlock(m_recordBlock); df1.LinkTo(df2); RegisterChild(df1); RegisterChild(df2); }