Package telefono.almacen

Source Code of telefono.almacen.GuardadoDemonio

/*
* GuardadoDemonio.java
*
* Created on 2 de julio de 2006, 21:13
*
* 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;

/**
*
* @author Ecnil
*/
public class GuardadoDemonio implements Runnable
{
    static 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 GuardadoDemonio(Pool p)
    {
        pool=p;
        Thread yo=new Thread(this);
        yo.setPriority(Thread.MIN_PRIORITY);
        yo.start();
    }
   
    public void run()
    {
        PendingWrite pw;
        while(true)
        {
            try
            {
                pw=pool.blockingPop();
                guardar(pw.nombre,pw.valor);
                System.err.print("guardado!");
                System.err.print(pw.nombre);
                System.err.flush();
            }
            catch (InterruptedException ex)
            {
                ex.printStackTrace();
            }
        }
    } 
   
    /** 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.GuardadoDemonio

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.