More explanatory naming for Manager Init (Attach) and Dispose (Detach).

Torch.Client uses the registry to discover Steam's installation directory.
This commit is contained in:
Westin Miller
2017-08-18 16:19:59 -07:00
parent ceb272c0b4
commit 40eab15d69
14 changed files with 42 additions and 42 deletions

View File

@@ -38,25 +38,25 @@ namespace Torch.API.Managers
bool RemoveManager(IManager manager);
/// <summary>
/// Initializes the dependency manager, and all its registered managers.
/// Sorts the dependency manager, then attaches all its registered managers in <see cref="AttachOrder" />
/// </summary>
void Init();
void Attach();
/// <summary>
/// Disposes the dependency manager, and all its registered managers.
/// Detaches all registered managers in <see cref="DetachOrder"/>
/// </summary>
void Dispose();
void Detach();
/// <summary>
/// The order that managers should be loaded in. (Dependencies, then dependents)
/// The order that managers should be attached in. (Dependencies, then dependents)
/// </summary>
/// <exception cref="InvalidOperationException">When trying to determine load order before this dependency manager is initialized</exception>
IEnumerable<IManager> LoadOrder { get; }
IEnumerable<IManager> AttachOrder { get; }
/// <summary>
/// The order that managers should be unloaded in. (Dependents, then dependencies)
/// The order that managers should be detached in. (Dependents, then dependencies)
/// </summary>
/// <exception cref="InvalidOperationException">When trying to determine unload order before this dependency manager is initialized</exception>
IEnumerable<IManager> UnloadOrder { get; }
IEnumerable<IManager> DetachOrder { get; }
}
}

View File

@@ -12,13 +12,13 @@ namespace Torch.API.Managers
public interface IManager
{
/// <summary>
/// Initializes the manager. Called once this manager's dependencies have been initialized.
/// Attaches the manager to the session. Called once this manager's dependencies have been attached.
/// </summary>
void Init();
void Attach();
/// <summary>
/// Disposes the manager. Called before this manager's dependencies are disposed.
/// Detaches the manager from the session. Called before this manager's dependencies are detached.
/// </summary>
void Dispose();
void Detach();
}
}

View File

