using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL;
using Tango.BL.Entities;
using Tango.Integration.ExternalBridge;
using Tango.Integration.Operation;
namespace Tango.PPC.Common.Connection
{
///
/// Represents the machine connection provider.
///
public interface IMachineProvider
{
///
/// Occurs when the machine has connected.
///
event EventHandler MachineConnected;
///
/// Occurs when the machine has disconnected.
///
event EventHandler MachineDisconnected;
event EventHandler Initialized;
///
/// Gets a value indicating whether the machine is currently connected.
///
bool IsConnected { get; }
///
/// Gets the database machine entity associated with the current machine.
///
Machine Machine { get; }
///
/// Gets the machine operator.
///
IMachineOperator MachineOperator { get; }
///
/// Initializes this machine provider start machine port scanning and connection.
///
void Init(Machine machine, ObservablesContext context);
///
/// Saves the machine settings.
///
///
Task SaveMachine();
}
}