Index: Core/Components/src/Core.Components.BruTile/Configurations/PersistentCacheConfiguration.cs
===================================================================
diff -u -r4b24b9c98dd06f31acd9e1282b287c491b07ab2f -rc779a09fcdb11c7263b460e664e93cc36d0daf6f
--- Core/Components/src/Core.Components.BruTile/Configurations/PersistentCacheConfiguration.cs (.../PersistentCacheConfiguration.cs) (revision 4b24b9c98dd06f31acd9e1282b287c491b07ab2f)
+++ Core/Components/src/Core.Components.BruTile/Configurations/PersistentCacheConfiguration.cs (.../PersistentCacheConfiguration.cs) (revision c779a09fcdb11c7263b460e664e93cc36d0daf6f)
@@ -81,10 +81,39 @@
GC.SuppressFinalize(this);
}
- public abstract IConfiguration Clone();
+ public IConfiguration Clone()
+ {
+ ThrowExceptionIfDisposed();
- public abstract void Initialize();
+ return OnClone();
+ }
+ public void Initialize()
+ {
+ ThrowExceptionIfDisposed();
+
+ OnInitialize();
+ }
+
+ ///
+ /// Gets a deep copy of the configuration.
+ ///
+ /// The cloned configuration.
+ /// Thrown when creating the file
+ /// cache failed.
+ protected abstract IConfiguration OnClone();
+
+ ///
+ /// Properly initialize the configuration, making it ready for tile fetching.
+ ///
+ /// Thrown when the configured
+ /// cannot be found.
+ /// Thrown when the configured
+ /// tile cache cannot be created.
+ /// Thrown when
+ /// doesn't allow for tiles to be received.
+ protected abstract void OnInitialize();
+
protected virtual void Dispose(bool disposing)
{
if (IsDisposed)
@@ -109,22 +138,22 @@
///
/// Initializes the configuration based on the given .
///
- /// The tile source to initialize for.
+ /// The tile source to initialize for.
/// Thrown when a critical error
/// occurs when creating the tile cache.
- /// Thrown when
+ /// Thrown when
/// does not allow for tiles to be retrieved.
/// Thrown when calling this method while
/// this instance is disposed.
- protected void InitializeFromTileSource(ITileSource tileSource)
+ protected void InitializeFromTileSource(ITileSource newTileSource)
{
ThrowExceptionIfDisposed();
- this.tileSource = tileSource;
+ tileSource = newTileSource;
IPersistentCache tileCache = CreateTileCache();
try
{
- ITileProvider provider = BruTileReflectionHelper.GetProviderFromTileSource(tileSource);
+ ITileProvider provider = BruTileReflectionHelper.GetProviderFromTileSource(newTileSource);
TileFetcher = new AsyncTileFetcher(provider,
BruTileSettings.MemoryCacheMinimum,
BruTileSettings.MemoryCacheMaximum,
Index: Core/Components/src/Core.Components.BruTile/Configurations/WellKnownTileSourceLayerConfiguration.cs
===================================================================
diff -u -r0f778d2d9cc904175274baf4d6a21996ccef8d54 -rc779a09fcdb11c7263b460e664e93cc36d0daf6f
--- Core/Components/src/Core.Components.BruTile/Configurations/WellKnownTileSourceLayerConfiguration.cs (.../WellKnownTileSourceLayerConfiguration.cs) (revision 0f778d2d9cc904175274baf4d6a21996ccef8d54)
+++ Core/Components/src/Core.Components.BruTile/Configurations/WellKnownTileSourceLayerConfiguration.cs (.../WellKnownTileSourceLayerConfiguration.cs) (revision c779a09fcdb11c7263b460e664e93cc36d0daf6f)
@@ -86,40 +86,23 @@
/// cache failed.
public static WellKnownTileSourceLayerConfiguration CreateInitializedConfiguration(WellKnownTileSource wellKnownTileSource)
{
- return CreateInitializedConfiguration(WellKnownTileSourceToKnownTileSource(wellKnownTileSource));
+ KnownTileSource knownTileSource = WellKnownTileSourceToKnownTileSource(wellKnownTileSource);
+
+ ITileSource tileSource = TileSourceFactory.Instance.GetKnownTileSource(knownTileSource);
+ return new WellKnownTileSourceLayerConfiguration(knownTileSource, tileSource);
}
- public override IConfiguration Clone()
+ protected override IConfiguration OnClone()
{
- ThrowExceptionIfDisposed();
-
return new WellKnownTileSourceLayerConfiguration(PersistentCacheDirectoryPath, knownTileSource);
}
- public override void Initialize()
+ protected override void OnInitialize()
{
- ThrowExceptionIfDisposed();
-
Initialized = true;
}
///
- /// Creates a fully initialized instance of .
- ///
- /// The built-in tile provider to be used.
- /// The new .
- /// Thrown when
- /// isn't a supported member.
- /// Thrown when creating the file
- /// cache failed.
- private static WellKnownTileSourceLayerConfiguration CreateInitializedConfiguration(KnownTileSource knownTileSource)
- {
- ITileSource tileSource = TileSourceFactory.Instance.GetKnownTileSource(knownTileSource);
-
- return new WellKnownTileSourceLayerConfiguration(knownTileSource, tileSource);
- }
-
- ///
/// Returns the equivalent of .
///
/// The tile provider to be used.
Index: Core/Components/src/Core.Components.BruTile/Configurations/WmtsLayerConfiguration.cs
===================================================================
diff -u -r797872a6e0525f12c0f84b03e996a9d42630ad0b -rc779a09fcdb11c7263b460e664e93cc36d0daf6f
--- Core/Components/src/Core.Components.BruTile/Configurations/WmtsLayerConfiguration.cs (.../WmtsLayerConfiguration.cs) (revision 797872a6e0525f12c0f84b03e996a9d42630ad0b)
+++ Core/Components/src/Core.Components.BruTile/Configurations/WmtsLayerConfiguration.cs (.../WmtsLayerConfiguration.cs) (revision c779a09fcdb11c7263b460e664e93cc36d0daf6f)
@@ -106,17 +106,13 @@
return new WmtsLayerConfiguration(wmtsCapabilitiesUrl, tileSource);
}
- public override IConfiguration Clone()
+ protected override IConfiguration OnClone()
{
- ThrowExceptionIfDisposed();
-
return new WmtsLayerConfiguration(capabilitiesUri, capabilityIdentifier, preferredFormat, PersistentCacheDirectoryPath);
}
- public override void Initialize()
+ protected override void OnInitialize()
{
- ThrowExceptionIfDisposed();
-
if (Initialized)
{
return;
Index: Core/Components/test/Core.Components.BruTile.Test/Configurations/PersistentCacheConfigurationTest.cs
===================================================================
diff -u -r4b24b9c98dd06f31acd9e1282b287c491b07ab2f -rc779a09fcdb11c7263b460e664e93cc36d0daf6f
--- Core/Components/test/Core.Components.BruTile.Test/Configurations/PersistentCacheConfigurationTest.cs (.../PersistentCacheConfigurationTest.cs) (revision 4b24b9c98dd06f31acd9e1282b287c491b07ab2f)
+++ Core/Components/test/Core.Components.BruTile.Test/Configurations/PersistentCacheConfigurationTest.cs (.../PersistentCacheConfigurationTest.cs) (revision c779a09fcdb11c7263b460e664e93cc36d0daf6f)
@@ -300,12 +300,12 @@
InitializeFromTileSource(tileSource);
}
- public override IConfiguration Clone()
+ protected override IConfiguration OnClone()
{
throw new NotImplementedException();
}
- public override void Initialize()
+ protected override void OnInitialize()
{
throw new NotImplementedException();
}