/// <summary> /// Initializes a new instance of the <see cref="LocalDatasetDistributor"/> class. /// </summary> /// <param name="localDistributor">The object that handles distribution proposals for the local machine.</param> /// <param name="loader">The object that handles the actual starting of the dataset application.</param> /// <param name="commandHub">The object that sends commands to remote endpoints.</param> /// <param name="notificationHub">The object that receives notifications from remote endpoints.</param> /// <param name="uploads">The object that stores all the uploads waiting to be started.</param> /// <param name="datasetInformationBuilder">The function that builds <see cref="DatasetOnlineInformation"/> objects.</param> /// <param name="communicationLayer">The object that handles the communication for the application.</param> /// <param name="systemDiagnostics">The object that provides the diagnostics methods for the system.</param> /// <param name="scheduler">The scheduler that is used to run the tasks on.</param> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="localDistributor"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="loader"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="commandHub"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="notificationHub"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="uploads"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="datasetInformationBuilder"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="communicationLayer"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="systemDiagnostics"/> is <see langword="null" />. /// </exception> public LocalDatasetDistributor( ICalculateDistributionParameters localDistributor, IDatasetActivator loader, ISendCommandsToRemoteEndpoints commandHub, INotifyOfRemoteEndpointEvents notificationHub, IStoreUploads uploads, Func <DatasetId, EndpointId, NetworkIdentifier, DatasetOnlineInformation> datasetInformationBuilder, ICommunicationLayer communicationLayer, SystemDiagnostics systemDiagnostics, TaskScheduler scheduler = null) { { Enforce.Argument(() => localDistributor); Enforce.Argument(() => loader); Enforce.Argument(() => commandHub); Enforce.Argument(() => notificationHub); Enforce.Argument(() => datasetInformationBuilder); Enforce.Argument(() => communicationLayer); Enforce.Argument(() => systemDiagnostics); } m_LocalDistributor = localDistributor; m_Loader = loader; m_CommandHub = commandHub; m_NotificationHub = notificationHub; m_Uploads = uploads; m_DatasetInformationBuilder = datasetInformationBuilder; m_CommunicationLayer = communicationLayer; m_Diagnostics = systemDiagnostics; m_Scheduler = scheduler ?? TaskScheduler.Default; }
/// <summary> /// Initializes a new instance of the <see cref="LocalDatasetDistributor"/> class. /// </summary> /// <param name="localDistributor">The object that handles distribution proposals for the local machine.</param> /// <param name="loader">The object that handles the actual starting of the dataset application.</param> /// <param name="commandHub">The object that sends commands to remote endpoints.</param> /// <param name="notificationHub">The object that receives notifications from remote endpoints.</param> /// <param name="uploads">The object that stores all the uploads waiting to be started.</param> /// <param name="datasetInformationBuilder">The function that builds <see cref="DatasetOnlineInformation"/> objects.</param> /// <param name="communicationLayer">The object that handles the communication for the application.</param> /// <param name="systemDiagnostics">The object that provides the diagnostics methods for the system.</param> /// <param name="scheduler">The scheduler that is used to run the tasks on.</param> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="localDistributor"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="loader"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="commandHub"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="notificationHub"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="uploads"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="datasetInformationBuilder"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="communicationLayer"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="systemDiagnostics"/> is <see langword="null" />. /// </exception> public LocalDatasetDistributor( ICalculateDistributionParameters localDistributor, IDatasetActivator loader, ISendCommandsToRemoteEndpoints commandHub, INotifyOfRemoteEndpointEvents notificationHub, IStoreUploads uploads, Func<DatasetId, EndpointId, NetworkIdentifier, DatasetOnlineInformation> datasetInformationBuilder, ICommunicationLayer communicationLayer, SystemDiagnostics systemDiagnostics, TaskScheduler scheduler = null) { { Enforce.Argument(() => localDistributor); Enforce.Argument(() => loader); Enforce.Argument(() => commandHub); Enforce.Argument(() => notificationHub); Enforce.Argument(() => datasetInformationBuilder); Enforce.Argument(() => communicationLayer); Enforce.Argument(() => systemDiagnostics); } m_LocalDistributor = localDistributor; m_Loader = loader; m_CommandHub = commandHub; m_NotificationHub = notificationHub; m_Uploads = uploads; m_DatasetInformationBuilder = datasetInformationBuilder; m_CommunicationLayer = communicationLayer; m_Diagnostics = systemDiagnostics; m_Scheduler = scheduler ?? TaskScheduler.Default; }