aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Transport/Adapters/MultiTransportAdapter.cs
diff options
context:
space:
mode:
authorMirta <mirta@twine-s.com>2020-12-30 16:39:52 +0200
committerMirta <mirta@twine-s.com>2020-12-30 16:39:52 +0200
commit00a491d93733d4625ad329b2ba8237f445364b3f (patch)
tree4b24c6fa78d7648f4bb7cefafa464bb0b063fec4 /Software/Visual_Studio/Tango.Transport/Adapters/MultiTransportAdapter.cs
parent124ad4150f80c6846fdee41dbbda9848c105f6e5 (diff)
downloadTango-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.cs124
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,
- });
- }
- }
-}