diff options
| author | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
|---|---|---|
| committer | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
| commit | 00a491d93733d4625ad329b2ba8237f445364b3f (patch) | |
| tree | 4b24c6fa78d7648f4bb7cefafa464bb0b063fec4 /Software/Visual_Studio/Tango.Transport/Adapters/MultiTransportAdapter.cs | |
| parent | 124ad4150f80c6846fdee41dbbda9848c105f6e5 (diff) | |
| download | Tango-00a491d9.tar.gz Tango-00a491d9.zip | |
merge
Diffstat (limited to 'Software/Visual_Studio/Tango.Transport/Adapters/MultiTransportAdapter.cs')
| -rw-r--r-- | Software/Visual_Studio/Tango.Transport/Adapters/MultiTransportAdapter.cs | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/Software/Visual_Studio/Tango.Transport/Adapters/MultiTransportAdapter.cs b/Software/Visual_Studio/Tango.Transport/Adapters/MultiTransportAdapter.cs deleted file mode 100644 index f4f7eb9cf..000000000 --- a/Software/Visual_Studio/Tango.Transport/Adapters/MultiTransportAdapter.cs +++ /dev/null @@ -1,124 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.Transport.Adapters -{ - /// <summary> - /// Experimental... - /// </summary> - /// <seealso cref="Tango.Transport.TransportAdapterBase" /> - public class MultiTransportAdapter : TransportAdapterBase - { - public class MultiTransportAdapterDataAvailableEventArgs : EventArgs - { - public ITransportAdapter Adapter { get; set; } - public byte[] Data { get; set; } - } - - public class MultiTransportAdapterStateChangedEventArgs : EventArgs - { - public ITransportAdapter Adapter { get; set; } - public TransportComponentState State { get; set; } - } - - public event EventHandler<MultiTransportAdapterDataAvailableEventArgs> AdapterDataAvailable; - public event EventHandler<MultiTransportAdapterStateChangedEventArgs> AdapterStateChangedAvailable; - - public ReadOnlyCollection<ITransportAdapter> Adapters { get; private set; } - - public MultiTransportAdapter() - { - Adapters = new ReadOnlyCollection<ITransportAdapter>(new List<ITransportAdapter>()); - ComponentName = "Multi Transport Adapter"; - } - - public override void Write(byte[] data, bool immidiate = false) - { - Adapters.ToList().ForEach(x => x.Write(data)); - } - - public void Write(byte[] data, ITransportAdapter adapter) - { - adapter.Write(data); - } - - public override async Task Connect() - { - foreach (var adapter in Adapters.ToList().Where(x => x.State != TransportComponentState.Connected)) - { - await adapter.Connect(); - } - } - - public override async Task Disconnect() - { - foreach (var adapter in Adapters.ToList()) - { - await adapter.Disconnect(); - } - } - - public override void Dispose() - { - foreach (var adapter in Adapters.ToList()) - { - adapter.Dispose(); - } - } - - public void AddAdapter(ITransportAdapter adapter) - { - List<ITransportAdapter> list = Adapters.ToList(); - list.Add(adapter); - Adapters = new ReadOnlyCollection<ITransportAdapter>(list); - - adapter.DataAvailable += Adapter_DataAvailable; - adapter.StateChanged += Adapter_StateChanged; - } - - public void RemoveAdapter(ITransportAdapter adapter) - { - List<ITransportAdapter> list = Adapters.ToList(); - list.Remove(adapter); - Adapters = new ReadOnlyCollection<ITransportAdapter>(list); - - adapter.DataAvailable -= Adapter_DataAvailable; - adapter.StateChanged -= Adapter_StateChanged; - } - - public void ClearAdapters() - { - foreach (var adapter in Adapters.ToList()) - { - adapter.DataAvailable -= Adapter_DataAvailable; - adapter.StateChanged -= Adapter_StateChanged; - } - - Adapters = new ReadOnlyCollection<ITransportAdapter>(new List<ITransportAdapter>()); - } - - private void Adapter_StateChanged(object sender, TransportComponentState state) - { - AdapterStateChangedAvailable?.Invoke(this, new MultiTransportAdapterStateChangedEventArgs() - { - Adapter = sender as ITransportAdapter, - State = state, - }); - } - - private void Adapter_DataAvailable(object sender, byte[] data) - { - OnDataAvailable(data); - - AdapterDataAvailable?.Invoke(this, new MultiTransportAdapterDataAvailableEventArgs() - { - Adapter = sender as ITransportAdapter, - Data = data, - }); - } - } -} |
