Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
 // Use this for initialization
 void Start()
 {
     manager            = this;
     doUpdate           = false;
     statisticsRecorder = new StatisticsRecorder(defaultMaterial);
     startTime          = 0f;
 }
        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());
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }