Geary.Db.Connection: Split up into db and transaction-specific impls

Convert `Connection` into an interface, add two concrete implementations
that allow splitting up the database connection used generally, and the
connection passed to transactions. This allows limiting the API surface
that transactions have access to (so they can't e.g. create
sub-transactions) and perform transaction-specific work (e.g. better
logging when an error occurs).
This commit is contained in:
Michael Gratton 2020-09-03 16:54:30 +10:00 committed by Michael James Gratton
parent 801fa710cc
commit 257f6fb901
11 changed files with 461 additions and 270 deletions

View file

@ -213,12 +213,14 @@ src/engine/common/common-message-data.vala
src/engine/db/db.vala
src/engine/db/db-connection.vala
src/engine/db/db-context.vala
src/engine/db/db-database-connection.vala
src/engine/db/db-database-error.vala
src/engine/db/db-database.vala
src/engine/db/db-result.vala
src/engine/db/db-statement.vala
src/engine/db/db-synchronous-mode.vala
src/engine/db/db-transaction-async-job.vala
src/engine/db/db-transaction-connection.vala
src/engine/db/db-transaction-outcome.vala
src/engine/db/db-transaction-type.vala
src/engine/db/db-versioned-database.vala