using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
using Tango.Integration.Operation;
using Tango.PMR.Integration;
using Tango.Transport;
using Tango.Transport.Transporters;
namespace Tango.Integration.ExternalBridge
{
public interface IExternalBridgeService : ITransporter
{
///
/// Occurs when a new client is waiting for authentication.
///
event EventHandler ConnectionRequest;
///
/// Occurs when the last client has been disconnected.
///
event EventHandler ClientDisconnected;
///
/// Occurs when the service has received a new color profile request.
///
event EventHandler ColorProfileRequest;
///
/// Gets or sets the machine operator.
///
IMachineOperator MachineOperator { get; set; }
///
/// Gets or sets the machine.
///
Machine Machine { get; set; }
///
/// Gets a value indicating whether this instance is started.
///
bool IsStarted { get; }
///
/// Gets or sets a value indicating whether this is enabled.
///
bool Enabled { get; set; }
///
/// Gets a value indicating whether a remote client is authenticated and in session.
///
bool IsInSession { get; }
///
/// Starts this instance.
///
void Start();
///
/// Stops this instance.
///
void Stop();
///
/// Disconnects the current remote client session.
///
void DisconnectSession();
///
/// Gets the current session login intent.
///
ExternalBridgeLoginIntent SessionIntent { get; }
}
}