public bool Process() { UdpEvent ev = default(UdpEvent); ConnectionObject co = null; pair val = default(pair); if (socket.Poll(ref ev)) { switch (ev.EventType) { case UdpEventType.Connected: ev.Connection.UserToken = co = new ConnectionObject(); co.connection = ev.Connection; connections.Add(ev.Connection); for (int i = 0; i < 16; ++i) { co.QueueNext(); co.Send(); } break; case UdpEventType.ObjectLost: val = (pair)ev.Object; co = (ConnectionObject)ev.Connection.UserToken; co.Nack(val); co.Send(); break; case UdpEventType.ObjectDelivered: val = (pair)ev.Object; co = (ConnectionObject)ev.Connection.UserToken; co.Ack(val); co.QueueNext(); co.Send(); break; case UdpEventType.ObjectReceived: val = (pair)ev.Object; co = (ConnectionObject)ev.Connection.UserToken; co.Recv(val); co.DequeueReceived(); break; case UdpEventType.ObjectRejected: Console.WriteLine("REJECTED"); break; case UdpEventType.ObjectSendFailed: Console.WriteLine("SENDFAILED"); break; } return(true); } return(false); }
public bool Process() { UdpEvent ev = default(UdpEvent); ConnectionObject co = null; pair val = default(pair); if (socket.Poll(ref ev)) { switch (ev.EventType) { case UdpEventType.Connected: ev.Connection.UserToken = co = new ConnectionObject(); co.connection = ev.Connection; connections.Add(ev.Connection); for (int i = 0; i < 16; ++i) { co.QueueNext(); co.Send(); } break; case UdpEventType.ObjectLost: val = (pair) ev.Object; co = (ConnectionObject) ev.Connection.UserToken; co.Nack(val); co.Send(); break; case UdpEventType.ObjectDelivered: val = (pair) ev.Object; co = (ConnectionObject) ev.Connection.UserToken; co.Ack(val); co.QueueNext(); co.Send(); break; case UdpEventType.ObjectReceived: val = (pair) ev.Object; co = (ConnectionObject) ev.Connection.UserToken; co.Recv(val); co.DequeueReceived(); break; case UdpEventType.ObjectRejected: Console.WriteLine("REJECTED"); break; case UdpEventType.ObjectSendFailed: Console.WriteLine("SENDFAILED"); break; } return true; } return false; }