2025-05-04 19:55:10 +08:00
|
|
|
|
using Obfuz.ObfusPasses;
|
|
|
|
|
using System.Collections.Generic;
|
2025-04-21 09:57:34 +08:00
|
|
|
|
|
|
|
|
|
namespace Obfuz
|
2025-04-05 19:02:50 +08:00
|
|
|
|
{
|
2025-05-04 19:24:14 +08:00
|
|
|
|
public class Pipeline
|
2025-04-05 19:02:50 +08:00
|
|
|
|
{
|
2025-04-21 09:57:34 +08:00
|
|
|
|
private readonly List<IObfuscationPass> _passes = new List<IObfuscationPass>();
|
|
|
|
|
|
2025-05-12 17:21:20 +08:00
|
|
|
|
public bool Empty => _passes.Count == 0;
|
|
|
|
|
|
2025-05-04 19:24:14 +08:00
|
|
|
|
public Pipeline AddPass(IObfuscationPass pass)
|
2025-04-21 09:57:34 +08:00
|
|
|
|
{
|
|
|
|
|
_passes.Add(pass);
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
2025-05-04 19:24:14 +08:00
|
|
|
|
public void Start(ObfuscationPassContext ctx)
|
2025-04-21 09:57:34 +08:00
|
|
|
|
{
|
|
|
|
|
foreach (var pass in _passes)
|
|
|
|
|
{
|
|
|
|
|
pass.Start(ctx);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-05-04 19:24:14 +08:00
|
|
|
|
public void Stop(ObfuscationPassContext ctx)
|
2025-04-21 09:57:34 +08:00
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
foreach (var pass in _passes)
|
|
|
|
|
{
|
|
|
|
|
pass.Stop(ctx);
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-04-05 19:02:50 +08:00
|
|
|
|
|
2025-05-04 19:24:14 +08:00
|
|
|
|
public void Run(ObfuscationPassContext ctx)
|
2025-04-21 09:57:34 +08:00
|
|
|
|
{
|
|
|
|
|
foreach (var pass in _passes)
|
|
|
|
|
{
|
|
|
|
|
pass.Process(ctx);
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-04-05 19:02:50 +08:00
|
|
|
|
}
|
|
|
|
|
}
|