Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ QueueSend()

void Terraria.Social.WeGame.WeGameP2PWriter.QueueSend ( RailID user,
byte[] data,
int length )
inline

Definition at line 40 of file WeGameP2PWriter.cs.

41 {
42 lock (_lock)
43 {
45 int num = length;
46 int num2 = 0;
47 while (num > 0)
48 {
49 WriteInformation writeInformation;
50 if (queue2.Count == 0 || 1024 - queue2.Peek().Size == 0)
51 {
52 writeInformation = ((_bufferPool.Count <= 0) ? new WriteInformation() : new WriteInformation(_bufferPool.Dequeue()));
53 queue2.Enqueue(writeInformation);
54 }
55 else
56 {
57 writeInformation = queue2.Peek();
58 }
59 int num3 = Math.Min(num, 1024 - writeInformation.Size);
61 writeInformation.Size += num3;
62 num -= num3;
63 num2 += num3;
64 }
65 }
66 }
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
Definition Array.cs:624
static byte Min(byte val1, byte val2)
Definition Math.cs:912
Dictionary< RailID, Queue< WriteInformation > > _pendingSendData

References Terraria.Social.WeGame.WeGameP2PWriter._bufferPool, Terraria.Social.WeGame.WeGameP2PWriter._lock, Terraria.Social.WeGame.WeGameP2PWriter._pendingSendData, System.Collections.Generic.Dictionary< TKey, TValue >.ContainsKey(), System.Array.Copy(), System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.Collections.Generic.Queue< T >.Dequeue(), System.length, and System.Math.Min().

Referenced by Terraria.Social.WeGame.NetSocialModule.Send().