Example #1
0
void CVarManager::saveUser()
{
	if (m_uiUserId == UINT_MAX)
		return;

	try
	{
		sqlite3x::sqlite3_connection db(m_szCVarDb.c_str());

		{
			sqlite3x::sqlite3_command cmd(db,"DELETE FROM cvaruser where user=?;");
			cmd.bind(1, (int)m_uiUserId);
			cmd.executenonquery();
		}

		sqlite3x::sqlite3_transaction trans(db);

		{
			sqlite3x::sqlite3_command cmd(db, "INSERT INTO cvaruser (name, value, user) VALUES (?,?,?);");
			cmd.bind(3, (int)m_uiUserId);
			saveToDb(cmd, CFLAG_USER);
		}

		trans.commit();
	}
	catch (std::exception &e)
	{
		Warning(gcString("Failed to save cvar user: {0}\n", e.what()));
	}
}
Example #2
0
void ImageCache::updateImagePath(const char* path, uint32 hash)
{
	m_ImgMutex.lock();

	m_mImageMap[hash] = path;
	m_vUpdateList.push_back(hash);

	if (m_LastUpdateTime < time(nullptr))
		saveToDb();

	m_ImgMutex.unlock();
}
Example #3
0
void
SqlPlaylist::removeTrack( int position )
{
    if( !m_tracksLoaded )
        loadTracks();

    if( position < 0 || position >= m_tracks.size() )
        return;
    Meta::TrackPtr track = m_tracks.takeAt( position );
    unsubscribeFrom( track );
    saveToDb( true );
    notifyObserversTrackRemoved( position );
}
Example #4
0
void
SqlPlaylist::addTrack( Meta::TrackPtr track, int position )
{
    if( !m_tracksLoaded )
        loadTracks();

    if( position < 0 )
        position = m_tracks.count();
    else
        position = qMin( position, m_tracks.count() );
    subscribeTo( track ); //keep track of metadata changes.
    m_tracks.insert( position, track );
    saveToDb( true );
    notifyObserversTrackAdded( track, position );
}
Example #5
0
bool ReportWindow::save() {
    bool res = FALSE;
    // do we have a valid filename?
    if(lastSaveToDb == FALSE) {
        if(!filename.isEmpty()) {
            QFile * file = new QFile(filename);
            res = save(file);
            delete file;
        } else {
            res = saveAs();
        }
    } else {
        // do a save to the database.
        res = saveToDb();
    }
    return res;
}
Example #6
0
void CVarManager::saveNormal()
{
	try
	{
		sqlite3x::sqlite3_connection db(m_szCVarDb.c_str());
		db.executenonquery("DELETE FROM cvar;");

		sqlite3x::sqlite3_command cmd(db, "INSERT INTO cvar (name, value) VALUES (?,?);");

		sqlite3x::sqlite3_transaction trans(db);
		saveToDb(cmd, CFLAG_NOFLAGS);
		trans.commit();
	}
	catch (std::exception &e)
	{
		Warning(gcString("Failed to save cvar normal: {0}\n", e.what()));
	}
}
Example #7
0
void
SqlPlaylist::metadataChanged( Meta::TrackPtr track )
{
    //TODO: do we really need to observe track changes? Metadata will be properly saved
    //on exit and proxy tracks are loaded with uidUrl. So at worse the save metadata in
    //playlist_tracks will be outdated until real track is loaded.
    if( !m_tracksLoaded )
        loadTracks();

    //When AFT detects a moved file it will update the track and make it signal it's observers.
    if( !m_tracks.contains( track ) )
    {
        error() << "Got a metadataChanged for a track that is not in the playlist.";
        return;
    }

    //force update of tracks in database
    saveToDb();
}
Example #8
0
void CVarManager::saveWinUser()
{
	try
	{
		sqlite3x::sqlite3_connection db(m_szCVarDb.c_str());

		{
			sqlite3x::sqlite3_command cmd(db,"DELETE FROM cvarwin where user=?;");
			cmd.bind(1, getWinUser());
			cmd.executenonquery();
		}

		sqlite3x::sqlite3_command cmd(db, "INSERT INTO cvarwin (name, value, user) VALUES (?,?,?);");
		cmd.bind(3, getWinUser());

		sqlite3x::sqlite3_transaction trans(db);
		saveToDb(cmd, CFLAG_WINUSER);
		trans.commit();
	}
	catch (std::exception &e)
	{
		Warning(gcString("Failed to save cvar win user: {0}\n", e.what()));
	}
}
Example #9
0
    void Server::runGame()
    {
        std::cout<<"Start Game service"<<std::endl;

        loadFromDb();
        while(!stop)
        {
            sf::Lock guard(_clientMutex);
            //for all clients
            for(auto it = _clients.begin(); it != _clients.end();++it)
            {
                Client* client = *it;
                packet::NetworkEvent* msg;
                while(client and client->pollEvent(msg))
                {
                    std::cout<<"Client "<<client->id()<<" recive data of type : "<<msg->type()<<std::endl;
                    switch(msg->type())
                    {
                        case FuncIds::IdGetListGame :
                        {
                            sf::Packet response;
                            packet::SetListGame list;
                            sf::Lock guard(_gameMutex);
                            for(auto game : _games)
                            {
                                list.add(game->id(),game->getPlayersCount(),game->getTeamCount());
                            }

                            response<<list;
                            client->send(response);
                        }break;
                        case FuncIds::IdCreateGame :
                        {
                            sf::Packet response;
                            packet::SetListGame list;
                            sf::Lock guard(_gameMutex);
                            _games.emplace_back(new Game("./media/map.json"));
                            _games.back()->load(true);

                            for(auto game : _games)
                            {
                                list.add(game->id(),game->getPlayersCount(),game->getTeamCount());
                            }
                            _games.back()->onLogOut = onLogOut;
                            _games.back()->run();

                            response<<list;
                            //send new game to all clients
                            for(auto it2 = _clients.begin(); it2 != _clients.end();++it2)
                                (*it2)->send(response);
                        }break;
                        case FuncIds::IdJoinGame :
                        {
                            int gameId = static_cast<packet::JoinGame*>(msg)->gameId();
                            sf::Lock guard(_gameMutex);
                            for(auto game : _games)
                            {
                                if(game->id() == gameId)
                                {
                                    if(game->addClient(client))
                                    {
                                        client = nullptr;
                                        it = _clients.erase(it);
                                        --it;
                                    }
                                    break;
                                }
                            }

                        }break;

                        case FuncIds::IdDisconnected :
                        {
                            it = _clients.erase(it);
                            --it;
                            client = nullptr;
                        }break;
                        default : break;
                    }
                    delete msg;
                }
            }
        }

        std::cout<<"Stop Game service"<<std::endl;
        {
            sf::Lock guard(_gameMutex);
            for(auto& game : _games)
            {
                std::cout<<"Stop Game "<<game->id()<<std::endl;
                game->stop();
                game->wait();
            }
            saveToDb();
        }
    }
Example #10
0
void
SqlPlaylist::setName( const QString &name )
{
    m_name = name;
    saveToDb( false ); //no need to resave all tracks
}