bool
NIVissimSingleTypeParser_Querverkehrsstoerungsdefinition::parsePositionDescribed(std::istream& from) {
    std::string tag = myRead(from);
    NIVissimExtendedEdgePoint edge = parsePos(from);
//    from >> tag; // "Durch"
    bool ok = true;
    do {
        from >> tag; // "Strecke"
        NIVissimExtendedEdgePoint by = parsePos(from);
        //
        SUMOReal timegap;
        from >> timegap;

        from >> tag;
        SUMOReal waygap;
        from >> waygap;

        SUMOReal vmax = -1;
        tag = readEndSecure(from);
        if (tag == "vmax") {
            from >> vmax;
        }
        ok = NIVissimDisturbance::dictionary(-1, "", edge, by,
                                             timegap, waygap, vmax);
        if (tag != "DATAEND") {
            tag = readEndSecure(from);
        }
    } while (tag != "DATAEND" && ok);
コード例 #2
0
ファイル: mem.c プロジェクト: apwan06/sim
word_t CacheRec::findLine(word_t pos, bool_t forced,int *offsetPtr){
    int setIndex; byte_t tag;
    if(parsePos(pos,&setIndex,&tag,offsetPtr)){
        int i = setIndex*cE;
        int end = i + cE;
        for(;i<end;++i){
            if(valid[i]==TRUE && tags[i]==tag)
                return i;
        }
        if(forced){
            i = spareLine(setIndex);
            if(i<0){// no spare line
                i = setIndex*cE + (rand()%cE);// evict random one
                printf("forced to evict\n");
                commit(i); // write back
                valid[i] == FALSE;
            }
            retrieve(tag,i);
            return i;
        }
    }
    return -1; // invalid pos
}