Unified ImageFileCache implementations

This commit is contained in:
Clemens 2021-07-01 15:43:52 +02:00
parent e98f5b9bff
commit f8b0bcbeb1
7 changed files with 25 additions and 12 deletions

View file

@ -29,6 +29,7 @@ namespace MapControl.Caching
}
rootDirectory = directory;
Debug.WriteLine("Created ImageFileCache in " + rootDirectory);
}
@ -133,6 +134,7 @@ namespace MapControl.Caching
if (expiration.HasValue)
{
Array.Resize(ref buffer, buffer.Length - 16);
return expiration.Value;
}
@ -151,5 +153,17 @@ namespace MapControl.Caching
return expiration;
}
private static void WriteExpiration(Stream stream, DateTime expiration)
{
stream.Write(Encoding.ASCII.GetBytes(expiresTag), 0, 8);
stream.Write(BitConverter.GetBytes(expiration.Ticks), 0, 8);
}
private static async Task WriteExpirationAsync(Stream stream, DateTime expiration)
{
await stream.WriteAsync(Encoding.ASCII.GetBytes(expiresTag), 0, 8);
await stream.WriteAsync(BitConverter.GetBytes(expiration.Ticks), 0, 8);
}
}
}

View file

@ -6,7 +6,6 @@ using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Text;
using System.Threading.Tasks;
using Windows.Storage.Streams;
@ -56,8 +55,7 @@ namespace MapControl.Caching
using (var stream = File.Create(path))
{
await stream.AsOutputStream().WriteAsync(buffer);
await stream.WriteAsync(Encoding.ASCII.GetBytes(expiresTag), 0, 8);
await stream.WriteAsync(BitConverter.GetBytes(expiration.Ticks), 0, 8);
await WriteExpirationAsync(stream, expiration);
}
//Debug.WriteLine("ImageFileCache: Wrote {0}, Expires {1}", path, expiration.ToLocalTime());

View file

@ -9,7 +9,7 @@ using System.Threading.Tasks;
using Windows.UI.Core;
using Windows.UI.Xaml.Media;
#else
using Microsoft.System;
using Microsoft.UI.Dispatching;
using Microsoft.UI.Xaml.Media;
#endif

View file

@ -10,7 +10,6 @@ using System.Linq;
using System.Runtime.Caching;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Text;
namespace MapControl.Caching
{
@ -172,8 +171,7 @@ namespace MapControl.Caching
using (var stream = File.Create(path))
{
stream.Write(buffer, 0, buffer.Length);
stream.Write(Encoding.ASCII.GetBytes(expiresTag), 0, 8);
stream.Write(BitConverter.GetBytes(imageCacheItem.Expiration.Ticks), 0, 8);
WriteExpiration(stream, imageCacheItem.Expiration);
}
var fileInfo = new FileInfo(path);

View file

@ -34,8 +34,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.ProjectReunion" Version="0.5.7" />
<PackageReference Include="Microsoft.ProjectReunion.Foundation" Version="0.5.7" />
<PackageReference Include="Microsoft.ProjectReunion.WinUI" Version="0.5.7" />
<PackageReference Include="Microsoft.ProjectReunion" Version="0.8.0" />
<PackageReference Include="Microsoft.ProjectReunion.Foundation" Version="0.8.0" />
<PackageReference Include="Microsoft.ProjectReunion.WinUI" Version="0.8.0" />
</ItemGroup>
</Project>