bool SoapExecution::process() { if (lastOffset == 0) { LOG_DEBUG("process url = " << getUrl()->getUrl()); LOG_DEBUG("query: '" << getSql() << "'"); prepareQuery(); shared_ptr<Event> ev(new ExecutionStateChangeEvent(getId(),"CONNECTED")); fireEvent(ev); } auto source = getInPorts().at(0)->getResult(); uint64_t row; for (row = lastOffset; row < lastOffset + chunkSize; row++) { auto range = TableDataFactory::getInstance().range(source,row,chunkSize); xmlNodePtr result = inputTemplate.transform(range); string response = callServer(getUrl(),as_string(result)); auto rangeResult = outputTemplate.transform(response); if (!resultTable) { resultTable = TableDataFactory::getInstance().create("text",rangeResult->getColumns()); } for (uint64_t rrow = 0; rrow < rangeResult->getRowCount(); rrow++) { vector<string> rv; for (uint32_t rcol = 0; rcol < rangeResult->getColCount(); rcol++) { rv.push_back(rangeResult->getValue(rrow,rcol)); } resultTable->addRow(rv); } } shared_ptr<Event> rde(new ReceiveDataEvent(getId(),resultTable->getRowCount())); fireEvent(rde); if (row >= source->getRowCount()) { setResult("",resultTable); setState(QueryExecutionState::DONE); return true; } lastOffset = row; return false; }
int main(int argc, char **argv) { int team, s_type; char *dpyname = NULL; int usage = 0; int err = 0; char *name, *ptr, *cp; struct passwd *pwent; int passive = 0; int xpmopt = 1; int useORopt = 0; int useCookieOpt = 0; int dontUseCookieOpt = 0; /* char *defaultsFile=NULL;*/ pseudo[0] = defpasswd[0] = '\0'; name = *argv++; argc--; if ((ptr = strrchr(name, '/')) != NULL) name = ptr + 1; while (*argv) { if (**argv != '-') { serverName = *argv; /* don't abort argument processing */ argv++; argc--; } else { ++*argv; argc--; ptr = *argv++; while (*ptr) { switch (*ptr) { case 'C': /* character name */ (void) strncpy(pseudo, *argv, sizeof(pseudo)); argv++; argc--; break; case 'P': /* authorization password */ (void) strncpy(defpasswd, *argv, sizeof(defpasswd)); { int i; for (i = 0; (*argv)[i]; i++) (*argv)[i] = 0; } argv++; argc--; break; case 'u': usage++; break; case 's': if (*argv) { xtrekPort = atoi(*argv); passive = 1; argv++; argc--; } break; case 'p': if (*argv) { xtrekPort = atoi(*argv); argv++; argc--; } break; case 'd': dpyname = *argv; argc--; argv++; break; case 'm': usemeta = 1; break; case 'h': serverName = *argv; argc--; argv++; break; case 't': title = *argv; argc--; argv++; break; case 'r': defaultsFile = *argv; argv++; argc--; break; #ifdef AUTHORIZE case 'o': RSA_Client = -1; break; case 'R': RSA_Client = -2; break; #else case 'o': case 'R': printf("This client does not have binary authorization.\n"); break; #endif case 'e': #ifdef AUTHORIZE checkExpire(1); #else printf("This client does not RSA verify and will not expire.\n"); #endif exit(0); break; case 'f': /* list ftp sites */ fprintf(stderr, "\n\ The newest version of the Paradise client can be found at:\n\ ftp.netrek.org in /pub/netrek/paradise/bin/\n"); exit(0); case 'G': if (*argv) { ghoststart++; ghost_pno = atoi(*argv); printf("Emergency restart being attempted...\n"); argv++; argc--; } break; case '2': /* force paradise */ paradise = 1; break; case 'F': /* File playback */ if (*argv) { playFile = strdup(*argv); playback = 1; argv++; argc--; } break; case 'x': xpmopt = 0; break; case 'k': /* cookie mode [BDyess] */ useCookieOpt = 1; break; case 'K': /* no-cookies :( [BDyess] */ dontUseCookieOpt = 1; break; case 'v': verbose_image_loading = 1; break; case 'O': /* turn on GXor image drawing [BDyess]*/ useORopt = 1; break; case 'c': /* dump .paradiserc defaults [BDyess] */ dump_defaults = 1; break; default: fprintf(stderr, "%s: unknown option '%c'\n", name, *ptr); err++; break; } ptr++; } } } inittrigtables(); initStars(); /* moved from redraw.c at KAO\'s suggestion */ if (usage || err) { printUsage(name); #ifdef AUTHORIZE checkExpire(1); #endif exit(0); /* exit(err); Exits from checkExpire */ } defaultsFile = initDefaults(defaultsFile); if(xpmopt) xpm = 1; else xpm = booleanDefault("xpm",xpm); if(xpm) printf("XPM mode enabled.\n"); /* command line option overrides .paradiserc value [BDyess] */ if(useORopt) useOR = 1; else useOR = booleanDefault("useOR",useOR); if(useOR) printf("OR mode enabled.\n"); if(useOR || !xpm) cookie = 0; /* default no-cookies unless in XPM mode w/out OR [BDyess] */ /* note: need a milk mode :) */ if(useCookieOpt) cookie = 1; else if(dontUseCookieOpt) cookie = 0; else cookie = booleanDefault("cookie",cookie); if(cookie) printf("Cookie mode enabled.\n"); #ifdef AUTHORIZE if (RSA_Client != -1) checkExpire(0); #endif /* compatability */ if (argc > 0) serverName = argv[0]; srandom(getpid() + time((long *) 0)); if(playback || booleanDefault("playback",0)) { defNickName = "playback"; usemeta=0; serverName = "playback"; } else { if (serverName) { char temp[80], *s; sprintf(temp, "server.%s", serverName); if ((s = stringDefault(temp,NULL))) { printf("Using nickname \"%s\" for server %s\n", serverName, s); defNickName = serverName; serverName = s; defFlavor = stringDefault("flavor",NULL); } } if (!serverName) { serverName = stringDefault("server",NULL); } if (!serverName && !passive) { serverName = DEFAULT_SERVER; usemeta = 1; /* no server specified, show the menu */ } if (passive) serverName = "passive"; /* newwin gets a wrong title otherwise */ if (xtrekPort < 0) xtrekPort = intDefault("port", -1); if (xtrekPort < 0) xtrekPort = DEFAULT_PORT; } /* playback */ build_default_configuration(); metaserverAddress = stringDefault("metaserver", "metaserver.netrek.org"); if (usemeta) openmeta(); W_Initialize(dpyname); metaFork = booleanDefault("metaFork", metaFork); /* do the metawindow thang */ if (usemeta) { metawindow(); metainput(); if (metaFork) W_Initialize(dpyname); newwin(dpyname, name); } else /* this creates the necessary x windows for the game */ newwin(dpyname, name); /* open memory...? */ openmem(); if (!startPlayback()) { if (!passive) { serverName = callServer(xtrekPort, serverName); } else { connectToServer(xtrekPort); } } sendFeature("FEATURE_PACKETS", 'S', 1, 0, 0); timeStart = time(NULL); findslot(); /* sets all the settings from defaults file (.xtrekrc probably) */ resetDefaults(); #ifdef UNIX_SOUND init_sound(); play_sound(SND_PARADISE); #endif mapAll(); /* signal(SIGINT, SIG_IGN);*/ signal(SIGCHLD, reaper); /* Get login name */ if ((pwent = getpwuid(getuid())) != NULL) (void) strncpy(login, pwent->pw_name, sizeof(login)); else (void) strncpy(login, "Bozo", sizeof(login)); login[sizeof(login) - 1] = '\0'; if (pseudo[0] == '\0') { char *freeme; strncpy(pseudo, freeme = stringDefault("name",login), sizeof(pseudo)); free(freeme); } pseudo[sizeof(pseudo) - 1] = '\0'; if (defpasswd[0] == '\0') { char buf[100]; /* added password by character name -JR */ sprintf(buf,"password.%s",pseudo); if((cp = stringDefault(buf,NULL)) || (cp = stringDefault("password",NULL))) (void) strncpy(defpasswd, cp, sizeof(defpasswd)); } defpasswd[sizeof(defpasswd) - 1] = '\0'; /* sendLoginReq("Gray Lensman", "hh", "sfd", 0); loginAccept = -1; while (loginAccept == -1) { socketPause(1,0); readFromServer(); } */ getname(pseudo, defpasswd); loggedIn = 1; /* Set p_hostile to hostile, so if keeppeace is on, the guy starts off hating everyone (like a good fighter should) */ me->p_hostile = (1 << number_of_teams) - 1; redrawTstats(); me->p_planets = 0; me->p_genoplanets = 0; me->p_armsbomb = 0; me->p_genoarmsbomb = 0; /* Set up a reasonable default */ me->p_whydead = KNOREASON; me->p_teami = -1; s_type = defaultShip(CRUISER); /* from rlb7h 11/15/91 TC */ if (booleanDefault("netStats", 1)) startPing(); /* tell the server that we support pings */ /* hack to make galaxy class ships work. This could be more elegant, but the configuration code would have to be modified quite a bit, since the client doesn't know if it's on a paradise server until after it connects, and it needs the configuration info before it connects. */ init_galaxy_class(); initkeymap(-1); /* needs to have ship types initialized -JR */ setjmp(env); /* Reentry point of game */ if (ghoststart) { int i; ghoststart = 0; for (i = -1; i < 5; i++) if (teaminfo[i].letter == me->p_mapchars[0]) break; me->p_teami = i; if (me->p_damage > me->p_ship->s_maxdamage) { me->p_status = POUTFIT; } else me->p_status = PALIVE; } else me->p_status = POUTFIT; while (1) { switch (me->p_status) { case POUTFIT: case PTQUEUE: /* give the player the motd and find out which team he wants */ new_entrywindow(&team, &s_type); allowPlayerlist = 1; if (W_IsMapped(playerw)) playerlist(); if (!playback) if (team == -1) { W_DestroyWindow(w); sendByeReq(); sleep(1); printf("OK, bye!\n"); EXIT(0); } sendVersion(); myship = getship(myship->s_type); currentship = myship->s_type; /* sendOptionsPacket(); this would totally blast any flags you had on the server */ redrawall = 1; enter(); calibrate_stats(); W_ClearWindow(w); /* for (i = 0; i < NSIG; i++) { signal(i, SIG_IGN); } */ me->p_status = PALIVE; /* Put player in game */ #ifdef UNIX_SOUND kill_sound (); #endif hockeyInit(); if (showStats) /* Default showstats are on. */ W_MapWindow(statwin); if (showNewStats) /* default showNewStats are off. [BDyess] */ W_MapWindow(newstatwin); if (tryUdp && commMode != COMM_UDP) { sendUdpReq(COMM_UDP); } if (tryShort) { sendShortReq(SPK_VON); tryShort = 0; /* only try it once */ } /* Send request for a full update */ if (askforUpdate) { if(recv_short) sendShortReq(SPK_SALL); else sendUdpReq(COMM_UPDATE); } sendUpdatePacket(1000000 / updateSpeed); W_Deiconify(baseWin); break; case PALIVE: case PEXPLODE: case PDEAD: case POBSERVE: /* Get input until the player quits or dies */ input(); W_ClearWindow(mapw); break; default: printf("client has p_status=%d. how strange\n", me->p_status); me->p_status = POUTFIT; } } /* NOTREACHED */ }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { //ui->setupUi(this); setFixedHeight(768); //1024 setFixedWidth(768); //Define page structure QWidget * page = new QWidget(this); page->setFixedWidth(this->width()); page->setFixedHeight(this->height()); page->setStyleSheet("background-color:white;"); QVBoxLayout * pageLayout = new QVBoxLayout(); //Define the fixed header QWidget * header = new QWidget(page); header->setFixedWidth(page->width()); QGridLayout * headerLayout = new QGridLayout(); headerLayout->setHorizontalSpacing(2); headerLayout->setVerticalSpacing(2); QLabel * numTable = new QLabel(); QPixmap numTableIm(":/Images/images/NumTable.png"); // numTable->setStyleSheet("margin-right: 5px"); numTable->setPixmap(numTableIm); numTable->setFixedSize(numTableIm.rect().size()); QLabel * banner = new QLabel(header); QPixmap bannerIm(":/Images/images/Banner.png"); banner->setPixmap(bannerIm); banner->setFixedSize(bannerIm.rect().size()); QPushButton * pain = new QPushButton(""); QPixmap painIm(":/Images/images/Pain.png"); QIcon painIcon(painIm); pain->setIcon(painIcon); pain->setIconSize(painIm.rect().size()); pain->setFixedSize(painIm.rect().size()); QPushButton * eau = new QPushButton(""); QPixmap eauIm(":/Images/images/eau.png"); QIcon eauIcon(eauIm); eau->setIcon(eauIcon); eau->setIconSize(eauIm.rect().size()); eau->setFixedSize(eauIm.rect().size()); QPushButton * serveur = new QPushButton(""); QPixmap serveurIm(":/Images/images/Serveur.png"); QIcon serveurIcon(serveurIm); serveur->setIcon(serveurIcon); serveur->setIconSize(serveurIm.rect().size()); serveur->setFixedSize(serveurIm.rect().size()); headerLayout->addWidget(numTable, 0, 0, 2, 0); headerLayout->addWidget(banner, 0, 1, 2, 1); headerLayout->addWidget(serveur,0, 2, 2, 2); headerLayout->addWidget(pain, 0, 3); headerLayout->addWidget(eau, 1, 3); header->setLayout(headerLayout); //Define the widget containing all the meals (Tabs) QTabWidget * repasFrame = new QTabWidget(page); //For one Meal, define the widget containing all the bands QWidget * area = new QWidget(repasFrame); QScrollArea * sArea = new QScrollArea(area); QPalette * palette = new QPalette(); palette->setColor(QPalette::Background, Qt::white); sArea->setPalette(*palette); sArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); sArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); sArea->setFixedWidth(page->width() -20); sArea->setFixedHeight(page->height() - header->height() - 125); bands = new QWidget(); bands->setFixedWidth(page->width() -25); // bands->setMinimumHeight(page->height() - header->height() - 125); bands->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Ignored); bandsLayout = new QVBoxLayout(bands); Headband* menus = HeadbandFactory::buildMenus(bands); bandList.append(menus); bandsLayout->addWidget(menus); usefulLabel = new QLabel(); bandsLayout->addWidget(usefulLabel); bands->setLayout(bandsLayout); sArea->setWidget(bands); repasFrame->setFixedWidth(page->width()); repasFrame->setFixedHeight(page->height() - header->height()); repasFrame->addTab(area, "Repas 1"); repasFrame->addTab(new QLabel(), "+"); //Define the confirmation button QPushButton * confirmButton = new QPushButton(""); QPixmap confirmIm(":/Images/images/Confirm.jpg"); QIcon confirmIcon(confirmIm); confirmButton->setIcon(confirmIcon); confirmButton->setIconSize(confirmIm.rect().size()); confirmButton->setFixedSize(confirmIm.rect().size()); //Define the 'languette' and its 'etiquette' QList<QList<QObject*> > bigDataList; languetteContainer = new LanguetteContainer(bigDataList); languetteContainer->setFixedSize(760, 855); Etiquette * etiquette = new Etiquette(languetteContainer, confirmButton, page); //Link final page layouts pageLayout->addWidget(header); pageLayout->addWidget(repasFrame); pageLayout->addWidget(etiquette); pageLayout->addWidget(confirmButton); pageLayout->addWidget(languetteContainer); page->setLayout(pageLayout); //connect all slots connect(etiquette, SIGNAL(updateLanguetteInfo()), this, SLOT(recapLanguette())); connect(menus, SIGNAL(itemSelect(Headband_Item*)), this, SLOT(changeMenu(Headband_Item*))); connect(confirmButton, SIGNAL(clicked()), this, SLOT(confirmMeal())); connect(pain, SIGNAL(clicked()), this, SLOT(callBread())); connect(eau, SIGNAL(clicked()), this, SLOT(callWater())); connect(serveur, SIGNAL(clicked()), this, SLOT(callServer())); setCentralWidget(page); }