void CMANETView::OnRouterForceselfishness() { // TODO: Add your command handler code here CMANETDoc* pDoc=GetDocument(); ASSERT_VALID(pDoc); srand((unsigned)time(NULL)); int RouterSize=pDoc->Routers.GetSize(); if(CheckNetwork()) { if(FS->DoModal()==IDOK) { int i; int NodeNum; CRouter* node; for(i=0;i<FS->RoutersNum;i++) { do//Skip These types of nodes { NodeNum=rand()%RouterSize; node=(CRouter*)(pDoc->Routers[NodeNum]); }while((node->Type)||(node->Traffics.GetSize())||(DestTrafficCheck(node))); //Choose a node which -> not selfish & not connected & not be destine traffic node->Type=FS->SelfishType+1; } } } }
void CMANETView::OnSimulateRun() { // TODO: Add your command handler code here if(CheckNetwork()) { CSimDlg simulation; simulation.Document=this->GetDocument(); simulation.DoModal(); } }
void CMANETView::OnSimulationStatistics() { // TODO: Add your command handler code here if(CheckNetwork()) { CStat statistics; statistics.Document=this->GetDocument(); statistics.DoModal(); } }
int main() { if (ID::Init(SDL_INIT_VIDEO) == -1) { std::cout << "Fatal Error: ID::Init()" << std::endl; return -1; } ID::Window* win; ID::Wrapper_Event* we; ID::Event event; Env* env; Sockets_manager* sktM; Protocol_Manager* pm; try { win = new ID::Window(UI_WIDTH, UI_HEIGHT, SDL_SWSURFACE /*| SDL_NOFRAME*/); if (win == NULL) { std::cerr << "Fatal Error: ID::Window()" << std::endl; return -1; } SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); win->SetCbKeyUp(__main_winKeyUp, NULL); win->SetCbKeyDown(__main_winKeyDown, NULL); if (ID::InitWrappers() == -1) { std::cerr << "Fatal Error: ID::InitWrappers()" << std::endl; delete win; ID::Quit(); return -1; } if (InitInstances(win) == -1) throw 1; } catch (int e) { std::cerr << "Error " << e << ": Cannot init program" << std::endl; CleanProgram(win); return -1; } env = Env::GetInstance(); we = ID::Wrapper_Event::GetInstance(); sktM = Sockets_manager::GetInstance(); pm = Protocol_Manager::GetInstance(); while (env->alive == true) { CheckNetwork(sktM, pm); if (we->PollEvent(&event)) { pthread_mutex_lock(&(env->displayMutex)); if (propagateEvent(win, &event) == 1) env->alive = false; pthread_mutex_unlock(&(env->displayMutex)); } usleep(10); } CleanProgram(win); return 0; }