Пример #1
0
User& UserManager::addUser( const String& rName, const String& rPassword )
{
    if( !hasUser( rName ) )
    {
        User* user = new User( rName, rPassword );
        mUsers.insert( std::make_pair( rName, user ) );
        mUserSignal( *user, true );
        return *user;
    }
    else
    {
        DIVERSIA_EXCEPT( Exception::ERR_DUPLICATE_ITEM, "User already exists.", 
            "UserManager::addUser" );
    }
}
Пример #2
0
/**
 * @param tokens message tokens
 */
bool SessionState::handleMessage(const QStringList& tokens)
{
    if(tokens[0] == "SAY") {
        int userid = tokens.at(1).toInt();
        if(hasUser(userid))
            emit chatMessage(user(userid).name(), tokens.at(2));
        else
            qWarning() << "Got chat message from unknown user:"******"USER") {
        updateUser(tokens);
    } else if(tokens[0] == "PART") {
        partUser(tokens);
    } else if(tokens[0] == "SLOCK") {
        emit syncWait();
    } else if(tokens[0] == "SUNLOCK") {
        emit syncDone();
    } else if(tokens[0] == "BOARD") {
        update(Session(tokens));
    } else if(tokens[0] == "RASTER") {
        releaseRaster();
        expectRaster_ = tokens.at(1).toInt();
        if(expectRaster_ == 0)
            emit rasterReceived(100);
    } else if(tokens[0] == "GIVERASTER") {
        emit syncRequest();
    } else if(tokens[0] == "MORE") {
        if(isUploading())
            sendRasterChunk();
        else
            qWarning() << "Got request for more raster data, but we're not uploading anything!";
    } else if(tokens[0] == "ANNOTATE") {
        protocol::Annotation a(tokens);
        if(!a.isValid())
            qWarning() << "Received an invalid annotation";
        else
            emit annotation(a);
    } else if(tokens[0] == "RMANNOTATION") {
        emit rmAnnotation(tokens.at(1).toInt());
    } else
        return false;
    return true;
}
Пример #3
0
/**
 * @param id user id
 * @pre hasUser(id)==true
 */
User &SessionState::user(int id)
{
    Q_ASSERT(hasUser(id));
    return users_[id];
}