A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

39 lines
1.1 KiB

using System;
using System.Threading.Tasks;
using Avalonia.Remote.Protocol;
namespace Avalonia.DesignerSupport.Remote
{
class DetachableTransportConnection : IAvaloniaRemoteTransportConnection
{
private IAvaloniaRemoteTransportConnection _inner;
public DetachableTransportConnection(IAvaloniaRemoteTransportConnection inner)
{
_inner = inner;
_inner.OnMessage += FireOnMessage;
}
public void Dispose()
{
if (_inner != null)
_inner.OnMessage -= FireOnMessage;
_inner = null;
}
public void FireOnMessage(IAvaloniaRemoteTransportConnection transport, object obj) => OnMessage?.Invoke(transport, obj);
public Task Send(object data)
{
return _inner?.Send(data);
}
public event Action<IAvaloniaRemoteTransportConnection, object> OnMessage;
public event Action<IAvaloniaRemoteTransportConnection, Exception> OnException
{
add {}
remove {}
}
}
}