// Copyright (c) 2025-2026 GeWuYou
// SPDX-License-Identifier: Apache-2.0
using System.Threading;
namespace GFramework.Core.Tests.Architectures;
///
/// 为 legacy bridge pipeline 回归测试保存跨泛型闭包共享的计数状态。
///
public static class LegacyBridgePipelineTracker
{
private static int _invocationCount;
///
/// 获取当前进程内被识别为 legacy bridge request 的 pipeline 命中次数。
///
public static int InvocationCount => Volatile.Read(ref _invocationCount);
///
/// 重置计数器。
///
public static void Reset()
{
Volatile.Write(ref _invocationCount, 0);
}
///
/// 若当前请求类型属于 Core legacy bridge request,则记录一次命中。
///
public static void Record(Type requestType)
{
ArgumentNullException.ThrowIfNull(requestType);
if (string.Equals(requestType.Namespace, "GFramework.Core.Cqrs", StringComparison.Ordinal) &&
requestType.Name.Contains("Legacy", StringComparison.Ordinal))
{
Interlocked.Increment(ref _invocationCount);
}
}
}