void dataFile::searchHashSource(char *source, QTableWidget *tb)
{
    disco.open(name.toStdString().c_str(),ios::binary | ios::in | ios::out);

    //Inicio de timer para buscar por source
    iniciar();
    QList<long> *list=hashSource->mostrarLista(source);
    detener();
    this->timeSearchHashSource += this->getMS();
    //Termina

    search(source,list,tb);

    disco.close();
}
void dataFile::searchHashDestino(char *destino, QTableWidget *tb)
{
    disco.open(name.toStdString().c_str(),ios::binary | ios::in | ios::out);

    //Inicio de timer para buscar por destino
    iniciar();
    QList<long> *list=hashDestino->mostrarLista(destino);
    detener();
    this->timeSearchHashDestino += this->getMS();
    //Termina

    search(destino,list,tb);

    disco.close();
}
void dataFile::searchAVL(char *protocolo, QTableWidget *tb)
{
    disco.open(name.toStdString().c_str(),ios::binary | ios::in | ios::out);

    //Inicio de timer para buscar por protocolo
    iniciar();
    QList<long> *list=arbolAVL->mostrarLista(protocolo);
    detener();
    this->timeSearchAvl += this->getMS();
    //Termina

    search(protocolo,list,tb);

    disco.close();
}
Exemplo n.º 4
0
Ebackup::Ebackup( QWidget* parent )
: EVentana( parent ), Ui_FormBackupBase()
{
 setupUi(this);
 this->setAttribute( Qt::WA_DeleteOnClose );
 setObjectName( "backup" );
 setWindowTitle( "Copia de Seguridad" );
 setWindowIcon( QIcon( ":/imagenes/backup.png" ) );
 PBProgreso->setValue( 0 );
 LDebug->setText( "Presione Iniciar para comenzar" );
 // inicializo el deposito de datos
 datos = new QByteArray();
 comprimidos = new QByteArray();

 ActCerrar = new QAction( "Cerrar", this );
 ActCerrar->setStatusTip( "Cierra la ventana y cancela cualquier backup que se este realizando" );
 ActCerrar->setIcon( QIcon( ":/imagenes/fileclose.png" ) );
 connect( ActCerrar, SIGNAL( triggered() ), this, SLOT( close() ) );

 ActIniciar = new QAction( "Iniciar", this );
 ActIniciar->setStatusTip( "Inincia la generación de los backups" );
 ActIniciar->setIcon( QIcon( ":/imagenes/next.png" ) );
 connect( ActIniciar, SIGNAL( triggered() ), this, SLOT( iniciar() ) );

 ActDetener = new QAction( "Detener", this );
 ActDetener->setStatusTip( "Detiene la ejecución actual del backup" );
 ActDetener->setIcon( QIcon( ":/imagenes/stop.png" ) );
 connect( ActIniciar, SIGNAL( triggered() ), this, SLOT( detener() ) );
 connect( this, SIGNAL( cambiarDetener( bool ) ), ActDetener, SLOT( setEnabled( bool ) ) );

 emit cambiarDetener( false );

 addAction( ActIniciar );
 addAction( ActDetener );
 addAction( ActCerrar );

 ChBBaseDatos->setCheckState( Qt::Checked );

 connect( tBBuscar, SIGNAL( clicked() ), this, SLOT( abrirArchivoBackup() ) );

 Pestanas->setTabIcon( 0, QIcon( ":/imagenes/backup1.png" ) );
 Pestanas->setTabIcon( 1, QIcon( ":/imagenes/backup2.png" ) );
 Pestanas->widget( 0 )->setObjectName( "crearBackup" );
 Pestanas->widget( 1 )->setObjectName( "restaurarBackup" );
 Pestanas->setCurrentIndex(0);
}
Exemplo n.º 5
0
FormActualizacion::FormActualizacion(QWidget* parent, Qt::WFlags fl)
: EVentana( parent, fl ), Ui::FormActualizacionBase()
{
        setupUi(this);
        this->setAttribute( Qt::WA_DeleteOnClose );
        this->setObjectName( "actualizacion" );

        ActCerrar = new QAction( "Cerrar", this );
        ActCerrar->setIcon( QIcon( ":/imagenes/fileclose.png" ) );
        ActCerrar->setShortcut( QKeySequence( "Ctrl+c" ) );
        ActCerrar->setToolTip( "Cierra la ventana de actualizacion ( Ctrl + c ) " );
        ActCerrar->setStatusTip( "Cierra la ventana de actualizaciones" );
        connect( ActCerrar, SIGNAL( triggered() ), this, SLOT( close() ) );

        ActIniciar = new QAction( "Iniciar", this );
        ActIniciar->setStatusTip( "Inicia la actualizacion" );
        ActIniciar->setShortcut( QKeySequence( "Ctrl+i" ) );
        ActIniciar->setIcon( QIcon( ":/imagenes/next.png" ) );
        connect( ActIniciar, SIGNAL( triggered() ), this, SLOT( iniciar() ) );

        ActDetener = new QAction( "Detener", this );
        ActDetener->setIcon( QIcon( ":/imagenes/stop.png" ) );
        ActDetener->setStatusTip( "Detiene la actualizacion" );
        ActDetener->setToolTip( "Detiene la actualizacion ( Ctrl +d )" );
        ActDetener->setShortcut( QKeySequence( "Ctrl+d" ) );
        ActDetener->setEnabled( false );
        connect( ActDetener, SIGNAL( triggered()), this, SLOT( detener() ) );


        addAction( ActIniciar );
        addAction( ActDetener );
        addAction( ActCerrar );

        this->setWindowTitle( "Actualizar el programa" );
        this->setWindowIcon( QIcon( ":/imagenes/actualizar.png" ) );
}
void dataFile::add(long id, double time, char *source, char *destino, char *protocolo, char *info)
{
    disco.open(name.toStdString().c_str(),ios::binary | ios::in | ios::out);

    int cuantos;

    disco.seekg(0,ios_base::beg);
    disco.read((char *)&cuantos,sizeof(int));

    mapabits map;

    unsigned char *mapabits;
    mapabits = (unsigned char *)malloc(cuantos/8);
    memset(mapabits,0,cuantos/8);

    disco.seekg(blocks,ios_base::beg);
    disco.read((char *)mapabits,cuantos/8);

    if(map.cant_apagados(mapabits,cuantos)==0 && arbolB->search(id).rrn!=-1)//Poner lo de buscar en el arbol B para ver si existe
    {
        disco.close();
        return;
    }

    int pos=map.freeblock(mapabits,cuantos);
    map.killblock(mapabits,pos,cuantos);

    nodo_data temp;

    temp.id=id;
    temp.time=time;

    strcpy(temp.source,source);
    strcpy(temp.destino,destino);
    strcpy(temp.protocolo,protocolo);
    strcpy(temp.info,info);

    disco.seekp(pos*blocks,ios_base::beg);
    disco.write((const char *)&temp,sizeof(nodo_data));

    disco.seekp(blocks,ios_base::beg);
    disco.write((const char *)mapabits,cuantos/8);

    //Inicio time de agregar a llaves primarias
    iniciar();
    arbolB->add(id,pos);
    detener();
    this->timeAddLlavesPrimarias += this->getMS();
    //Termina

    //Inicio time de agregar a llaves secundarias
    iniciar();
    arbolAVL->add(protocolo,id);
    hashDestino->add(destino,id);
    hashSource->add(source,id);
    detener();
    this->timeAddLlavesSecundarias += this->getMS();
    //Termina

    free(mapabits);

    disco.close();
}