Esempio n. 1
0
        public void doWork(Calc_Data data)
        {
            switch (data.type)
            {
            case Calc_Type.CALC_SET:
                this.set(data.value);
                break;

            case Calc_Type.CALC_ADD:
                this.add(data.value);
                break;

            case Calc_Type.CALC_SUB:
                this.sub(data.value);
                break;

            case Calc_Type.CALC_MULT:
                this.mult(data.value);
                break;

            default:
                break;
            }
        }
Esempio n. 2
0
        static public void CalcTest()
        {
            Calc myCalc = new Calc();

            System.Console.WriteLine("\n------------ Calc Phase 1: Explicit Calls ---------------\n");

            myCalc.set(3);
            myCalc.add(2);
            myCalc.sub(8);
            myCalc.mult(2);
            myCalc.sub(5);
            myCalc.add(4);
            myCalc.add(22);
            myCalc.sub(4);
            myCalc.mult(2);
            myCalc.sub(5);
            myCalc.set(11);
            myCalc.add(2);
            myCalc.sub(7);
            myCalc.mult(3);
            myCalc.sub(5);

            System.Console.WriteLine("\n------------ Calc Phase 2: Data Driven ---------------\n");

            Calc_Data data;

            // myCalc.set(3);
            data.type  = Calc_Type.CALC_SET;
            data.value = 3;
            myCalc.doWork(data);

            // myCalc.add(2);
            data.type  = Calc_Type.CALC_ADD;
            data.value = 2;
            myCalc.doWork(data);

            // myCalc.sub(8);
            data.type  = Calc_Type.CALC_SUB;
            data.value = 8;
            myCalc.doWork(data);

            // myCalc.mult(2);
            data.type  = Calc_Type.CALC_MULT;
            data.value = 2;
            myCalc.doWork(data);

            // myCalc.sub(5);
            data.type  = Calc_Type.CALC_SUB;
            data.value = 5;
            myCalc.doWork(data);

            // myCalc.add(4);
            data.type  = Calc_Type.CALC_ADD;
            data.value = 4;
            myCalc.doWork(data);

            // myCalc.add(22);
            data.type  = Calc_Type.CALC_ADD;
            data.value = 22;
            myCalc.doWork(data);

            // myCalc.sub(4);
            data.type  = Calc_Type.CALC_SUB;
            data.value = 4;
            myCalc.doWork(data);

            // myCalc.mult(2);
            data.type  = Calc_Type.CALC_MULT;
            data.value = 2;
            myCalc.doWork(data);

            // myCalc.sub(5);
            data.type  = Calc_Type.CALC_SUB;
            data.value = 5;
            myCalc.doWork(data);

            // myCalc.set(11);
            data.type  = Calc_Type.CALC_SET;
            data.value = 11;
            myCalc.doWork(data);

            // myCalc.add(2);
            data.type  = Calc_Type.CALC_ADD;
            data.value = 2;
            myCalc.doWork(data);

            // myCalc.sub(7);
            data.type  = Calc_Type.CALC_SUB;
            data.value = 7;
            myCalc.doWork(data);

            // myCalc.mult(3);
            data.type  = Calc_Type.CALC_MULT;
            data.value = 3;
            myCalc.doWork(data);

            // myCalc.sub(5);
            data.type  = Calc_Type.CALC_SUB;
            data.value = 5;
            myCalc.doWork(data);

            System.Console.WriteLine("\n------------ Calc Phase 3: Queued Data Driven ---------------\n");

            // Creates and initializes a new Queue.
            System.Collections.Generic.Queue <Calc_Data> myQ = new System.Collections.Generic.Queue <Calc_Data>();

            // myCalc.set(3);
            data.type  = Calc_Type.CALC_SET;
            data.value = 3;
            myQ.Enqueue(data);

            // myCalc.add(2);
            data.type  = Calc_Type.CALC_ADD;
            data.value = 2;
            myQ.Enqueue(data);

            // myCalc.sub(8);
            data.type  = Calc_Type.CALC_SUB;
            data.value = 8;
            myQ.Enqueue(data);

            // myCalc.mult(2);
            data.type  = Calc_Type.CALC_MULT;
            data.value = 2;
            myQ.Enqueue(data);

            // myCalc.sub(5);
            data.type  = Calc_Type.CALC_SUB;
            data.value = 5;
            myQ.Enqueue(data);

            // myCalc.add(4);
            data.type  = Calc_Type.CALC_ADD;
            data.value = 4;
            myQ.Enqueue(data);

            // myCalc.add(22);
            data.type  = Calc_Type.CALC_ADD;
            data.value = 22;
            myQ.Enqueue(data);

            // myCalc.sub(4);
            data.type  = Calc_Type.CALC_SUB;
            data.value = 4;
            myQ.Enqueue(data);

            // myCalc.mult(2);
            data.type  = Calc_Type.CALC_MULT;
            data.value = 2;
            myQ.Enqueue(data);

            // myCalc.sub(5);
            data.type  = Calc_Type.CALC_SUB;
            data.value = 5;
            myQ.Enqueue(data);

            // myCalc.set(11);
            data.type  = Calc_Type.CALC_SET;
            data.value = 11;
            myQ.Enqueue(data);

            // myCalc.add(2);
            data.type  = Calc_Type.CALC_ADD;
            data.value = 2;
            myQ.Enqueue(data);

            // myCalc.sub(7);
            data.type  = Calc_Type.CALC_SUB;
            data.value = 7;
            myQ.Enqueue(data);

            // myCalc.mult(3);
            data.type  = Calc_Type.CALC_MULT;
            data.value = 3;
            myQ.Enqueue(data);

            // myCalc.sub(5);
            data.type  = Calc_Type.CALC_SUB;
            data.value = 5;
            myQ.Enqueue(data);


            // Now the queue is NOW filled
            // print the contents
            int count = myQ.Count;

            for (int i = 0; i < count; i++)
            {
                Calc_Data tmpData = myQ.Dequeue();
                myCalc.doWork(tmpData);
            }
        }