uint32_t QPACKHeaderTable::toInternal( uint32_t externalIndex, uint32_t base) const { if (base > 0) { uint32_t absIndex = base - externalIndex + 1; externalIndex = absoluteToRelative(absIndex); } return HeaderTable::toInternal(externalIndex); }
/*4. Aufgabe: Ausgabe der freien Blöcke ######################################*/ void printBlock(memBlock *p) { /*Gibt info zu einem Block*/ if (p != NULL) { printf("|%8d|%8d|%8d|%8d|%8d|%8d|%8d|%8d|", absoluteToRelative(p), /*Relative Adr. des Pointers*/ p, /*Absolute Adr. des Pointers*/ sizeof (*p), /*Block Grösse(nechste Adresse minus letzte) ((int)(p+1))-((int)p) oder memPool anstadt p*/ absoluteToRelative(p + 1), /*Relative Adr. des nechste Blocks*/ p + 1, /*Absolute Adr. des nechste Blocks*/ p->size - (sizeof (*p)), /*Benutzbare Grösse ((int)(p+1))-((int)p) oder memPool anstadt p*/ p->size, /*Gesamt Grösse*/ p->next /*Nechster memBlock*/ ); if (p->next == MAGIC_VALUE) printf(" Used|\n"); else printf(" Free|\n"); } else printf("Ungültiger Pointer!\n"); }
// Converts an absolute index to an array index in [0..table_.size() - 1] uint32_t QPACKHeaderTable::absoluteToInternal( uint32_t absoluteIndex) const { return toInternal(absoluteToRelative(absoluteIndex), 0); }