Implemented as part of ENG-10603.
Currently, we have:
- SQLiteConnectionManager that is used on the web
- NativeSQLiteConnectionManager that is inheriting from the class SQLiteConnectionManager and overrides a couple of methods to be native-specific.
- SQLiteQueryExecutor that owns *connectionManager and uses it, but connection management is implemented in multiple places.
This diff changes the approach to the following:
- SQLiteConnectionManager will be an abstract class with pure virtual functions that depend on the platform (this way, we can avoid directives in SQLiteQueryExecutor and put platform-specific implementation into dedicated classes). Shared code will be implemented in this, parent class
- NativeSQLiteConnectionManager that is inheriting from the class SQLiteConnectionManager and overrides native-specific methods.
- WebSQLiteConnectionManager that is inheriting from the class SQLiteConnectionManager and overrides web-specific methods.
- SQLiteQueryExecutor that owns *connectionManager instance based on platform, but connection management will be fully moved to *connectionManager (later in the stack)
Depends on D14573