Horizon

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 9  →  ?path2? @ 10
/Horizon/Database/SnapshotDatabase.cs
@@ -98,6 +98,7 @@
 
private readonly CancellationTokenSource _cancellationTokenSource;
private readonly SemaphoreSlim _databaseLock;
private readonly SQLiteConnectionStringBuilder _sqliteConnectionStringBuilder;
 
#endregion
 
@@ -108,6 +109,11 @@
Directory.CreateDirectory(Constants.DatabaseDirectory);
 
_databaseLock = new SemaphoreSlim(1, 1);
 
_sqliteConnectionStringBuilder = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
}
 
public SnapshotDatabase(CancellationToken cancellationToken) : this()
@@ -118,8 +124,6 @@
CancellationTokenSource.CreateLinkedTokenSource(localCancellationToken, cancellationToken);
_cancellationToken = combinedCancellationTokenSource.Token;
 
 
CreateDatabase(_cancellationToken).ContinueWith(async createDatabaseTask =>
{
try
@@ -130,14 +134,14 @@
{
await SetAutoVacuum(_cancellationToken);
}
catch(Exception exception)
catch (Exception exception)
{
Log.Error(exception,"Unable to set auto vacuum for database.");
Log.Error(exception, "Unable to set auto vacuum for database.");
}
}
catch (Exception exception)
{
Log.Error(exception,"Unable to create database;");
Log.Error(exception, "Unable to create database;");
}
}).Wait(_cancellationToken);
}
@@ -202,16 +206,11 @@
 
public async Task NormalizeTime(string hash, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection =
new SQLiteConnection(connectionString.ConnectionString))
new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -285,15 +284,10 @@
 
public async Task<long> CountSnapshots(CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -330,16 +324,11 @@
 
public async IAsyncEnumerable<Snapshot> LoadSnapshots([EnumeratorCancellation] CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection =
new SQLiteConnection(connectionString.ConnectionString))
new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -389,16 +378,11 @@
 
public async Task CreateSnapshot(string name, string path, Color color, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection =
new SQLiteConnection(connectionString.ConnectionString))
new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -537,16 +521,11 @@
public async Task CreateSnapshot(string name, string path,
Bitmap shot, Color color, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection =
new SQLiteConnection(connectionString.ConnectionString))
new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -715,15 +694,10 @@
 
public async Task SaveFile(string path, string hash, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -778,15 +752,10 @@
 
public async Task RevertFile(string name, string hash, CancellationToken cancellationToken, bool atomic = true)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -903,15 +872,10 @@
 
public async Task RemoveFileFast(IEnumerable<string> hashes, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -961,14 +925,10 @@
 
public async Task RemoveFile(string hash, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -1009,16 +969,11 @@
 
public async Task UpdateColor(string hash, Color color, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
 
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -1060,15 +1015,10 @@
 
public async Task RemoveColor(string hash, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -1109,15 +1059,10 @@
 
public async Task<SnapshotPreview> RetrievePreview(string hash, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -1175,15 +1120,10 @@
 
public async Task<MemoryStream> RetrieveFileStream(string hash, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -1239,15 +1179,10 @@
 
public async Task RelocateFile(string hash, string path, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -1290,15 +1225,10 @@
 
public async Task UpdateNote(string hash, string note, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -1344,17 +1274,12 @@
 
public async Task<string> UpdateFile(string hash, byte[] data, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var dataMemoryStream = new MemoryStream(data))
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -1469,15 +1394,10 @@
 
public async Task UpdateHash(string from, string to, CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -1523,16 +1443,11 @@
 
private async Task SetAutoVacuum(CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection =
new SQLiteConnection(connectionString.ConnectionString))
new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);
 
@@ -1551,15 +1466,10 @@
 
private async Task CreateDatabase(CancellationToken cancellationToken)
{
var connectionString = new SQLiteConnectionStringBuilder
{
ConnectionString = DatabaseConnectionString
};
 
await _databaseLock.WaitAsync(cancellationToken);
try
{
using (var sqliteConnection = new SQLiteConnection(connectionString.ConnectionString))
using (var sqliteConnection = new SQLiteConnection(_sqliteConnectionStringBuilder.ConnectionString))
{
await sqliteConnection.OpenAsync(cancellationToken);