States states(const std::string& s) { std::vector<StateMachineHolder>::iterator existing = std::find(state_machines.begin(), state_machines.end(), s); if( existing == state_machines.end() ) { StateMachineHolder h(new StateMachine(s)); state_machines.push_back(h); return States(state_machines.back()); } return States(*existing); }
void VideoWindow::saveSession() { Database db; Sessions s; QSettings settings("NuEvo","Pacca"); settings.beginGroup("global"); QVariant user = settings.value("user"); settings.endGroup(); s.setDecoder(user); s.setDateDecoding(QDateTime::currentDateTime()); s.setDateSession(QDateTime::currentDateTime()); s.setObserver(this->ui->observer->text()); if(this->ui->observer->text().isEmpty()) s.setObserver(user); s.setDescription(this->ui->description->text()); s.setSubject(this->ui->subject->text()); s.setSpecies(this->ui->species->text()); for(int i = 0; i < this->ui->sequence->rowCount(); i++){ Actions a; QTime time; time = QTime::fromString(this->ui->sequence->item(i,0)->text()); a.setTimeAction(time.hour()*3600+time.minute()*60+time.second()); QString st = this->simplefiedText(this->ui->sequence->item(i,1)->text()).second; a.setState(States(st)); QString ev = this->simplefiedText(this->ui->sequence->item(i,2)->text()).second; a.setEvent(Events(ev)); s.addAction(a); } int ret = db.saveSession(s); if(ret > 0){ this->close(); } else { QMessageBox::critical(this,tr("Erro"),tr("Ocorreu um erro ao salvar! Tente novamente!")); } }
void R15(std::vector<Dynamic>& __ret) { //arguments Dynamic retval; retval = States(); __ret.push_back(retval); }
int Database::saveSession(Sessions session) { int decoderId = this->userExist(session.getDecoder()); if(decoderId == 0){ decoderId = this->insertUser(Users(session.getDecoder())); if(decoderId <= 0) return -1; this->cacheUserId.insert(session.getDecoder().toString(),decoderId); } int observerId = this->userExist(session.getObserver()); if(observerId == 0){ observerId = this->insertUser(Users(session.getObserver())); if(observerId <= 0) return -2; this->cacheUserId.insert(session.getObserver().toString(),observerId); } int specieId = this->specieExist(session.getSpecies()); if (specieId == 0){ specieId = this->insertSpecie(Species(session.getSpecies())); if (specieId <= 0) return -2; } int subjectId = this->subjectExist(session.getSubject()); if (subjectId == 0){ Subjects s; s.setName(session.getSubject()); subjectId = this->insertSubject(s); if (subjectId <= 0) return -2; } int sessionId = this->insertSession(decoderId, session.getDateDecoding(), observerId, subjectId, specieId, session.getDateSession(), session.getDescription()); if(sessionId <= 0) return -3; QList<Actions> sequence = session.getActions(); for(int s=0; s < sequence.size(); s++){ Actions action = sequence.at(s); int stateId = this->stateExist(action.getStateDescription()); if(stateId == 0){ stateId = this->insertState(States(action.getStateDescription())); if(stateId <= 0) return -4; this->cacheStateId.insert(action.getStateDescription(),stateId); } int eventId = this->eventExist(action.getEventDescription()); if(eventId == 0){ eventId = this->insertEvent(Events(action.getEventDescription())); if(eventId <= 0) return -5; this->cacheEventId.insert(action.getEventDescription(),eventId); } if(this->insertAction(action.getTimeAction(), sessionId, stateId, eventId) <= 0) return -6; } // qDebug() << this->query.lastQuery(); // qDebug() << this->query.lastError(); // qDebug() << sessionId; return sessionId; }
void SimpleStateMachine::Process( StateMachineEvent event ) { States( event, m_currentState ); // Check for a state change int safetyCount = 10; while( m_stateChange && (--safetyCount >= 0) ) { assert( safetyCount > 0 && "SimpleStateMachine::Process - States are flip-flopping in an infinite loop." ); m_stateChange = false; // Let the last state clean-up States( EVENT_Exit, m_currentState ); // Set the new state m_currentState = m_nextState; // Let the new state initialize States( EVENT_Enter, m_currentState ); } }
std::function<bool()> AutomatedScreenshotController::SetupState(const unsigned long state) { return States()[state](); }
#include <stdio.h> #include "Engine.h" #include "RendererSDL.h" #include "RendererOpenGL.h" #include "Input.h" #include "Globals.h" /// TODO: URGENT. ADD FPS AND DELTATIME! // Static Variables States Engine::State = States(); GameProperties Engine::Properties = GameProperties(); Engine::~Engine(){} void Engine::Start(){} void Engine::Tick(){} void Engine::EventHandler(SDL_Event& e){} void Engine::Precache(){} void Engine::BaseEventHandler(SDL_Event &e) { switch(e.type) { case SDL_QUIT: State.Quit = true; break; case SDL_KEYUP: if(e.key.keysym.scancode == SDL_SCANCODE_ESCAPE) SDL_ShowCursor(!SDL_ShowCursor(-1));