public override void Update() { byte[] packet; while (handle != null && (packet = handle.Check()) != null) { if (packet.Length == 0) { handle = null; } NotifyPacketReceived(new TransportPacket(packet)); } }
public LocalTransport(LocalHalfPipe hp) : base(0) { delay = 0f; // dude, we're fast handle = hp; MaximumPacketSize = 2048; }
public override void Dispose() { if (handle == null) { return; } handle.Put(new byte[0]); handle = null; base.Dispose(); }
internal LocalHalfPipe Connect() { Queue<byte[]> first = new Queue<byte[]>(); Queue<byte[]> second = new Queue<byte[]>(); ++connectionNumber; LocalHalfPipe listener = new LocalHalfPipe(connectionNumber, first, second); LocalHalfPipe client = new LocalHalfPipe(-connectionNumber, second, first); pending.Add(listener); return client; }