private void EnqueueEvent(NetEvent evt) { if (UnsyncedEvents) { ProcessEvent(evt); } else { lock (_netEventsQueue) { _netEventsQueue.Enqueue(evt); } } }
private void ProcessEvent(NetEvent evt) { switch (evt.Type) { case NetEventType.Connect: _netEventListener.OnPeerConnected(evt.Peer); break; case NetEventType.Disconnect: _netEventListener.OnPeerDisconnected(evt.Peer, evt.DisconnectReason, evt.AdditionalData); break; case NetEventType.Receive: _netEventListener.OnNetworkReceive(evt.Peer, evt.DataReader); break; case NetEventType.ReceiveUnconnected: _netEventListener.OnNetworkReceiveUnconnected(evt.RemoteEndPoint, evt.DataReader, UnconnectedMessageType.Default); break; case NetEventType.DiscoveryRequest: _netEventListener.OnNetworkReceiveUnconnected(evt.RemoteEndPoint, evt.DataReader, UnconnectedMessageType.DiscoveryRequest); break; case NetEventType.DiscoveryResponse: _netEventListener.OnNetworkReceiveUnconnected(evt.RemoteEndPoint, evt.DataReader, UnconnectedMessageType.DiscoveryResponse); break; case NetEventType.Error: _netEventListener.OnNetworkError(evt.RemoteEndPoint, evt.AdditionalData); break; case NetEventType.ConnectionLatencyUpdated: _netEventListener.OnNetworkLatencyUpdate(evt.Peer, evt.AdditionalData); break; } //Recycle evt.DataReader.Clear(); evt.Peer = null; evt.AdditionalData = 0; evt.RemoteEndPoint = null; lock (_netEventsPool) { _netEventsPool.Push(evt); } }
private void CreateEvent( NetEvent.EType type, NetPeer peer = null, IPEndPoint remoteEndPoint = null, SocketError errorCode = 0, int latency = 0, DisconnectReason disconnectReason = DisconnectReason.ConnectionFailed, ConnectionRequest connectionRequest = null, DeliveryMethod deliveryMethod = DeliveryMethod.Unreliable, NetPacket readerSource = null) { NetEvent evt = null; if (type == NetEvent.EType.Connect) { _connectedPeersCount++; } lock (_netEventsPool) { if (_netEventsPool.Count > 0) { evt = _netEventsPool.Pop(); } } if (evt == null) { evt = new NetEvent(this); } evt.Type = type; evt.DataReader.SetSource(readerSource); evt.Peer = peer; evt.RemoteEndPoint = remoteEndPoint; evt.Latency = latency; evt.ErrorCode = errorCode; evt.DisconnectReason = disconnectReason; evt.ConnectionRequest = connectionRequest; evt.DeliveryMethod = deliveryMethod; if (UnsyncedEvents) { ProcessEvent(evt); } else { lock (_netEventsQueue) _netEventsQueue.Enqueue(evt); } }
private NetEvent CreateEvent(NetEventType type) { NetEvent evt = null; lock (_netEventsPool) { if (_netEventsPool.Count > 0) { evt = _netEventsPool.Pop(); } } if (evt == null) { evt = new NetEvent(); } evt.Type = type; return(evt); }
protected NetEvent CreateEvent(NetEventType type) { NetEvent evt; if (_netEventsPool.Count > 0) { lock (_netEventsPool) { evt = _netEventsPool.Pop(); } } else { evt = new NetEvent(); evt.DataReader = new NetDataReader(); } evt.Type = type; return(evt); }
protected NetEvent CreateEvent(NetEventType type) { NetEvent evt = null; lock (_netEventsPool) { if (_netEventsPool.Count > 0) { evt = _netEventsPool.Pop(); } } if (evt == null) { evt = new NetEvent { DataReader = new NetDataReader() }; } evt.Type = type; return(evt); }
private void ProcessEvent(NetEvent evt) { switch (evt.Type) { case NetEventType.Connect: _netEventListener.OnPeerConnected(evt.Peer); break; case NetEventType.Disconnect: _netEventListener.OnPeerDisconnected(evt.Peer, evt.AdditionalInfo); break; case NetEventType.Receive: _netEventListener.OnNetworkReceive(evt.Peer, evt.DataReader); break; case NetEventType.ReceiveUnconnected: _netEventListener.OnNetworkReceiveUnconnected(evt.RemoteEndPoint, evt.DataReader); break; case NetEventType.Error: _netEventListener.OnNetworkError(evt.RemoteEndPoint, evt.AdditionalInfo); break; case NetEventType.ConnectionLatencyUpdated: _netEventListener.OnNetworkLatencyUpdate(evt.Peer, evt.Latency); break; } //Recycle evt.DataReader.Clear(); evt.Peer = null; evt.AdditionalInfo = string.Empty; evt.RemoteEndPoint = null; lock (_netEventsPool) { _netEventsPool.Push(evt); } }
private NetEvent CreateEvent(NetEventType type) { NetEvent evt = null; if (type == NetEventType.Connect) { _connectedPeersCount++; } lock (_netEventsPool) { if (_netEventsPool.Count > 0) { evt = _netEventsPool.Pop(); } } if (evt == null) { evt = new NetEvent(); } evt.Type = type; return(evt); }
internal NetPacketReader(NetManager manager, NetEvent evt) { _manager = manager; _evt = evt; }
private void ProcessEvent(NetEvent evt) { NetUtils.DebugWrite("[NM] Processing event: " + evt.Type); switch (evt.Type) { case NetEventType.Connect: _netEventListener.OnPeerConnected(evt.Peer); break; case NetEventType.Disconnect: var info = new DisconnectInfo { Reason = evt.DisconnectReason, AdditionalData = evt.DataReader, SocketErrorCode = evt.AdditionalData }; _netEventListener.OnPeerDisconnected(evt.Peer, info); break; case NetEventType.Receive: //_netEventListener.OnNetworkReceive(evt.Peer, evt.DataReader, evt.DeliveryMethod); _netEventListener.OnNetworkReceiveEvt(evt); break; case NetEventType.ReceiveUnconnected: _netEventListener.OnNetworkReceiveUnconnected(evt.RemoteEndPoint, evt.DataReader, UnconnectedMessageType.BasicMessage); break; case NetEventType.DiscoveryRequest: _netEventListener.OnNetworkReceiveUnconnected(evt.RemoteEndPoint, evt.DataReader, UnconnectedMessageType.DiscoveryRequest); break; case NetEventType.DiscoveryResponse: _netEventListener.OnNetworkReceiveUnconnected(evt.RemoteEndPoint, evt.DataReader, UnconnectedMessageType.DiscoveryResponse); break; case NetEventType.Error: _netEventListener.OnNetworkError(evt.RemoteEndPoint, evt.AdditionalData); break; case NetEventType.ConnectionLatencyUpdated: _netEventListener.OnNetworkLatencyUpdate(evt.Peer, evt.AdditionalData); break; case NetEventType.ConnectionRequest: _netEventListener.OnConnectionRequest(evt.ConnectionRequest); break; } if (evt.Type != NetEventType.Receive) { //Recycle evt.DataReader.Clear(); evt.Peer = null; evt.AdditionalData = 0; evt.RemoteEndPoint = null; evt.ConnectionRequest = null; lock (_netEventsPool) _netEventsPool.Push(evt); } }
private void ProcessEvent(NetEvent evt) { switch (evt.Type) { case NetEventType.Connect: _netEventListener.OnPeerConnected(evt.Peer); break; case NetEventType.Disconnect: var info = new DisconnectInfo { Reason = evt.DisconnectReason, AdditionalData = evt.DataReader, SocketErrorCode = evt.AdditionalData }; _netEventListener.OnPeerDisconnected(evt.Peer, info); break; case NetEventType.Receive: // Keep backward compatibility if (evt.Channel == 0) { _netEventListener.OnNetworkReceive(evt.Peer, evt.DataReader, evt.DeliveryMethod); } _netEventListener.OnNetworkReceiveFromChannel(evt.Peer, evt.DataReader, evt.DeliveryMethod, evt.Channel); break; case NetEventType.ReceiveUnconnected: _netEventListener.OnNetworkReceiveUnconnected(evt.RemoteEndPoint, evt.DataReader, UnconnectedMessageType.BasicMessage); break; case NetEventType.DiscoveryRequest: _netEventListener.OnNetworkReceiveUnconnected(evt.RemoteEndPoint, evt.DataReader, UnconnectedMessageType.DiscoveryRequest); break; case NetEventType.DiscoveryResponse: _netEventListener.OnNetworkReceiveUnconnected(evt.RemoteEndPoint, evt.DataReader, UnconnectedMessageType.DiscoveryResponse); break; case NetEventType.Error: _netEventListener.OnNetworkError(evt.RemoteEndPoint, evt.AdditionalData); break; case NetEventType.ConnectionLatencyUpdated: _netEventListener.OnNetworkLatencyUpdate(evt.Peer, evt.AdditionalData); break; case NetEventType.ConnectionRequest: _netEventListener.OnConnectionRequest(evt.ConnectionRequest); break; } //Recycle evt.DataReader.Clear(); evt.Peer = null; evt.AdditionalData = 0; evt.RemoteEndPoint = null; evt.ConnectionRequest = null; lock (_netEventsPool) { _netEventsPool.Push(evt); } }