void Servicios::agregarAlHash(string nombreHash, string clavePasada, unsigned int idNueva) { string pathHash = Parametros().getParametro(CARPETA_DATOS); pathHash += nombreHash; Hash *hash = new Hash(pathHash); Registro* registro= hash->buscar(clavePasada); unsigned int offset; //si ya existe la lista// if (registro){ //cout << "lista ya existente" << endl; offset = registro->getAtributosEnteros()->front(); ListasIds().agregarIdDeLibro(&offset,idNueva,false); } //no existe la lista de ids else{ //cout << "lista nueva" << endl; ListasIds().agregarIdDeLibro(&offset, idNueva,true); registro = new Registro(); registro->setString(clavePasada); registro->agregarAtribEntero(offset); hash->insertar(registro); } delete registro; delete hash; }
void Servicios::sacarDelHash(string nombreHash, string clave, unsigned int idLibro) { string pathHash = Parametros().getParametro(CARPETA_DATOS); pathHash += nombreHash; Hash *hash = new Hash(pathHash); Registro* registro= hash->buscar(clave); unsigned int offset; if (registro){ offset = registro->getAtributosEnteros()->front(); bool listaVacia = ListasIds().sacarIdDelLibro(offset,idLibro); if (listaVacia == LISTA_VACIA){ hash->borrar(clave); } } delete hash; }