diff options
| author | Avi Levkovich <avi@twine-s.com> | 2018-02-20 16:45:00 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2018-02-20 16:45:00 +0200 |
| commit | 6c208c90bc45aff4a7fa214356a42fe7757c5e6f (patch) | |
| tree | 0d77bc6a0ecfbb53cf42c5462ee19212197ee1bd /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication | |
| parent | b0823127f152fe97a6e8fce29e427c7f3db9cf5a (diff) | |
| parent | 1a573aaa346ec4b8bd58a0e35ab9df571a09b855 (diff) | |
| download | Tango-6c208c90bc45aff4a7fa214356a42fe7757c5e6f.tar.gz Tango-6c208c90bc45aff4a7fa214356a42fe7757c5e6f.zip | |
MERGE
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication')
4 files changed, 84 insertions, 2 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IModuleRequestListener.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IModuleRequestListener.cs new file mode 100644 index 000000000..b950d7bcd --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IModuleRequestListener.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.MachineStudio.Common.StudioApplication +{ + /// <summary> + /// Represents a type which will be notified when a new module request was made by <see cref="IStudioApplicationManager.RequestModule(string, object)"/> + /// </summary> + public interface IModuleRequestListener + { + /// <summary> + /// Called when the request has been made. + /// </summary> + /// <param name="module">The module instance.</param> + /// <param name="args">The arguments.</param> + void OnRequestModule(IStudioModule module, Object args); + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IShutdownListener.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IShutdownListener.cs new file mode 100644 index 000000000..1ca5a7df2 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IShutdownListener.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.MachineStudio.Common.StudioApplication +{ + /// <summary> + /// Used to notify view models about application terminating. + /// </summary> + public interface IShutdownListener + { + /// <summary> + /// Called when the application is about to terminate. + /// </summary> + void OnShuttingDown(); + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IShutdownRequestBlocker.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IShutdownRequestBlocker.cs index a157bd598..4d5f968a4 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IShutdownRequestBlocker.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IShutdownRequestBlocker.cs @@ -6,8 +6,16 @@ using System.Threading.Tasks; namespace Tango.MachineStudio.Common.StudioApplication { + /// <summary> + /// Represents a component capable of receiving notification for when the Machine Studio shuts down. + /// The component can perform it's own shutdown operations, or cancel the current shutdown operation. + /// </summary> public interface IShutdownRequestBlocker { + /// <summary> + /// Called when the application is shutting down. + /// </summary> + /// <returns></returns> Task<bool> OnShutdownRequest(); } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs index 42f4f7b65..c67c34044 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs @@ -7,12 +7,46 @@ using Tango.Integration.Services; namespace Tango.MachineStudio.Common.StudioApplication { + /// <summary> + /// Represents the Machine Studio application manager. + /// </summary> public interface IStudioApplicationManager { - bool IsShuttingDown { get;} + /// <summary> + /// Occurs when the connected machine property has changed. + /// </summary> + event EventHandler<IExternalBridgeClient> ConnectedMachineChanged; + + /// <summary> + /// Gets a value indicating whether Machine Studio is shutting down. + /// </summary> + bool IsShuttingDown { get; } + + /// <summary> + /// Shutdown the application. + /// </summary> void ShutDown(); + + /// <summary> + /// Gets or sets the currently connected machine if any. + /// </summary> IExternalBridgeClient ConnectedMachine { get; set; } + + /// <summary> + /// Gets a value indicating whether the <see cref="ConnectedMachine"/> is valid. + /// </summary> bool IsMachineConnected { get; } - bool IsMachineConnectedViaTCP { get; } + + /// <summary> + /// Gets a value indicating whether the <see cref="ConnectedMachine"/> is valid and connected through TCP/IP. + /// </summary> + bool IsMachineConnectedViaTCP { get; } + + /// <summary> + /// Loads the specified module if permitted. + /// </summary> + /// <param name="moduleName">Name of the module.</param> + /// <param name="args">The arguments.</param> + void RequestModule(String moduleName, Object args); } } |
