DB.checkRc = checkSqlite3Rc;
DB.prototype = {
+ /** Returns true if this db handle is open, else false. */
+ isOpen: function(){
+ return !!this.pointer;
+ },
+ /** Throws if this given DB has been closed, else returns `this`. */
+ affirmOpen: function(){
+ return affirmDbOpen(this);
+ },
/**
Finalizes all open statements and closes this database
connection. This is a no-op if the db has already been
vfs: "kvvfs"
});
};
- sqlite3.oo1.JsStorageDb.prototype = Object.create(DB.prototype);
- }
+ const jdb = sqlite3.oo1.JsStorageDb;
+ jdb.prototype = Object.create(DB.prototype);
+ /** Equivalent to sqlite3_web_kvvfs_clear(). */
+ jdb.clearStorage = capi.sqlite3_web_kvvfs_clear;
+ /**
+ Clears this database instance's storage or throws if this
+ instance has been closed. Returns the number of
+ database blocks which were cleaned up.
+ */
+ jdb.prototype.clearStorage = function(){
+ return jdb.clearStorage(affirmDbOpen(this).filename);
+ };
+ /** Equivalent to sqlite3_web_kvvfs_size(). */
+ jdb.storageSize = capi.sqlite3_web_kvvfs_size;
+ /**
+ Returns the _approximate_ number of bytes this database takes
+ up in its storage or throws if this instance has been closed.
+ */
+ jdb.prototype.storageSize = function(){
+ return jdb.storageSize(affirmDbOpen(this).filename);
+ };
+ }/*main-window-only bits*/
});
const theStore = 's'===dbStorage[0] ? sessionStorage : localStorage;
const db = new oo.JsStorageDb( dbStorage );
// Or: oo.DB(dbStorage, 'c', 'kvvfs')
-
+ log("db.storageSize():",db.storageSize());
document.querySelector('#btn-clear-storage').addEventListener('click',function(){
- const sz = capi.sqlite3_web_kvvfs_clear();
- log("kvvfs localStorage and sessionStorage cleared:",sz,"entries.");
+ const sz = db.clearStorage();
+ log("kvvfs",db.filename+"Storage cleared:",sz,"entries.");
});
document.querySelector('#btn-clear-log').addEventListener('click',function(){
eOutput.innerText = '';
}
});
document.querySelector('#btn-storage-size').addEventListener('click',function(){
- log("sqlite3_web_kvvfs_size(",dbStorage,") says", capi.sqlite3_web_kvvfs_size(dbStorage),
- "bytes");
+ log("size.storageSize(",dbStorage,") says", db.storageSize(),
+ "bytes");
});
log("Storage backend:",db.filename);
if(0===db.selectValue('select count(*) from sqlite_master')){
-C batch-runner.js:\sforce\sWebSQL\sbatches\sto\snot\sabort\sfor\sa\sfailed\sstatement\s(necessary\sfor\sapples-to-apples-ish\sbenchmark\scomparisons).
-D 2022-09-30T15:24:58.096
+C Add\soo1.JsStorageDb.clearStorage/storageSize()\smethods,\scopies\sof\scapi.sqlite3_web_kvvfs_clear/size().
+D 2022-09-30T15:46:08.196
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F ext/wasm/api/pre-js.js 2db711eb637991b383fc6b5c0f3df65ec48a7201e5730e304beba8de2d3f9b0b
F ext/wasm/api/sqlite3-api-cleanup.js 98905936119a555659b5cf43844211809ab9f436c52a569004e5585d2842b5c2
F ext/wasm/api/sqlite3-api-glue.js 81b06946223181727b9a1d731b4f3c2ba97a33ae43bc0bbda7e8fa02400a207e
-F ext/wasm/api/sqlite3-api-oo1.js c4eacee840d43503f0d46c83cb6ad530a32744e5204c162092588954be377858
+F ext/wasm/api/sqlite3-api-oo1.js 9caed0757a5e039ed92467e827fd3ca347fa08f19fe086fcbdd14a4ebe9c2f01
F ext/wasm/api/sqlite3-api-opfs.js 1b097808b7b081b0f0700cf97d49ef19760e401706168edff9cd45cf9169f541
F ext/wasm/api/sqlite3-api-prologue.js 304e883ff1b06f668ebb7bbdc80152b0a9f395bbd34acfd5f7a8ef84e8f17466
F ext/wasm/api/sqlite3-api-worker1.js d5d5b7fac4c4731c38c7e03f4f404b2a95c388a2a1d8bcf361caada572f107e0
F ext/wasm/demo-123.html aa281d33b7eefa755f3122b7b5a18f39a42dc5fb69c8879171bf14b4c37c4ec4
F ext/wasm/demo-123.js 536579fd587974c2511c5bf82034b253d4fdeceabb726927ad7599ef6b7578e8
F ext/wasm/demo-kvvfs1.html 7d4f28873de67f51ac18c584b7d920825139866a96049a49c424d6f5a0ea5e7f
-F ext/wasm/demo-kvvfs1.js a66ec114727902f59dd7bcb56f0916df710205f2f3c4a8b2dc8084d2844ee5a0
+F ext/wasm/demo-kvvfs1.js 105596bd2ccd0b1deb5fde8e99b536e8242d4bb5932fac0c8403ff3a6bc547e8
F ext/wasm/fiddle.make d343d44c58bca06ac0ec0296207f6441560bff89f1e587bbaf843b73c2ca5d76
F ext/wasm/fiddle/emscripten.css 3d253a6fdb8983a2ac983855bfbdd4b6fa1ff267c28d69513dd6ef1f289ada3f
F ext/wasm/fiddle/fiddle-worker.js 2a7107b06e5be3b9b063c340ec952f687e37ba6e0aa736b58c280dfb5e16625a
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P aa6ad34f3b693b554be58ee2895f79397162c5b8877c709653c8508fc625e8f4
-R ee4d9e4b75d1595fd50d7230f8809959
+P 60f0c5cb04d2baf8431e523434d8753e39377f4b2c6bad225c2e5487a4be419b
+R 2f56b5a6214af7809c3a763a0bc16b9d
U stephan
-Z d21afcaefd67f3605743128101420e02
+Z 221cd5b9b95b0e9d6b36653a70003bd2
# Remove this line to create a well-formed Fossil manifest.
-60f0c5cb04d2baf8431e523434d8753e39377f4b2c6bad225c2e5487a4be419b
\ No newline at end of file
+1e09efe7fa15b8908f8b8353164a8361de778e27ea6c0b11c402bf4e1c56333d
\ No newline at end of file