MegaBites-AI/Windows-powershell
0372
1// Copyright (c) Microsoft Corporation.2// Licensed under the MIT License.3 4using System.Management.Automation.Remoting.Client;5 6using Dbg = System.Management.Automation.Diagnostics;7 8namespace System.Management.Automation.Remoting9{10 internal abstract class BaseSessionDataStructureHandler11 {12 internal abstract void RaiseKeyExchangeMessageReceived(RemoteDataObject<PSObject> receivedData);13 }14 15 internal abstract class ClientRemoteSessionDataStructureHandler : BaseSessionDataStructureHandler16 {17 #region Abstract_API18 19 internal abstract void CreateAsync();20 21 internal abstract event EventHandler<RemoteSessionStateEventArgs> ConnectionStateChanged;22 23 internal abstract void SendNegotiationAsync(RemoteSessionState sessionState);24 25 internal abstract event EventHandler<RemoteSessionNegotiationEventArgs> NegotiationReceived;26 27 internal abstract void CloseConnectionAsync();28 29 internal abstract void DisconnectAsync();30 31 internal abstract void ReconnectAsync();32 33 internal abstract ClientRemoteSessionDSHandlerStateMachine StateMachine34 {35 get;36 }37 38 internal abstract BaseClientSessionTransportManager TransportManager { get; }39 40 internal abstract BaseClientCommandTransportManager CreateClientCommandTransportManager(41 System.Management.Automation.Runspaces.Internal.ClientRemotePowerShell cmd,42 bool noInput);43 44 // TODO: If this is not used, remove this.45 // internal abstract event EventHandler<RemoteDataEventArgs> DataReceived;46 47 internal abstract event EventHandler<RemoteDataEventArgs<string>> EncryptedSessionKeyReceived;48 49 internal abstract event EventHandler<RemoteDataEventArgs<string>> PublicKeyRequestReceived;50 51 internal abstract void SendPublicKeyAsync(string localPublicKey);52 53 #endregion Abstract_API54 }55}56 