SimpleChannel.cs 999 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #if DEBUG && !UNITY_WP_8_1 && !UNITY_WSA_8_1
  2. using System.Collections.Generic;
  3. namespace FlyingWormConsole3.LiteNetLib
  4. {
  5. internal sealed class SimpleChannel
  6. {
  7. private readonly Queue<NetPacket> _outgoingPackets;
  8. private readonly NetPeer _peer;
  9. public SimpleChannel(NetPeer peer)
  10. {
  11. _outgoingPackets = new Queue<NetPacket>();
  12. _peer = peer;
  13. }
  14. public void AddToQueue(NetPacket packet)
  15. {
  16. lock (_outgoingPackets)
  17. {
  18. _outgoingPackets.Enqueue(packet);
  19. }
  20. }
  21. public bool SendNextPacket()
  22. {
  23. NetPacket packet;
  24. lock (_outgoingPackets)
  25. {
  26. if (_outgoingPackets.Count == 0)
  27. return false;
  28. packet = _outgoingPackets.Dequeue();
  29. }
  30. _peer.SendRawData(packet);
  31. _peer.Recycle(packet);
  32. return true;
  33. }
  34. }
  35. }
  36. #endif