An Apache Cordova adapter for PawSQLite
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

50 lines
1.0 KiB

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<DBRequest> queue;
public String dbName;
private File dbFile;
DBRunner(File dbFile, final String dbName) {
queue = new LinkedBlockingQueue<DBRequest>();
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);
}
}
}