diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-06-16 14:11:10 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-06-16 14:11:10 -0400 |
| commit | fd3ff632d4206612a7bbaf46eacf56939cd82a23 (patch) | |
| tree | 88bd1f7e13bfda15644a054cd205f64753d25275 /MediaBrowser.Server.Mac/Native | |
| parent | 7498b7b5b7e2f7ddf380df1f47421d26c8171418 (diff) | |
| parent | 4f791d6ee1712439c8485260221a8c0aa64760f2 (diff) | |
Merge branch 'master' into dev
Diffstat (limited to 'MediaBrowser.Server.Mac/Native')
| -rw-r--r-- | MediaBrowser.Server.Mac/Native/BaseMonoApp.cs | 28 | ||||
| -rw-r--r-- | MediaBrowser.Server.Mac/Native/NativeApp.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Server.Mac/Native/SqliteExtensions.cs | 62 |
3 files changed, 92 insertions, 6 deletions
diff --git a/MediaBrowser.Server.Mac/Native/BaseMonoApp.cs b/MediaBrowser.Server.Mac/Native/BaseMonoApp.cs index 67ad96859..0b2f533a4 100644 --- a/MediaBrowser.Server.Mac/Native/BaseMonoApp.cs +++ b/MediaBrowser.Server.Mac/Native/BaseMonoApp.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.Reflection; using System.Text.RegularExpressions; using MediaBrowser.Controller.Power; +using MediaBrowser.Server.Implementations.Persistence; using MediaBrowser.Server.Startup.Common.FFMpeg; using System.Diagnostics; @@ -14,6 +15,13 @@ namespace MediaBrowser.Server.Mac { public abstract class BaseMonoApp : INativeApp { + protected ILogger Logger { get; private set; } + + protected BaseMonoApp(ILogger logger) + { + Logger = logger; + } + /// <summary> /// Shutdowns this instance. /// </summary> @@ -39,6 +47,21 @@ namespace MediaBrowser.Server.Mac } } + public void PreventSystemStandby() + { + + } + + public void AllowSystemStandby() + { + + } + + public IDbConnector GetDbConnector() + { + return new DbConnector(Logger); + } + public virtual bool SupportsLibraryMonitor { get @@ -64,11 +87,6 @@ namespace MediaBrowser.Server.Mac get { return false; } } - public void PreventSystemStandby() - { - - } - public List<Assembly> GetAssembliesWithParts() { var list = new List<Assembly>(); diff --git a/MediaBrowser.Server.Mac/Native/NativeApp.cs b/MediaBrowser.Server.Mac/Native/NativeApp.cs index 005fb0914..59fa92dd1 100644 --- a/MediaBrowser.Server.Mac/Native/NativeApp.cs +++ b/MediaBrowser.Server.Mac/Native/NativeApp.cs @@ -1,5 +1,6 @@ using System; using MediaBrowser.Server.Startup.Common; +using MediaBrowser.Model.Logging; namespace MediaBrowser.Server.Mac { @@ -8,7 +9,12 @@ namespace MediaBrowser.Server.Mac /// </summary> public class NativeApp : BaseMonoApp { - /// <summary> + public NativeApp(ILogger logger) + : base(logger) + { + } + + /// <summary> /// Shutdowns this instance. /// </summary> public override void Shutdown() diff --git a/MediaBrowser.Server.Mac/Native/SqliteExtensions.cs b/MediaBrowser.Server.Mac/Native/SqliteExtensions.cs new file mode 100644 index 000000000..a05bb3f26 --- /dev/null +++ b/MediaBrowser.Server.Mac/Native/SqliteExtensions.cs @@ -0,0 +1,62 @@ +using System; +using System.Data; +using System.Data.SQLite; +using System.Threading.Tasks; +using MediaBrowser.Model.Logging; +using MediaBrowser.Server.Implementations.Persistence; + +namespace MediaBrowser.Server.Mac +{ + /// <summary> + /// Class SQLiteExtensions + /// </summary> + static class SqliteExtensions + { + /// <summary> + /// Connects to db. + /// </summary> + /// <param name="dbPath">The db path.</param> + /// <param name="logger">The logger.</param> + /// <returns>Task{IDbConnection}.</returns> + /// <exception cref="System.ArgumentNullException">dbPath</exception> + public static async Task<IDbConnection> ConnectToDb(string dbPath, ILogger logger) + { + if (string.IsNullOrEmpty(dbPath)) + { + throw new ArgumentNullException("dbPath"); + } + + logger.Info("Sqlite {0} opening {1}", SQLiteConnection.SQLiteVersion, dbPath); + + var connectionstr = new SQLiteConnectionStringBuilder + { + PageSize = 4096, + CacheSize = 2000, + SyncMode = SynchronizationModes.Full, + DataSource = dbPath, + JournalMode = SQLiteJournalModeEnum.Wal + }; + + var connection = new SQLiteConnection(connectionstr.ConnectionString); + + await connection.OpenAsync().ConfigureAwait(false); + + return connection; + } + } + + public class DbConnector : IDbConnector + { + private readonly ILogger _logger; + + public DbConnector(ILogger logger) + { + _logger = logger; + } + + public Task<IDbConnection> Connect(string dbPath) + { + return SqliteExtensions.ConnectToDb(dbPath, _logger); + } + } +}
\ No newline at end of file |
