using System; using System.Collections.Generic; using SQLitePCL.pretty; namespace Emby.Server.Implementations.Data { public class ManagedConnection : IDisposable { private SQLiteDatabaseConnection db; private readonly bool _closeOnDispose; public ManagedConnection(SQLiteDatabaseConnection db, bool closeOnDispose) { this.db = db; _closeOnDispose = closeOnDispose; } public IStatement PrepareStatement(string sql) { return db.PrepareStatement(sql); } public IEnumerable PrepareAll(string sql) { return db.PrepareAll(sql); } public void ExecuteAll(string sql) { db.ExecuteAll(sql); } public void Execute(string sql, params object[] values) { db.Execute(sql, values); } public void RunQueries(string[] sql) { db.RunQueries(sql); } public void RunInTransaction(Action action, TransactionMode mode) { db.RunInTransaction(action, mode); } public T RunInTransaction(Func action, TransactionMode mode) { return db.RunInTransaction(action, mode); } public IEnumerable> Query(string sql) { return db.Query(sql); } public IEnumerable> Query(string sql, params object[] values) { return db.Query(sql, values); } public void Close() { using (db) { } } public void Dispose() { if (_closeOnDispose) { Close(); } } } }