Beispiel #1
0
int PageDirectory::nextRecordPageID(FileHandle &fh, int pageid){
    int pgentry = -1;
    if (pageid == 0)
        while (1) {
            if (get_pgnum() != 0)
                return  get_pgid(0);
            if (get_next() == 0)
                return -1;
            moveToNext(fh);
        }
    if((pgentry = locateRecordPage(fh, pageid)) == -1)
        return -1;
    if (pgentry < get_pgnum() - 1)
        return get_pgid(pgentry + 1);
    while (get_next() != 0) {
        moveToNext(fh);
        if (get_pgnum() != 0)
            return get_pgid(0);
    }
    return -1;
}
Beispiel #2
0
int PageDirectory::firstPageWithFreelen(FileHandle& fh, int len){
    while(1){
        int num = get_pgnum();
        for (int i = 0; i < num; i++)
            if (get_pgfreelen(i) > len)
                return get_pgid(i);
        if(get_next() == 0)
            return -1;
        moveToNext(fh);
    }
    return -1;
}
Beispiel #3
0
int PageDirectory::locateRecordPage(FileHandle &fh, int pageid){
    int pgentry = -1;
    while (1) {
        for (int i = 0; i < get_pgnum(); i++)
            if (get_pgid(i) == pageid) {
                pgentry = i;
                break;
            }
        if (pgentry != -1)
            break;
        if (get_next() == 0)
            return -1;
        moveToNext(fh);
    }
    return pgentry;
}
Beispiel #4
0
				buf[j++] = hexlist[aptr[i] & 0x0f];
			else
				buf[j++] = CLIF_NOT_SUPPLIED;

		aptr = get_pgpct();
		for (i=0; i<MAX_BANDWIDTH_GROUPS; i++) {
			if (aptr[i] >= 0) {
				buf[j++] = hexlist[(aptr[i] & 0xf0)>>4];
				buf[j++] = hexlist[aptr[i] & 0x0f];
			} else {
				buf[j++] = CLIF_NOT_SUPPLIED;
				buf[j++] = CLIF_NOT_SUPPLIED;
			}
		}

		aptr = get_pgid();
		for (i=0; i<MAX_USER_PRIORITIES; i++)
			if (aptr[i] >= 0)
				buf[j++] = hexlist[aptr[i] & 0x0f];
			else
				buf[j++] = CLIF_NOT_SUPPLIED;

		aptr = get_uppct();
		for (i=0; i<MAX_USER_PRIORITIES; i++) {
			if (aptr[i] >= 0) {
				buf[j++] = hexlist[(aptr[i] & 0xf0)>>4];
				buf[j++] = hexlist[aptr[i] & 0x0f];
			} else {
				buf[j++] = CLIF_NOT_SUPPLIED;
				buf[j++] = CLIF_NOT_SUPPLIED;
			}