int pruebaAlmacenamientoBufferCache(char nombre_archivo[] ){ AtributoVariable<string> nombre("N"); AtributoVariable<int> numeros("#"); AtributoFijo<int> num("n"); Registro registro(3,&nombre,&numeros,&num); Bloque bloque(®istro); Clave clave(®istro,1,"N"); ComparadorRegistroVariable comparador; EABloques estrategia(&bloque,125,0.8f); estrategia.setClave(&clave); estrategia.setComparador(&comparador); Archivo archivo(&estrategia); AlmacenamientoBufferCache cache(&archivo,5); /*archivo original*/ cache.crear(nombre_archivo); for(int i=0;i<5;i++){ *(AtributoVariable<string>*)registro.get(0)=Terminos::obtenerTermino(i).c_str(); ((AtributoVariable<int>*)registro.get(1))->getVector().clear(); for(int j=0;j< i%4+1;j++){ ((AtributoVariable<int>*)registro.get(1))->getVector().push_back(j); }; *((AtributoFijo<int>*)registro.get(2))=i; if(not ((Almacenamiento&)cache).insertar(®istro)) cout<<"Problema"<<endl; } cache.imprimir(cout); cache.cerrar(); archivo.setEstrategia(&estrategia); archivo.abrir(nombre_archivo); archivo.imprimir(cout); archivo.cerrar(); return 0; }
void GNC::GUI::AnonymizePanel::OnCheckComentarios( wxCommandEvent& /*event*/ ) { //descripcion del estudio, serie e imagenes //estudio { std::string clave("0008|1030"); Anonymize(clave,m_pCheckComentarios->IsChecked()); } //serie { std::string clave("0008|103e"); Anonymize(clave,m_pCheckComentarios->IsChecked()); } //imagen { std::string clave("0020|4000"); Anonymize(clave,m_pCheckComentarios->IsChecked()); } }
int pruebaEstrategiaCompresionArbol(){ /*************************Creacion Arbol***************************/ Referencia ref=0; AtributoFijo<char*> nombre("miStringID",15); char unNombre[15]="abaco"; nombre.set(unNombre); Registro reg(1,&nombre); Clave clave(®,1,"miStringID"); BSharpTree* arbol = new BSharpTree(&clave); ComparadorClave* comparador = new ComparadorRegistroVariable(); string nombreArbol = "Arbol"; string nombreArbol2 = "Arbol2"; string nombreComprimido = "ArbolComprimido"; unsigned int tamanioBloque = 128; arbol->crear(nombreArbol,tamanioBloque,&clave,comparador); for(int i=0;i<70;i++){ strncpy(unNombre,Terminos::obtenerTermino(i).data(),15); nombre.set(unNombre); Registro reg1(1,&nombre); Clave clave1(®1,1,"miStringID"); //std::cout<<clave1.getAtributo("miStringID")<<std::endl; arbol->insertar(ref,&clave1); } for(int i=0;i<30;i++){ strncpy(unNombre,Terminos::obtenerTermino(i).data(),15); nombre.set(unNombre); Registro reg1(1,&nombre); Clave clave1(®1,1,"miStringID"); //std::cout<<clave1.getAtributo("miStringID")<<std::endl; arbol->eliminar(&clave1); } arbol->imprimir(); //arbol->cerrar(); string nombreArchivo = arbol->getNombreArchivo(); /*delete comparador; delete arbol;*/ /************************COMPRIMIENDO*****************************/ EstrategiaCompresion compresion; compresion.compresionArbol(arbol,nombreComprimido,128); arbol->cerrar(); delete arbol; //compresion.compresionIndice(nombreArchivo,nombreComprimido,128); /************************DESCOMPRIMIENDO**************************/ BSharpTree* arbol2 = new BSharpTree(&clave); ComparadorClave* comparador2 = new ComparadorRegistroVariable(); //compresion.descompresionInsdice(nombreComprimido,nombreArchivo); //arbol2->abrir(nombreArbol2,nombreArbol,comparador2); //arbol2->abrir(nombreArbol2,nombreArbol,comparador2); compresion.descompresionArbol(arbol2,nombreComprimido); arbol2->imprimir(); delete arbol2; delete comparador2; return 0; }
void GNC::GUI::AnonymizePanel::GetTagsAnonymized(GIL::DICOM::DicomDataset & base) { base.tags.clear(); GNC::GCS::IConfigurationController::TListGroups configGroups; for (wxPropertyGridIterator it = m_pTagsList->GetIterator(); ! it.AtEnd(); ++it) { wxPGProperty* prop = it.GetProperty(); if(prop->GetFlags() & wxPG_PROP_MODIFIED) { std::string clave(prop->GetHelpString().ToUTF8()); std::string valor(prop->GetValueAsString().ToUTF8()); base.tags[clave] = valor; GNC::GCS::IConfigurationController::TMapValues group; group["tag"] = clave; group["value"] = valor; configGroups.push_back(group); } } GNC::GCS::IConfigurationController::Instance()->writeGroupUser("/Core/AnonymizationSelection", configGroups); }
int Clave::hidratar(char* bloque){ //Devuelve la cantidad de bytes hidratados int bytesLeidos = 0; unsigned int tamanioInt = sizeof(unsigned int); unsigned int tamanioClave; memcpy((char*)&tamanioClave, bloque, tamanioInt); bytesLeidos += tamanioInt; char bloqueAux[tamanioClave]; memcpy(bloqueAux, bloque + tamanioInt, tamanioClave); bytesLeidos += tamanioClave; string clave(bloqueAux); //Seteo la clave nueva this->setClave(clave); return bytesLeidos; }
int main(int argc, char ** argv) { STUDENT carr[CSIZE]; int count = 0; int index; printf("Please enter the first name.\n"); printf("Press [enter] at the start of a line to stop.\n"); while(count < CSIZE && fgets(carr[count].user.fname, NAMELEN, stdin) && carr[count].user.fname[0] != '\n') { reject_ch(carr[count].user.fname, '\n'); printf("Now enter the last name.\n"); fgets(carr[count].user.lname, NAMELEN, stdin); reject_ch(carr[count].user.lname, '\n'); for(index = 0; index < COURSE; index++){ printf("Enter the grade: "); carr[count].grade[index] = get_float(); } count++; if(count < CSIZE) printf("Enter the next.\n"); } if(count > 0){ clave(carr, count); shin(carr, count); shav(carr, count); }else{ printf("No student?Too bad.\n"); } exit(EXIT_SUCCESS); }
int pruebaEstragiaCompresionAlmacenamiento1(char nombre_archivo[]){ AtributoVariable<string> nombre("N"); AtributoVariable<int> numeros("#"); AtributoFijo<int> num("n"); Registro registro(3,&nombre,&numeros,&num); Bloque bloque(®istro); Clave clave(®istro,1,"N"); ComparadorRegistroVariable comparador; EstrategiaCompresion compresion; EABloques estrategia(&bloque,125,0.8f); estrategia.setClave(&clave); estrategia.setComparador(&comparador); Archivo archivo(&estrategia); /*archivo original*/ archivo.crear(nombre_archivo); if(not compresion.descompresion(&archivo)){ for(int i=0;i<5;i++){ *(AtributoVariable<string>*)registro.get(0)=Terminos::obtenerTermino(i).c_str(); ((AtributoVariable<int>*)registro.get(1))->getVector().clear(); for(int j=0;j< i%4+1;j++){ ((AtributoVariable<int>*)registro.get(1))->getVector().push_back(j); }; *((AtributoFijo<int>*)registro.get(2))=i; if(not ((Almacenamiento&)archivo).insertar(®istro)) cout<<"Problema"<<endl; } //archivo.imprimir(cout); compresion.compresion(&archivo,512); cout<<"/***************COMPRIMIENDO************************/"<<endl; }else{ archivo.imprimir(cout); cout<<"/***************DESCOMPRIMIDO**********************/"<<endl; } archivo.cerrar(); remove(nombre_archivo); return 0; }
void BPlusTree::exportNode(ofstream& salida, Node* unNodo, int tabulacion,bool keyText,bool textContent) { if (unNodo->isLeaf()) { LeafNode *unNodoHoja = static_cast<LeafNode*> (unNodo); salida << endl; for(int i = 0 ; i < tabulacion ; i++) salida << " "; salida << "Numero: " << unNodoHoja->number << " Nivel: " << unNodoHoja->level << " Cant.Elem: " << unNodoHoja->keyMount << " Esp.Libre: " << TreeConstraits::getEfectiveSizeNode() - unNodoHoja->occupiedSpace << " Hoja.Sig: " << unNodoHoja->nextLeaf << endl; for (int posicion = 0; posicion < unNodoHoja->keyMount; ++posicion) { for(int i = 0 ; i < tabulacion + 4 ; i++) salida << " "; salida << "("; Key unaClave = unNodoHoja->keys[posicion]; if(keyText) { salida << unaClave.toString(); } else { ByteString clave(unaClave.toString()); salida << Utility::toString(clave.readAsInt(0)); } salida << ";"; ByteString unDato = unNodoHoja->byteData[posicion]; if(textContent) { salida << unDato.toString(); } else { salida << Utility::intToString(unDato.readAsInt(0)); } salida << ")"; salida << (unaClave.getSize() + unDato.getSize() + TreeConstraits::getControlSizeRecord()) << endl; } salida << endl; } else { InnerNode *unNodoInterior = static_cast<InnerNode*> (unNodo); salida << endl << endl; for(int i=0; i<tabulacion ; i++) salida << " "; salida << "Numero: " << unNodoInterior->number << " Nivel: " << unNodoInterior->level << " Cant.Elem: " << unNodoInterior->keyMount << " Esp.Libre: " << TreeConstraits::getEfectiveSizeNode() - unNodoInterior->occupiedSpace << endl; for (int posicion = 0; posicion <= unNodoInterior->keyMount; ++posicion) { if (posicion < unNodoInterior->keyMount) { Key unaClave = unNodoInterior->keys[posicion]; for(int i=0; i<(tabulacion+1) ; i++) salida << " "; salida << "("; if(keyText) { salida << unaClave.toString(); } else { ByteString clave(unaClave.toString()); salida << Utility::toString(clave.readAsInt(0)); } salida << ")"; salida << unaClave.getSize(); salida << " "; salida << unNodoInterior->getSons()[posicion] << " "; } } for (int posicion = 0; posicion <= unNodoInterior->keyMount; ++posicion) { Node *hijo = hidratateNode(unNodoInterior->sons[posicion]); exportNode(salida, hijo, tabulacion + 2,keyText,textContent); if (hijo) freeNodeMemory(hijo); } for(int i=0; i<tabulacion ; i++) salida << " "; salida << endl; } }
void ClassifBPlusTree::exportNode(ofstream& salida, Node* unNodo, int tabulacion,bool keytext, bool textContent) { if (unNodo->isLeaf()) { LeafNode *unNodoHoja = static_cast<LeafNode*> (unNodo); salida << endl; for(int i = 0 ; i < tabulacion ; i++) salida << " "; salida << "Numero: " << unNodoHoja->number << " Nivel: " << unNodoHoja->level << " Cant.Elem: " << unNodoHoja->keyMount << " Esp.Libre: " << TreeConstraits::getEfectiveSizeNode() - unNodoHoja->occupiedSpace << " Hoja.Sig: " << unNodoHoja->nextLeaf << endl; for (int posicion = 0; posicion < unNodoHoja->keyMount; ++posicion) { for(int i = 0 ; i < tabulacion + 4 ; i++) salida << " "; salida << "("; Key unaClave = unNodoHoja->keys[posicion]; if(keytext) { salida << unaClave.toString(); } else { ByteString clave(unaClave.toString()); if(clave.getSize()==(2*sizeof(int))) { salida << Utility::toString(clave.readAsInt(0)); salida << "-"; salida << Utility::toString(clave.readAsInt(sizeof(int))); } else salida << Utility::toString(clave.readAsInt(0)); } salida << ";"; ByteString unDato = unNodoHoja->byteData[posicion]; int idBlock = unDato.readAsInt(0); string datoString = Utility::intToString(idBlock); salida << datoString; salida << ")"; salida << (unaClave.getSize() + unDato.getSize() + TreeConstraits::getControlSizeRecord()) << endl; for(int i = 0 ; i < tabulacion + 4 ; i++) salida << " "; ListofID listOfID(this->fileBlockManager,idBlock); list<int> listOfInt = listOfID.getListID(); list<int>::iterator it; int id; //int count = 0; ByteString bs; unsigned int i = 0; for(it=listOfInt.begin();it!=listOfInt.end();++it) { i++; id = *it; bs.insertLast(Utility::intToString(id)); bs.insertLast(" "); if((i == listOfInt.size()) || (bs.toString().size() >80)) { salida << bs.toString(); salida << endl; if(i != listOfInt.size()) { for(int i = 0 ; i < tabulacion + 4 ; i++) salida << " "; } bs.clean(); } } } } else { InnerNode *unNodoInterior = static_cast<InnerNode*> (unNodo); salida << endl << endl; for(int i=0; i<tabulacion ; i++) salida << " "; salida << "Numero: " << unNodoInterior->number << " Nivel: " << unNodoInterior->level << " Cant.Elem: " << unNodoInterior->keyMount << " Esp.Libre: " << TreeConstraits::getEfectiveSizeNode() - unNodoInterior->occupiedSpace << endl; for (int posicion = 0; posicion <= unNodoInterior->keyMount; ++posicion) { if (posicion < unNodoInterior->keyMount) { Key unaClave = unNodoInterior->keys[posicion]; for(int i=0; i<(tabulacion+1) ; i++) salida << " "; salida << "("; if(keytext) { salida << unaClave.toString(); } else { ByteString clave(unaClave.toString()); salida << Utility::toString(clave.readAsInt(0)); } salida << ")"; salida << unaClave.getSize(); salida << " "; salida << unNodoInterior->getSons()[posicion] << " "; } } for (int posicion = 0; posicion <= unNodoInterior->keyMount; ++posicion) { Node *hijo = hidratateNode(unNodoInterior->sons[posicion]); exportNode(salida, hijo, tabulacion + 2,keytext,textContent); if (hijo) freeNodeMemory(hijo); } for(int i=0; i<tabulacion ; i++) salida << " "; salida << endl; } }
void GNC::GUI::AnonymizePanel::OnPropertyDobleClick(wxPropertyGridEvent& event) { std::string clave(event.GetProperty()->GetHelpString().ToUTF8()); bool isModified = (event.GetProperty()->GetFlags() & wxPG_PROP_MODIFIED); Anonymize(clave,!isModified); }
void GNC::GUI::AnonymizePanel::OnCheckPhysician( wxCommandEvent& /*event*/ ) { //referring physician name std::string clave("0008|0090"); Anonymize(clave,m_pReferringPhysician->IsChecked()); }
void GNC::GUI::AnonymizePanel::OnCheckInstituciones( wxCommandEvent& /*event*/ ) { //se anonimiza (0008,0080) Institution Name std::string clave("0008|0080"); Anonymize(clave,m_pCheckInstituciones->IsChecked()); }
void GNC::GUI::AnonymizePanel::OnCheckIdPaciente( wxCommandEvent& /*event*/ ) { //se anonimiza 0010|0020" (id del paciente) std::string clave("0010|0020"); Anonymize(clave,m_pCheckIdPaciente->IsChecked()); }
void GNC::GUI::AnonymizePanel::OnCheckNombreApellidos( wxCommandEvent& /*event*/ ) { //se anonimiza 0010|0010 (nombre del paciente) std::string clave("0010|0010"); Anonymize(clave,m_pCheckNombrePaciente->IsChecked()); }