using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Integration.Services;
namespace Tango.MachineStudio.Common.StudioApplication
{
///
/// Represents the Machine Studio application manager.
///
public interface IStudioApplicationManager
{
///
/// Occurs when the connected machine property has changed.
///
event EventHandler ConnectedMachineChanged;
///
/// Gets a value indicating whether Machine Studio is shutting down.
///
bool IsShuttingDown { get; }
///
/// Shutdown the application.
///
void ShutDown();
///
/// Gets or sets the currently connected machine if any.
///
IExternalBridgeClient ConnectedMachine { get; set; }
///
/// Gets a value indicating whether the is valid.
///
bool IsMachineConnected { get; }
///
/// Gets a value indicating whether the is valid and connected through TCP/IP.
///
bool IsMachineConnectedViaTCP { get; }
///
/// Loads the specified module if permitted.
///
/// Name of the module.
/// The arguments.
void RequestModule(String moduleName, Object args);
///
/// Gets the machine studio application version.
///
String Version { get; }
}
}