/* * Parameterized Constructor */ public Retailer(int id, MultiCellBuffer buffer, CreditCardHelper cch) { this.retailerID = id; this.buffer = buffer; this.cardNumber = cch.getCardNo(retailerID); }
static void Main(string[] args) { int noOfBufferCells = 3; // Buffer Capacity- Number of cells in Multicellbuffer int N = 5; //Number of Reatilers ChickenFarm chickenFarm = new ChickenFarm(); Thread chickenFarm_thread = new Thread(new ThreadStart(chickenFarm.farmerFunc)); CreditCardHelper creditCardHelper = new CreditCardHelper(N); MultiCellBuffer buffer = new MultiCellBuffer(noOfBufferCells); buffer.bufferSemaphore.Release(noOfBufferCells); OrderProcessing orderProcessing = new OrderProcessing(buffer, creditCardHelper); chickenFarm_thread.Name = "ChickenFarm"; chickenFarm_thread.Start(); Retailer retailer = null; for (int i = 0; i < N; i++) { retailer = new Retailer(i, buffer, creditCardHelper); chickenFarm.priceCut += new priceCutEvent(retailer.chickensOnSale); } buffer.newOrder += new newOrderEvent(orderProcessing.orderProcessing); orderProcessing.orderCompleted += new orderCompletedEvent(retailer.confirmationFunc); Console.ReadKey(); }
/* * Constructor */ public OrderProcessing(MultiCellBuffer buffer, CreditCardHelper cch) { this.creditCardHelper = cch; this.buffer = buffer; }