forked from RevenantX/LiteNetLib
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSimpleChannel.cs
More file actions
39 lines (34 loc) · 929 Bytes
/
SimpleChannel.cs
File metadata and controls
39 lines (34 loc) · 929 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System.Collections.Generic;
namespace LiteNetLib
{
internal sealed class SimpleChannel
{
private readonly Queue<NetPacket> _outgoingPackets;
private readonly NetPeer _peer;
public SimpleChannel(NetPeer peer)
{
_outgoingPackets = new Queue<NetPacket>();
_peer = peer;
}
public void AddToQueue(NetPacket packet)
{
lock (_outgoingPackets)
{
_outgoingPackets.Enqueue(packet);
}
}
public bool SendNextPacket()
{
if (_outgoingPackets.Count == 0)
return false;
NetPacket packet;
lock (_outgoingPackets)
{
packet = _outgoingPackets.Dequeue();
}
_peer.SendRawData(packet.RawData);
_peer.Recycle(packet);
return true;
}
}
}