/** * Administrador de memoria para guardar un nodo, guarda en el bloque que corresponde el nodo que * recibe como parametro, si el bloque esta en memoria principal lo guarda directamente, de lo * contrario lo carga desde memoria secundaria y el bloque completo queda en memoria. * * @param nodo nodo que queremos guardar, sera guardado de acuerdo a sus paremetros getFilePos y * getPagePos * @throws IOException */ private void writeAdmin(RNode nodo) throws IOException { long fPos = nodo.getMyfPos(); int i; for (i = 0; i < numOfBuffers; i++) { if (fPos == thisBlock[i]) { writeNode(nodo, i); return; } } // Guardo el bloque con peor prioridad a memoria secundaria si fue modificado, // si no lo fue solo lo sobreescribo i = bufferPrior[numOfBuffers - 1]; if (bufModified[i]) writeBlock(i); readBlock(fPos, i); writeNode(nodo, i); }