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

◆ QueueSend()

void Terraria.Social.Steam.SteamP2PWriter.QueueSend ( CSteamID user,
byte[] data,
int length )
inline

Definition at line 45 of file SteamP2PWriter.cs.

46 {
47 //IL_0017: Unknown result type (might be due to invalid IL or missing references)
48 //IL_0034: Unknown result type (might be due to invalid IL or missing references)
49 //IL_0025: Unknown result type (might be due to invalid IL or missing references)
50 lock (_lock)
51 {
53 int num = length;
54 int num2 = 0;
55 while (num > 0)
56 {
57 WriteInformation writeInformation;
58 if (queue2.Count == 0 || 1024 - queue2.Peek().Size == 0)
59 {
60 writeInformation = ((_bufferPool.Count <= 0) ? new WriteInformation() : new WriteInformation(_bufferPool.Dequeue()));
61 queue2.Enqueue(writeInformation);
62 }
63 else
64 {
65 writeInformation = queue2.Peek();
66 }
67 int num3 = Math.Min(num, 1024 - writeInformation.Size);
69 writeInformation.Size += num3;
70 num -= num3;
71 num2 += num3;
72 }
73 }
74 }
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< CSteamID, Queue< WriteInformation > > _pendingSendData

References Terraria.Social.Steam.SteamP2PWriter._bufferPool, Terraria.Social.Steam.SteamP2PWriter._lock, Terraria.Social.Steam.SteamP2PWriter._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.Steam.NetSocialModule.Send().