////////////////////////////////////////////////////// // // // 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 // // // ////////////////////////////////////////////////////// // ProcessHolder.cpp #include "stdAfx.h" #include #include #include #include "ProcessHolder.h" #include "Process.h" ProcessHolder::ProcessHolder( long nProcNum, long nMinClock, long nMaxClock, long nPercentCorrectProcs, long msgPerSlot, SendMsgRule msgRule ): m_nProcNum(nProcNum),m_nMinClock(nMinClock),m_nMaxClock(nMaxClock), m_nPercentCorrectProc(nPercentCorrectProcs), m_nMsgPerSlot(msgPerSlot),m_eMsgRule(msgRule) { if( ( m_nProcNum < 2 ) || ( m_nMinClock < 0 ) || (m_nMaxClock < m_nMinClock ) || ( m_nPercentCorrectProc < 0 ) || ( m_nPercentCorrectProc > 100 ) || ( m_nMsgPerSlot < 1 ) ) { std::cout << "ProcessHolder: Input is not correct!\n"; exit(1); } if( !initProcessVector_() ){ std::cout << "ProcessHolder: Cannot initialize processes\n"; exit(1); } } ProcessHolder::ProcessHolder( long nProcNum, long nClocksValue, long nNewProcClock, long msgPerSlot, SendMsgRule msgRule ): m_nProcNum(nProcNum),m_nClocksValue(nClocksValue), m_nNewProcClock(nNewProcClock),m_nMsgPerSlot(msgPerSlot),m_eMsgRule(msgRule) { if( ( m_nProcNum < 2 ) || ( m_nClocksValue < 0 ) || ( m_nNewProcClock < 0 ) || ( m_nMsgPerSlot < 1 ) ) { std::cout << "ProcessHolder: Input is not correct!\n"; exit(1); } if( !initNewProcVector_() ){ std::cout << "ProcessHolder: Cannot initialize processes\n"; exit(1); } } ProcessHolder::~ProcessHolder() { for( ProcessVector::iterator iterProc = m_ProcVector.begin(); iterProc != m_ProcVector.end(); iterProc++ ) { delete (*iterProc); } } bool ProcessHolder::initNewProcVector_() { m_ProcVector.reserve(m_nProcNum); // the new process is always created first Process* pProc = new Process(0,m_nNewProcClock); m_ProcVector[0] = pProc; // DBG << "nProc = "<< 0 <<" nInitClock = "<