// Copyright (c) Microsoft. All rights reserved.
using System.Threading.Tasks;
using Microsoft.Agents.AI.Workflows.Specialized;
using Microsoft.Shared.Diagnostics;
namespace Microsoft.Agents.AI.Workflows;
///
/// Represents the registration details for a request port, including configuration for allowing wrapped requests.
///
/// The request port.
/// true to allow wrapped requests to be handled by the port; otherwise, false.
/// The default is true.
public record RequestPortBinding(RequestPort Port, bool AllowWrapped = true)
: ExecutorBinding(Throw.IfNull(Port).Id,
(_) => new ValueTask(new RequestInfoExecutor(Port, AllowWrapped)),
typeof(RequestInfoExecutor),
Port)
{
///
public override bool IsSharedInstance => false;
///
public override bool SupportsConcurrentSharedExecution => true;
///
public override bool SupportsResetting => false;
}