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);
}
}