aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeService.cs
blob: 50b09cf4c6c20c720bac49afed560a4dead968c0 (plain)
1
2
generated by cgit v1.3.1 (git 2.54.0) at 2026-08-04 04:10:42 +0000
 


ix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
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
    {
        /// <summary>
        /// Occurs when a new client is waiting for authentication.
        /// </summary>
        event EventHandler<ExternalBridgeClientConnectedEventArgs> ConnectionRequest;

        /// <summary>
        /// Occurs when the last client has been disconnected.
        /// </summary>
        event EventHandler ClientDisconnected;

        /// <summary>
        /// Gets or sets the machine operator.
        /// </summary>
        IMachineOperator MachineOperator { get; set; }

        /// <summary>
        /// Gets or sets the machine.
        /// </summary>
        Machine Machine { get; set; }

        /// <summary>
        /// Gets a value indicating whether this instance is started.
        /// </summary>
        bool IsStarted { get; }

        /// <summary>
        /// Gets or sets a value indicating whether this <see cref="IExternalBridgeService"/> is enabled.
        /// </summary>
        bool Enabled { get; set; }

        /// <summary>
        /// Gets a value indicating whether a remote client is authenticated and in session.
        /// </summary>
        bool IsInSession { get; }

        /// <summary>
        /// Starts this instance.
        /// </summary>
        void Start();

        /// <summary>
        /// Stops this instance.
        /// </summary>
        void Stop();

        /// <summary>
        /// Disconnects the current remote client session.
        /// </summary>
        void DisconnectSession();

        /// <summary>
        /// Gets the current session login intent.
        /// </summary>
        ExternalBridgeLoginIntent SessionIntent { get; }
    }
}