Package telefono.almacen

Source Code of telefono.almacen.Guardado2Plano

/*
* Guardado2Plano.java
*
* Created on 2 de julio de 2006, 20:00
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package telefono.almacen;

import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordFilter;
import javax.microedition.rms.RecordStore;
import telefono.almacen.AlmacenMicropocha.RmsFiltro;

/** cuando se crea una instancia de esta clase, con un Pool, realiza todos los
* guardados pendientes en el pool y muere.
* el hilo es de baja prioridad.
* @depercated use GuardadoDaemon instead
*/
class Guardado2Plano implements Runnable
{
    private Pool pool=null;

   /** constructor/ejecutor
    * contruye una instancia del escritor de pendingWrites y lo ejecuta
    * @param async indica si realizaremos la operaci�n en 2� plano
    * @param p pool de escrituras pendientes
    */
    public Guardado2Plano(Pool p)
    {
        this(p,true);
    }
    /** constructor/ejecutor
     * contruye una instancia del escritor de pendingWrites y lo ejecuta
     * @param async indica si realizaremos la operaci�n en 2� plano
     * @param p pool de escrituras pendientes
     */
    public Guardado2Plano(Pool p,boolean async)
    {
        pool=p;
        if(async)
        {
            Thread yo=new Thread(this);
            yo.setPriority(Thread.MIN_PRIORITY);
            yo.start();
        }
        else
        {
            run();
        }
    }
   
    synchronized public void run()
    {
        PendingWrite pw;
        for(pw=pool.pop();pw!=null;pw=pool.pop())
        {
            guardar(pw.nombre,pw.valor);
        }
    } 
   
    /** guarda los datos en un slot
     * @param nombre nombre del slot
     * @param datos datos para introducir en el slot
     **/
    private void guardar(String nombre,byte[]datos)
    {
        RecordStore rs=null;
        try
        {
            //buscar y borrar elemto con mismo nombre
            borrar(nombre);
            rs=RecordStore.openRecordStore(AlmacenMicropocha.RMS_ID,true);
            //grabar elemento
            rs.addRecord(datos,0,datos.length);
            rs.closeRecordStore();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
       
    }
   
    /** borra un slot
     * @throws java.util.NoSuchElementException nunca
     * @throws java.io.IOException Error rms
     */
    public void borrar(String nombre) throws java.io.IOException, java.util.NoSuchElementException
    {
        RecordStore rs=null;
        try
        {
            rs=RecordStore.openRecordStore(AlmacenMicropocha.RMS_ID,true);
            //buscar y borrar elemto con mismo nombre
            RecordFilter filtro=new AlmacenMicropocha.RmsFiltro(nombre);
            RecordEnumeration re=rs.enumerateRecords(filtro,null,false);
            while(re.hasNextElement())
            {
                int el=re.nextRecordId();
                rs.deleteRecord(el);
            }
            rs.closeRecordStore();
        }
        catch (Exception e)
        {
            throw new java.io.IOException(e.getMessage());
        }
    }
}
TOP

Related Classes of telefono.almacen.Guardado2Plano

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.