package org.n0m.pawsqlite; import java.io.File; import java.util.concurrent.LinkedBlockingQueue; import android.util.Log; public class DBRunner implements Runnable { private static final String TAG = "PawSQLite"; private LinkedBlockingQueue queue; public String dbName; private File dbFile; DBRunner(File dbFile, final String dbName) { queue = new LinkedBlockingQueue(); this.dbFile = dbFile; this.dbName = dbName; } public void queueRequest(DBRequest request) { try { queue.put(request); } catch (InterruptedException e) { Log.e(TAG, "Unexpected Error", e); request.callback.error( "Unexpected Error", "Thread Interrupted", e ); } } public void run() { DBRequest request; DB db = new DB(dbFile, dbName); while(true) { try { request = queue.take(); } catch (InterruptedException e) { Log.e(TAG, "Unexpected Error", e); continue; } db.handleRequest(request); } } }