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; }
bool DataDocumentManager::addDocument(ByteString byteString) { bool saved = false; int realID = this->autoIncInteger + 1; int documentID; string sid = Utility::intToString(realID); string did; Document document; document.Hidratate(byteString); document.setFakeId(realID); if(document.getTitle()[0] == 'T') documentID = this->twtautoIncInteger + 1; else if(document.getTitle()[0] == 'N') documentID = this->rssautoIncInteger + 1; did = Utility::intToString(documentID); document.setIdentificador(Utility::concat(document.getTitle(), did)); int position = this->fileVariableRecord->addDocument(document.Serialize()); if(position > -1) { this->autoIncInteger++; if(document.getTitle()[0] == 'N') rssautoIncInteger++; else if(document.getTitle()[0] == 'T') twtautoIncInteger++; ByteString idDocument; idDocument.insertLast(&realID, sizeof(int)); Key* key = new Key(idDocument.toString()); ByteString offset; offset.insertLast(&position, sizeof(int)); Record* recPrincipalInd = new Record(key,&offset); this->principalIndex->add(recPrincipalInd); addIDtoFileFlags(IndexWrapper::AUTOR,idDocument.readAsInt(0)); addIDtoFileFlags(IndexWrapper::TITULO,idDocument.readAsInt(0)); addIDtoFileFlags(IndexWrapper::PALABRAS,idDocument.readAsInt(0)); addIDtoFileFlags(IndexWrapper::IDENTIFICADOR,idDocument.readAsInt(0)); addIDtoFileFlags(IndexWrapper::FECHA,idDocument.readAsInt(0)); saved = true; } return saved; }