File: Interfaces\Engine\ClientProtocol\IParallelProxyDiscoveryManager.cs
Web Access
Project: src\src\vstest\src\Microsoft.TestPlatform.Common\Microsoft.TestPlatform.Common.csproj (Microsoft.VisualStudio.TestPlatform.Common)
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Collections.Generic;

namespace Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine;

/// <summary>
/// Interface defining the parallel discovery manager
/// </summary>
public interface IParallelProxyDiscoveryManager : IProxyDiscoveryManager
{
    /// <summary>
    /// Indicates if user requested an abortion
    /// </summary>
    bool IsAbortRequested { get; }

    /// <summary>
    /// Handles Partial Discovery Complete event coming from a specific concurrent proxy discovery manager
    /// Each concurrent proxy discovery manager will signal the parallel discovery manager when its complete
    /// </summary>
    /// <param name="proxyDiscoveryManager">discovery manager instance</param>
    /// <param name="totalTests">Total Tests discovered for the concurrent discovery</param>
    /// <param name="lastChunk">LastChunk testcases for the concurrent discovery</param>
    /// <param name="isAborted">True if discovery is aborted</param>
    /// <returns>True if parallel discovery is complete</returns>
    bool HandlePartialDiscoveryComplete(
        IProxyDiscoveryManager proxyDiscoveryManager,
        long totalTests,
        IEnumerable<TestCase>? lastChunk,
        bool isAborted);
}