void TPZNetworkSquareMidimew :: initialize() { if( isInitializated() ) return; /* Check consistency of parameters */ if(getSizeY()!=1 ||getSizeZ()!=1) { TPZString err; err.sprintf( ERR_TPZTONET_002, (char*)getRouterId() ); err.sprintf("\nSquare Midimew Network Ysize and Zsize must be 1. Al nodes in Xsize!"); EXIT_PROGRAM(err); } if((int)ceil(sqrt((float)getSizeX()))%2 || getSizeX() < 4 ) { TPZString err; err.sprintf( ERR_TPZTONET_002, (char*)getRouterId() ); err.sprintf("\n Square Midimew Network Xsize must be an even 2's power(4,16,64,256,1024,4096...)"); EXIT_PROGRAM(err); } if( !getSizeX() || !getSizeY() || !getSizeZ() ) { TPZString err; err.sprintf(ERR_TPZTONET_001, getSizeX(), getSizeY(), getSizeZ() ); EXIT_PROGRAM(err); } /* Create the routers for each node */ int i; for( i=0; i<getSizeX(); i++ ) { TPZPosition pos(i,0,0); TPZRouter* newRouter = (TPZRouter*) (TPZRouter::routerBuilder->createComponentWithId(getRouterId(),this)); if( ! newRouter ) { TPZString err; err.sprintf( ERR_TPZTONET_002, (char*)getRouterId() ); EXIT_PROGRAM(err); } newRouter->setPosition(pos); addRouter(newRouter); } /* Connect the routers together */ for( i=0; i<getSizeX(); i++ ) { initializeConnectionsFor(TPZPosition(i,0,0)); } /* Other initialization tasks */ generateRoutingTable(); setInitializated(true); setSimulation(getSimulation()); }
void YOGServerRouterManager::update() { //First attempt connections with new routers while(listener.attemptConnection(*new_connection)) { addRouter(new_connection); new_connection.reset(new NetConnection); } //Update all routers for(std::vector<boost::shared_ptr<NetConnection> >::iterator i = routers.begin(); i!=routers.end(); ++i) { (*i)->update(); //Parse incoming messages. shared_ptr<NetMessage> message = (*i)->getMessage(); if(message) { Uint8 type = message->getMessageType(); //This recieves the router information if(type==MNetRegisterRouter) { shared_ptr<NetRegisterRouter> info = static_pointer_cast<NetRegisterRouter>(message); } } } for(std::vector<boost::shared_ptr<NetConnection> >::iterator i = routers.begin(); i!=routers.end();) { if(!(*i)->isConnected()) { Uint32 n = i - routers.begin(); routers.erase(i); i = routers.begin() + n; } else { ++i; } } }
void MainWindow::start() { dock = new QDockWidget(tr("View"), this); dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); view = new QGraphicsView(dock); view->setScene(scene); view->setRenderHint(QPainter::Antialiasing, true); dock->setWidget(view); addDockWidget(Qt::LeftDockWidgetArea, dock); nodesEditor->install(scene); QAction *addAct = new QAction(tr("&Add"), this); addAct->setStatusTip(tr("Add a router")); IController* tmp = nodesEditor.get(); connect(addAct, SIGNAL(triggered()), tmp, SLOT(addRouter())); QAction *quitAct = new QAction(tr("&Exit"), this); quitAct->setStatusTip(tr("Quit application")); connect(quitAct, SIGNAL(triggered()), QApplication::instance(), SLOT(quit())); fileMenu = menuBar()->addMenu(tr("&File")); fileMenu->addAction(addAct); fileMenu->addSeparator(); fileMenu->addAction(quitAct); resize(QDesktopWidget().availableGeometry(this).size() * 0.7); }