using DTS.Common.Interface.StatusAndProgressBar; using DTS.Common.Utilities; using System.Collections.Generic; using System.Threading; namespace DTS.Common.Interface.DASFactory { [System.Diagnostics.CodeAnalysis.SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Acronym")] public interface IDASFactory { void StartMulticastAutoDiscovery(); void StopMulticastAutoDiscovery(); /// /// returns any discovered devices /// /// IDiscoveredDevice[] GetDiscoveredDevices(); bool PingAll(); string Language { get; set; } void TakeOwnership(); bool AllowSDBCommandPort { get; set; } double S6ConnectNewTimeout { get; set; } string[] SliceDBHostNames { get; set; } string[] GetConnectedDevices(); /// /// TDAS Host Names /// string[] TDASHostNames { get; set; } string[] TDASSerialPortNames { get; set; } string TDASSerialRackSerialNumber { get; set; } /// /// gets a list of all connected DAS devices. /// /// List of all connected DAS hardware List GetDASList(); List GetSortedDASList(); /// /// Retrieves the ICommunication object of all hardware currently connected. /// /// List of ICommunications representing all hardware connected. List GetDevList(); /// /// Make DASFactory forget about all devices. /// void DetachAllDevices(bool detachUSB = false); /// /// Initiate a refresh of the DASFactory (i.e. make sure GetDASList() reflects what's actually connected) /// /// The action to perform when the refresh is done void Refresh(ActionCompleteDelegate action); /// /// configures the default timeout in ms for Multicast auto discovery receive functions /// int MultiCastAutoDiscoveryDefaultTimeoutMS { get; set; } SortableBindingList AutoDiscoverMulticast(CancellationToken cancelToken, bool discoverParents = true); } }