public void setOneCell(String s) { try { sembuffersync.WaitOne(3);//If semaphore is zero then wait until it becomes non zero lock (queue) { //Console.WriteLine("Entered lock : "); queue.EnqueueOne(s); // Console.WriteLine("Enqued successfully : "); //Implement an enqueue //Once one cell is set break out of the loop and not to set all other empty cells. } string valtobepassed = getOneCell(); ChickenFarm order = new ChickenFarm(); order.GetOrderfromBuffer(valtobepassed); //need to update the CellArray's empty position with the incoming string from the ChickenFarm/Retailer // Call setOneCell and getOneCell methods } catch (Exception ex) { //Console.WriteLine(ex.Message); } }
//a function call to decoder to convert the string recieved from multicellbuffer to object. //for each order we have a new thread from order processing class to process the order based on the current price. //Counter variable count, when count = 10 chicken farm terminates. public void farmerFunc() { while (count < 10) { int price = PricingModel(); Thread.Sleep(500); ChickenFarm.changePrice(price); } }
static void Main(string[] args) { // Buffer between server and client MultiCellBuffer buffer = new MultiCellBuffer(3); ChickenFarm c = new ChickenFarm(buffer); // Give buffer and P value (optional) to server program Retailer r = new Retailer(c.getSessionToken(), buffer); // Give server session token and buffer to client program c.priceCut += new priceCutEvent(r.UpdatePrice); r.orderPlaced += new orderPlacedEvent(c.ProcessOrder); OrderProcessing.processingDone += new orderProcessedEvent(r.OrderProcessed); // Start Threads r.StartRetailers(5); c.StartServer(); }
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); }
static void Main(string[] args) { try { //create buffer classes, instantiate objects, create and start threads ChickenFarm chicken = new ChickenFarm(); Thread farmer = new Thread(new ThreadStart(chicken.farmerFunc)); farmer.Start(); Retailer chickenstore = new Retailer(); ChickenFarm.priceCut += new priceCutEvent(chickenstore.chickenOnSale); Thread[] retailers = new Thread[5]; for (int i = 0; i < 5; i++) { retailers[i] = new Thread(new ThreadStart(chickenstore.retailerFunc)); retailers[i].Name = (i + 1).ToString(); retailers[i].Start(); } } catch (Exception ex) { // Console.WriteLine(ex.Message); } }
public void FarmSomeChickensTest() { var target = new ChickenFarm(); // TODO: Initialize to an appropriate value target.FarmSomeChickens(); Assert.Inconclusive("A method that does not return a value cannot be verified."); }