22 lines
865 B
C#
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;
|
|
});
|
|
}
|