Files
IC.Rebuild/Runtime/NetworkCapture.cs
T

22 lines
865 B
C#

using ICRebuild.Core;
namespace ICRebuild.Runtime;
// Feature 36 owns subscriptions; native hooks may also serve independent consumers.
public sealed class NetworkCapture(NetworkManager network,ModuleManager modules,PacketBuffer buffer)
{
private readonly PacketRecorder recorder=new(buffer);
public long Errors => network.Pipeline.ReadErrors;
public long CompleteUp => recorder.CompleteUp;
public long CompleteDown => recorder.CompleteDown;
public long MetadataOnly => recorder.MetadataOnly;
public string LastIssue => network.Pipeline.LastIssue;
public void Register() => modules.Register(36,scope =>
{
network.Observe(scope,NetworkPhase.Received,recorder.Record);
network.Observe(scope,NetworkPhase.BeforeSend,recorder.Record);
scope.Defer(()=>buffer.Paused=true);
buffer.Paused=false;
});
}