@@ -31,9 +31,6 @@ namespace Torch.Client
}
}
private static readonly string[] _steamInstallDirectories = new[] {
@"C:\Program Files\Steam\", @"C:\Program Files (x86)\Steam\"
};
private const string _steamSpaceEngineersDirectory = @"steamapps\common\SpaceEngineers\";
private const string _spaceEngineersVerifyFile = SpaceEngineersBinaries + @"\SpaceEngineers.exe";
@@ -76,14 +73,17 @@ namespace Torch.Client
private static void SetupSpaceEngInstallAlias()
{
string spaceEngineersDirectory = null;
foreach (string steamDir in _steamInstallDirectories)
// TODO look at Steam/config/Config.VDF? Has alternate directories.
var steamDir =
Microsoft.Win32.Registry.GetValue("HKEY_CURRENT_USER\\SOFTWARE\\Valve\\Steam", "SteamPath", null) as string;
if (steamDir != null)
{
spaceEngineersDirectory = Path.Combine(steamDir, _steamSpaceEngineersDirectory);
// ReSharper disable once ConvertIfStatementToConditionalTernaryExpression
if (File.Exists(Path.Combine(spaceEngineersDirectory, _spaceEngineersVerifyFile)))
{
_log.Debug("Found Space Engineers in {0}", spaceEngineersDirectory);
break;
}
else
_log.Debug("Couldn't find Space Engineers in {0}", spaceEngineersDirectory);
}
if (spaceEngineersDirectory == null)

View File

@@ -34,7 +34,7 @@ namespace Torch.Server.Managers
}
/// <inheritdoc />
public override void Init()
public override void Attach()
{
MyFileSystem.ExePath = Path.Combine(_filesystemManager.TorchDirectory, "DedicatedServer64");
MyFileSystem.Init("Content", Torch.Config.InstancePath);

View File

@@ -28,7 +28,7 @@ namespace Torch.Commands
Prefix = prefix;
}
public override void Init()
public override void Attach()
{
RegisterCommandModule(typeof(TorchCommands));
_chatManager.MessageRecieved += HandleCommand;

View File

@@ -35,7 +35,7 @@ namespace Torch.Managers
}
public override void Init()
public override void Attach()
{
try
{

View File

@@ -241,26 +241,26 @@ namespace Torch.Managers
/// <summary>
/// Initializes the dependency manager, and all its registered managers.
/// </summary>
public void Init()
public void Attach()
{
if (_initialized)
throw new InvalidOperationException("Can't start the dependency manager more than once");
_initialized = true;
Sort();
foreach (ManagerInstance manager in _orderedManagers)
manager.Instance.Init();
manager.Instance.Attach();
}
/// <summary>
/// Disposes the dependency manager, and all its registered managers.
/// </summary>
public void Dispose()
public void Detach()
{
if (!_initialized)
throw new InvalidOperationException("Can't dispose an uninitialized dependency manager");
for (int i = _orderedManagers.Count - 1; i >= 0; i--)
{
_orderedManagers[i].Instance.Dispose();
_orderedManagers[i].Instance.Detach();
foreach (DependencyInfo field in _orderedManagers[i].Dependencies)
field.Field.SetValue(_orderedManagers[i].Instance, null);
}
@@ -268,7 +268,7 @@ namespace Torch.Managers
}
/// <inheritdoc/>
public IEnumerable<IManager> LoadOrder
public IEnumerable<IManager> AttachOrder
{
get
{
@@ -280,7 +280,7 @@ namespace Torch.Managers
}
/// <inheritdoc/>
public IEnumerable<IManager> UnloadOrder
public IEnumerable<IManager> DetachOrder
{
get
{

View File

@@ -63,12 +63,12 @@ namespace Torch.Managers
Torch = torchInstance;
}
public virtual void Init()
public virtual void Attach()
{
}
public virtual void Dispose()
public virtual void Detach()
{
}

View File

@@ -65,7 +65,7 @@ namespace Torch.Managers
}
/// <inheritdoc />
public override void Init()
public override void Attach()
{
Torch.SessionLoaded += OnSessionLoaded;
_chatManager.MessageRecieved += Instance_MessageRecieved;

View File

@@ -63,7 +63,7 @@ namespace Torch.Managers
/// <summary>
/// Loads the network intercept system
/// </summary>
public override void Init()
public override void Attach()
{
Torch.SessionLoaded += OnSessionLoaded;
}

View File

@@ -48,7 +48,7 @@ namespace Torch.Managers
/// <summary>
/// Unloads all plugins.
/// </summary>
public override void Dispose()
public override void Detach()
{
foreach (var plugin in Plugins)
plugin.Dispose();

View File

@@ -16,7 +16,7 @@ namespace Torch.Managers
{
private MyScriptWhitelist _whitelist;
public void Init()
public void Attach()
{
_whitelist = MyScriptCompiler.Static.Whitelist;
MyScriptCompiler.Static.AddConditionalCompilationSymbols("TORCH");
@@ -41,7 +41,7 @@ namespace Torch.Managers
Log.Info(whitelist);*/
}
public void Dispose()
public void Detach()
{
// TODO unregister whitelist patches
}

View File

@@ -19,7 +19,7 @@ namespace Torch.Managers
/// <summary>
/// Handles updating of the DS and Torch plugins.
/// </summary>
public class UpdateManager : Manager, IDisposable
public class UpdateManager : Manager
{
private Timer _updatePollTimer;
private GitHubClient _gitClient = new GitHubClient(new ProductHeaderValue("Torch"));
@@ -34,7 +34,7 @@ namespace Torch.Managers
}
/// <inheritdoc />
public override void Init()
public override void Attach()
{
CheckAndUpdateTorch();
}
@@ -146,7 +146,7 @@ namespace Torch.Managers
}
/// <inheritdoc />
public override void Dispose()
public override void Detach()
{
_updatePollTimer?.Dispose();
}

View File

@@ -250,7 +250,7 @@ namespace Torch
MySession.OnUnloading += OnSessionUnloading;
MySession.OnUnloaded += OnSessionUnloaded;
RegisterVRagePlugin();
Managers.Init();
Managers.Attach();
_init = true;
}
@@ -318,7 +318,7 @@ namespace Torch
/// <inheritdoc />
public virtual void Dispose()
{
Managers.Dispose();
Managers.Detach();
}
/// <inheritdoc />