Initial import of IC.Rebuild
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
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;
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user