////////////////////////////////////////////////////// // // // Incremental Clock Syncronization. // // 236503(20) Summer 2001 // // Advanced Programming Project. // // Technion. Computer Science Department. // // // // Written by: Reitman Anna // // Fidelman Greg // // Supervisor: Hagit Attya // // Saar Pilosof // // // ////////////////////////////////////////////////////// //IncClockSynch.cpp #include #include #include "stdafx.h" #include #include "Clock.h" #include "IncClockSynch.h" #include "ProcessHolder.h" #include "SyncAlgorithm.h" #include "Scheduler.h" #include "Process.h" #include "Output.h" int mainPr(long ProcNum,long MinClock, long MaxClock,long PercentCorrectProc,long StopTime) { char *pbuf="Number \t Hagit alg \t ST alg \r\n"; char *nbuf="Tick \t Gap\t Gap\r\n"; // Rule to send messages // Scenario Number GapTimeInput gtIn; gtIn.ProcNum=ProcNum; gtIn.MinClock=MinClock; gtIn.MaxClock=MaxClock; gtIn.PercentCorrectProc=PercentCorrectProc; gtIn.StopTime=StopTime; Scenario sc = GAP_TIME; outputFile.Write(nbuf,strlen(nbuf)); outputFile.Write(pbuf,strlen(pbuf)); ProcessHolder ph( gtIn.ProcNum, gtIn.MinClock, gtIn.MaxClock, gtIn.PercentCorrectProc, NumMsg,rule ); SyncAlgorithm::SetProcessHolder(&ph); Scheduler sched(sc,ph,gtIn.StopTime); Output dlg; dlg.DoModal(); return 0; } int mainPr(long MaxProcNum,long StopGap,long MinClock, long MaxClock,long PercentCorrectProc,long StopTime) { char *pbuf="Processes \t Hagit alg \t ST alg \r\n"; char *nbuf="Number of \t Ticks\t Ticks\r\n"; TimeProcInput tpIn; tpIn.MaxClock=MaxClock; tpIn.MaxProcNum=MaxProcNum; tpIn.MinClock=MinClock; tpIn.PercentCorrectProc=PercentCorrectProc; tpIn.StopGap=StopGap; tpIn.StopTime=StopTime; Scenario sc = TIME_PROC; outputFile.Write(nbuf,strlen(nbuf)); outputFile.Write(pbuf,strlen(pbuf)); for( long nCurrProcNum = 2; nCurrProcNum <= tpIn.MaxProcNum; ++nCurrProcNum ){ ProcessHolder ph( nCurrProcNum, tpIn.MinClock, tpIn.MaxClock, tpIn.PercentCorrectProc, NumMsg,rule ); SyncAlgorithm::SetProcessHolder(&ph); Scheduler sched(sc,ph,tpIn.StopTime,tpIn.StopGap); } Output dlg; dlg.DoModal(); return 0; } int mainPt(long ClocksValue,long MaxProcNum,long NewClockValue, long StopGap,long StopTime ) { char *pbuf="Processes \t Hagit alg \t ST alg \r\n"; char *nbuf="Number of \t Ticks\t Ticks\r\n"; NewProcInput npIn; Scenario sc = NEW_PROC; npIn.ClocksValue=ClocksValue; npIn.MaxProcNum=MaxProcNum; npIn.NewClockValue=NewClockValue; npIn.StopGap=StopGap; npIn.StopTime=StopTime; outputFile.Write(nbuf,strlen(nbuf)); outputFile.Write(pbuf,strlen(pbuf)); for( long nCurrProcNum = 2; nCurrProcNum <= npIn.MaxProcNum; ++nCurrProcNum ){ ProcessHolder ph( nCurrProcNum, npIn.ClocksValue, npIn.NewClockValue, NumMsg,rule ); SyncAlgorithm::SetProcessHolder(&ph); Scheduler sched(sc,ph,npIn.StopTime,npIn.StopGap); } Output dlg; dlg.DoModal(); return 0; }