mirror of
https://github.com/digital-jellyfish/Virtu.git
synced 2024-11-27 15:52:12 +00:00
Added DisposableBase to library.
Replaced Machine.GetCards<T> with Machine.Slots.OfType<T>.
This commit is contained in:
parent
06b887699a
commit
b24bcd767e
26
Library/DisposableBase.cs
Normal file
26
Library/DisposableBase.cs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Jellyfish.Library
|
||||||
|
{
|
||||||
|
public abstract class DisposableBase : IDisposable
|
||||||
|
{
|
||||||
|
protected DisposableBase()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
~DisposableBase()
|
||||||
|
{
|
||||||
|
Dispose(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -10,14 +10,14 @@
|
|||||||
|
|
||||||
namespace Jellyfish.Library
|
namespace Jellyfish.Library
|
||||||
{
|
{
|
||||||
public class ApplicationBase : Application
|
public abstract class ApplicationBase : Application
|
||||||
{
|
{
|
||||||
public ApplicationBase() :
|
protected ApplicationBase() :
|
||||||
this(null)
|
this(null)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationBase(string name)
|
protected ApplicationBase(string name)
|
||||||
{
|
{
|
||||||
Name = name;
|
Name = name;
|
||||||
|
|
||||||
|
@ -74,6 +74,9 @@
|
|||||||
<Compile Include="..\DispatcherExtensions.cs">
|
<Compile Include="..\DispatcherExtensions.cs">
|
||||||
<Link>DispatcherExtensions.cs</Link>
|
<Link>DispatcherExtensions.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="..\DisposableBase.cs">
|
||||||
|
<Link>DisposableBase.cs</Link>
|
||||||
|
</Compile>
|
||||||
<Compile Include="..\FrameRateCounter.xaml.cs">
|
<Compile Include="..\FrameRateCounter.xaml.cs">
|
||||||
<Link>FrameRateCounter.xaml.cs</Link>
|
<Link>FrameRateCounter.xaml.cs</Link>
|
||||||
<DependentUpon>FrameRateCounter.xaml</DependentUpon>
|
<DependentUpon>FrameRateCounter.xaml</DependentUpon>
|
||||||
|
@ -68,6 +68,9 @@
|
|||||||
<Compile Include="..\..\DispatcherExtensions.cs">
|
<Compile Include="..\..\DispatcherExtensions.cs">
|
||||||
<Link>DispatcherExtensions.cs</Link>
|
<Link>DispatcherExtensions.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="..\..\DisposableBase.cs">
|
||||||
|
<Link>DisposableBase.cs</Link>
|
||||||
|
</Compile>
|
||||||
<Compile Include="..\..\GlobalSuppressions.cs">
|
<Compile Include="..\..\GlobalSuppressions.cs">
|
||||||
<Link>GlobalSuppressions.cs</Link>
|
<Link>GlobalSuppressions.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -7,16 +7,16 @@
|
|||||||
|
|
||||||
namespace Jellyfish.Library
|
namespace Jellyfish.Library
|
||||||
{
|
{
|
||||||
public class ApplicationBase : Application
|
public abstract class ApplicationBase : Application
|
||||||
{
|
{
|
||||||
[SecurityCritical]
|
[SecurityCritical]
|
||||||
public ApplicationBase() :
|
protected ApplicationBase() :
|
||||||
this(null)
|
this(null)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
[SecurityCritical]
|
[SecurityCritical]
|
||||||
public ApplicationBase(string name)
|
protected ApplicationBase(string name)
|
||||||
{
|
{
|
||||||
Name = name;
|
Name = name;
|
||||||
|
|
||||||
|
@ -66,6 +66,9 @@
|
|||||||
<Compile Include="..\DispatcherExtensions.cs">
|
<Compile Include="..\DispatcherExtensions.cs">
|
||||||
<Link>DispatcherExtensions.cs</Link>
|
<Link>DispatcherExtensions.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="..\DisposableBase.cs">
|
||||||
|
<Link>DisposableBase.cs</Link>
|
||||||
|
</Compile>
|
||||||
<Compile Include="..\FrameRateCounter.xaml.cs">
|
<Compile Include="..\FrameRateCounter.xaml.cs">
|
||||||
<Link>FrameRateCounter.xaml.cs</Link>
|
<Link>FrameRateCounter.xaml.cs</Link>
|
||||||
<DependentUpon>FrameRateCounter.xaml</DependentUpon>
|
<DependentUpon>FrameRateCounter.xaml</DependentUpon>
|
||||||
|
@ -9,9 +9,9 @@
|
|||||||
|
|
||||||
namespace Jellyfish.Library
|
namespace Jellyfish.Library
|
||||||
{
|
{
|
||||||
public class GameBase : Game
|
public abstract class GameBase : Game
|
||||||
{
|
{
|
||||||
public GameBase(string name)
|
protected GameBase(string name)
|
||||||
{
|
{
|
||||||
Name = name;
|
Name = name;
|
||||||
|
|
||||||
|
@ -88,6 +88,9 @@
|
|||||||
<Compile Include="..\AssemblyCommentAttribute.cs">
|
<Compile Include="..\AssemblyCommentAttribute.cs">
|
||||||
<Link>AssemblyCommentAttribute.cs</Link>
|
<Link>AssemblyCommentAttribute.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="..\DisposableBase.cs">
|
||||||
|
<Link>DisposableBase.cs</Link>
|
||||||
|
</Compile>
|
||||||
<Compile Include="..\GlobalSuppressions.cs">
|
<Compile Include="..\GlobalSuppressions.cs">
|
||||||
<Link>GlobalSuppressions.cs</Link>
|
<Link>GlobalSuppressions.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -103,6 +103,9 @@
|
|||||||
<Compile Include="..\AssemblyCommentAttribute.cs">
|
<Compile Include="..\AssemblyCommentAttribute.cs">
|
||||||
<Link>AssemblyCommentAttribute.cs</Link>
|
<Link>AssemblyCommentAttribute.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="..\DisposableBase.cs">
|
||||||
|
<Link>DisposableBase.cs</Link>
|
||||||
|
</Compile>
|
||||||
<Compile Include="..\GlobalSuppressions.cs">
|
<Compile Include="..\GlobalSuppressions.cs">
|
||||||
<Link>GlobalSuppressions.cs</Link>
|
<Link>GlobalSuppressions.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -106,6 +106,9 @@
|
|||||||
<Compile Include="..\AssemblyCommentAttribute.cs">
|
<Compile Include="..\AssemblyCommentAttribute.cs">
|
||||||
<Link>AssemblyCommentAttribute.cs</Link>
|
<Link>AssemblyCommentAttribute.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="..\DisposableBase.cs">
|
||||||
|
<Link>DisposableBase.cs</Link>
|
||||||
|
</Compile>
|
||||||
<Compile Include="..\GCHandleHelpers.cs">
|
<Compile Include="..\GCHandleHelpers.cs">
|
||||||
<Link>GCHandleHelpers.cs</Link>
|
<Link>GCHandleHelpers.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -48,11 +48,6 @@ public void Dispose()
|
|||||||
_unpauseEvent.Close();
|
_unpauseEvent.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<T> GetCards<T>() where T : PeripheralCard
|
|
||||||
{
|
|
||||||
return Slots.Where(card => card is T).Cast<T>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Reset()
|
public void Reset()
|
||||||
{
|
{
|
||||||
foreach (var component in Components)
|
foreach (var component in Components)
|
||||||
@ -192,7 +187,7 @@ private void Run() // machine thread
|
|||||||
{
|
{
|
||||||
//_debugService = Services.GetService<DebugService>();
|
//_debugService = Services.GetService<DebugService>();
|
||||||
_storageService = Services.GetService<StorageService>();
|
_storageService = Services.GetService<StorageService>();
|
||||||
_bootDiskII = GetCards<DiskIIController>().Last();
|
_bootDiskII = Slots.OfType<DiskIIController>().Last();
|
||||||
|
|
||||||
Initialize();
|
Initialize();
|
||||||
Reset();
|
Reset();
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
namespace Jellyfish.Virtu.Services
|
namespace Jellyfish.Virtu.Services
|
||||||
{
|
{
|
||||||
public abstract class MachineService : IDisposable
|
public abstract class MachineService : DisposableBase
|
||||||
{
|
{
|
||||||
protected MachineService(Machine machine)
|
protected MachineService(Machine machine)
|
||||||
{
|
{
|
||||||
@ -12,21 +12,6 @@ protected MachineService(Machine machine)
|
|||||||
_debugService = new Lazy<DebugService>(() => Machine.Services.GetService<DebugService>());
|
_debugService = new Lazy<DebugService>(() => Machine.Services.GetService<DebugService>());
|
||||||
}
|
}
|
||||||
|
|
||||||
~MachineService()
|
|
||||||
{
|
|
||||||
Dispose(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Dispose()
|
|
||||||
{
|
|
||||||
Dispose(true);
|
|
||||||
GC.SuppressFinalize(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected virtual void Dispose(bool disposing)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Machine Machine { get; private set; }
|
protected Machine Machine { get; private set; }
|
||||||
protected DebugService DebugService { get { return _debugService.Value; } }
|
protected DebugService DebugService { get { return _debugService.Value; } }
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user