Example #1
0
 // Constructor
 public Airline(string name, MultiCellBuffer buf)
 {
     this.airlineName = name;
     previousPrice = -1;   // -1 denotes no price has been set
     priceDropCounter = 0;
     this.buffer = buf;
 }
        private MultiCellBuffer buffer; //  Get buffer instance

        public Retailer(CancellationToken token, MultiCellBuffer buf)
        {
            buffer             = buf;
            serverSessionToken = token;
            currentPrice       = 9999;
            oldPrice           = 9999;
        }
 // Constructor
 public TravelAgency(string name, Thread airline, MultiCellBuffer buf)
 {
     this.completedOrders = new List<OrderObject>();
     this.agencyName = name;
     this.airline = airline;
     this.buffer = buf;
     this.priceDropOccured = false;
 }
                public void retailerFunc()
                {
                    Thread.Sleep(500);
                    ChickenFarm chicken    = new ChickenFarm();
                    OrderClass  ob         = new OrderClass();
                    int         senderId   = Convert.ToInt32(Thread.CurrentThread.Name);
                    int         cardNumber = rng.Next(5000, 7000);
                    int         amount     = rng.Next(50, 100);

                    ob.setSenderId(senderId);
                    ob.setCardNo(cardNumber);
                    ob.setAmount(amount);

                    //Now we should send this object to the encoder to convert into string
                    String          Encoder_result = Encoder(ob);
                    MultiCellBuffer cell_order     = new MultiCellBuffer();

                    cell_order.setOneCell(Encoder_result);
                }
Example #5
0
        static void Main(string[] args)
        {
            // buffer will be used by the airlines and travel agencies
            MultiCellBuffer buffer = new MultiCellBuffer();
            // 1 Airline for individual project.
            Airline a1 = new Airline("Krohn Airlines", buffer);
            Thread t1 = new Thread(a1.runAirline);	// airline thread

            // 5 Travel agencies for individual project.
            TravelAgency ta1 = new TravelAgency("Cheap Travel Help", t1, buffer);
            TravelAgency ta2 = new TravelAgency("Island Getaways", t1, buffer);
            TravelAgency ta3 = new TravelAgency("Northern Adventures", t1, buffer);
            TravelAgency ta4 = new TravelAgency("Deep Sea Excursions", t1, buffer);
            TravelAgency ta5 = new TravelAgency("Down South Travel", t1, buffer);
            // Travel agency threads
            Thread t2 = new Thread(ta1.runAgency);
            Thread t3 = new Thread(ta2.runAgency);
            Thread t4 = new Thread(ta3.runAgency);
            Thread t5 = new Thread(ta4.runAgency);
            Thread t6 = new Thread(ta5.runAgency);

            // Subscribe all the travel agencies to the price drop event in Airline
            a1.PriceDrop += ta1.OnPriceDrop;
            a1.PriceDrop += ta2.OnPriceDrop;
            a1.PriceDrop += ta3.OnPriceDrop;
            a1.PriceDrop += ta4.OnPriceDrop;
            a1.PriceDrop += ta5.OnPriceDrop;

            // Subscribe the airline to the OrderSubmit event in the buffer
            buffer.OrderSubmit += a1.OnOrderSubmitted;

            // Start all the threads
            t1.Start();
            t2.Start();
            t3.Start();
            t4.Start();
            t5.Start();
            t6.Start();
        }
 public ChickenFarm(MultiCellBuffer buf, int p = 9)
 {
     buffer   = buf;
     price    = PricingModel();
     pCounter = p;
 }
 private static void producer(object num)
 {
     MultiCellBuffer b = new MultiCellBuffer();
     b.SetOneCell(num.ToString());
     Console.WriteLine("Producer {0} set one cell", num);
 }
 private static void consumer(object num)
 {
     MultiCellBuffer b = new MultiCellBuffer();
     string a = b.GetOneCell();
     Console.WriteLine("Consumer {0} got cell {1}", num, a);
 }