aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2018-02-20 16:45:00 +0200
committerAvi Levkovich <avi@twine-s.com>2018-02-20 16:45:00 +0200
commit6c208c90bc45aff4a7fa214356a42fe7757c5e6f (patch)
tree0d77bc6a0ecfbb53cf42c5462ee19212197ee1bd /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication
parentb0823127f152fe97a6e8fce29e427c7f3db9cf5a (diff)
parent1a573aaa346ec4b8bd58a0e35ab9df571a09b855 (diff)
downloadTango-6c208c90bc45aff4a7fa214356a42fe7757c5e6f.tar.gz
Tango-6c208c90bc45aff4a7fa214356a42fe7757c5e6f.zip
MERGE
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IModuleRequestListener.cs21
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IShutdownListener.cs19
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IShutdownRequestBlocker.cs8
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs38
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);
}
}