string DataDocumentManager::getlistOfTakenDocuments()
{
	ByteString bs = this->fileVariableRecord->readNext();
	string out = "Id  |     Autor    | Titulo  |  Fecha\n";

	while(!bs.isEmpty())
	{

		Document document;
		document.Hidratate(bs);

		out.append(document.getDocumentFormatedText());

		bs = this->fileVariableRecord->readNext();
	}
	return out;
}
Node* BPlusTree::hidratateNode(int numeroDeNodo) {

	ByteString byteStr = this->fileBlockManager->readBlock(numeroDeNodo);
	if (byteStr.isEmpty()) {
		return NULL;
	} else {
		int nivel = byteStr.readAsInt(0);
		if (nivel == 0) {
			LeafNode *nuevoNodoHoja = createLeafNode();
			nuevoNodoHoja->Hidratate(byteStr);
			nuevoNodoHoja->number = numeroDeNodo;
			return nuevoNodoHoja;
		} else {
			InnerNode *nuevoNodoInterior = createInnerNode(nivel);
			nuevoNodoInterior->Hidratate(byteStr);
			nuevoNodoInterior->number = numeroDeNodo;
			return nuevoNodoInterior;
		}
	}
}
示例#3
0
bool Mediator::removeBook(int ID)
{
	bool done = false;
	if(ID>0)
	{
		ByteString byteString = this->dataBookManager->getBook(ID);
		if(!byteString.isEmpty())
		{
			bool isRemoved = this->dataBookManager->removeRecord(ID);
			if(isRemoved)
			{
				Book book;
				book.Hidratate(byteString);
				this->indexWrapper->removeFromAll(book);
				done = true;
			}
		}
	}
	return done;
}
Node* ClassifBPlusTree::hidratateNode(int nodeNumber)
{
	int block = fileBlockNodeMapper->getBlock(nodeNumber);
	ByteString byteStr = this->fileBlockManager->readBlock(block);
	if (byteStr.isEmpty()) {
		return NULL;
	} else {
		int nivel = byteStr.readAsInt(0);
		if (nivel == 0) {
			LeafNode *nuevoNodoHoja = createLeafNode();
			nuevoNodoHoja->Hidratate(byteStr);
			nuevoNodoHoja->number = nodeNumber;
			return nuevoNodoHoja;
		} else {
			InnerNode *nuevoNodoInterior = createInnerNode(nivel);
			nuevoNodoInterior->Hidratate(byteStr);
			nuevoNodoInterior->number = nodeNumber;
			return nuevoNodoInterior;
		}
	}
}