Terraria 1.4.0.5 Source Code
This commit is contained in:
commit
05205f009e
1059 changed files with 563450 additions and 0 deletions
106
Net/LegacyNetBufferPool.cs
Normal file
106
Net/LegacyNetBufferPool.cs
Normal file
|
@ -0,0 +1,106 @@
|
|||
// Decompiled with JetBrains decompiler
|
||||
// Type: Terraria.Net.LegacyNetBufferPool
|
||||
// Assembly: Terraria, Version=1.4.0.5, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 67F9E73E-0A81-4937-A22C-5515CD405A83
|
||||
// Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Terraria.Net
|
||||
{
|
||||
public class LegacyNetBufferPool
|
||||
{
|
||||
private const int SMALL_BUFFER_SIZE = 256;
|
||||
private const int MEDIUM_BUFFER_SIZE = 1024;
|
||||
private const int LARGE_BUFFER_SIZE = 16384;
|
||||
private static object bufferLock = new object();
|
||||
private static Queue<byte[]> _smallBufferQueue = new Queue<byte[]>();
|
||||
private static Queue<byte[]> _mediumBufferQueue = new Queue<byte[]>();
|
||||
private static Queue<byte[]> _largeBufferQueue = new Queue<byte[]>();
|
||||
private static int _smallBufferCount;
|
||||
private static int _mediumBufferCount;
|
||||
private static int _largeBufferCount;
|
||||
private static int _customBufferCount;
|
||||
|
||||
public static byte[] RequestBuffer(int size)
|
||||
{
|
||||
lock (LegacyNetBufferPool.bufferLock)
|
||||
{
|
||||
if (size <= 256)
|
||||
{
|
||||
if (LegacyNetBufferPool._smallBufferQueue.Count != 0)
|
||||
return LegacyNetBufferPool._smallBufferQueue.Dequeue();
|
||||
++LegacyNetBufferPool._smallBufferCount;
|
||||
return new byte[256];
|
||||
}
|
||||
if (size <= 1024)
|
||||
{
|
||||
if (LegacyNetBufferPool._mediumBufferQueue.Count != 0)
|
||||
return LegacyNetBufferPool._mediumBufferQueue.Dequeue();
|
||||
++LegacyNetBufferPool._mediumBufferCount;
|
||||
return new byte[1024];
|
||||
}
|
||||
if (size <= 16384)
|
||||
{
|
||||
if (LegacyNetBufferPool._largeBufferQueue.Count != 0)
|
||||
return LegacyNetBufferPool._largeBufferQueue.Dequeue();
|
||||
++LegacyNetBufferPool._largeBufferCount;
|
||||
return new byte[16384];
|
||||
}
|
||||
++LegacyNetBufferPool._customBufferCount;
|
||||
return new byte[size];
|
||||
}
|
||||
}
|
||||
|
||||
public static byte[] RequestBuffer(byte[] data, int offset, int size)
|
||||
{
|
||||
byte[] numArray = LegacyNetBufferPool.RequestBuffer(size);
|
||||
Buffer.BlockCopy((Array) data, offset, (Array) numArray, 0, size);
|
||||
return numArray;
|
||||
}
|
||||
|
||||
public static void ReturnBuffer(byte[] buffer)
|
||||
{
|
||||
int length = buffer.Length;
|
||||
lock (LegacyNetBufferPool.bufferLock)
|
||||
{
|
||||
if (length <= 256)
|
||||
LegacyNetBufferPool._smallBufferQueue.Enqueue(buffer);
|
||||
else if (length <= 1024)
|
||||
{
|
||||
LegacyNetBufferPool._mediumBufferQueue.Enqueue(buffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (length > 16384)
|
||||
return;
|
||||
LegacyNetBufferPool._largeBufferQueue.Enqueue(buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void DisplayBufferSizes()
|
||||
{
|
||||
lock (LegacyNetBufferPool.bufferLock)
|
||||
{
|
||||
Main.NewText("Small Buffers: " + (object) LegacyNetBufferPool._smallBufferQueue.Count + " queued of " + (object) LegacyNetBufferPool._smallBufferCount);
|
||||
Main.NewText("Medium Buffers: " + (object) LegacyNetBufferPool._mediumBufferQueue.Count + " queued of " + (object) LegacyNetBufferPool._mediumBufferCount);
|
||||
Main.NewText("Large Buffers: " + (object) LegacyNetBufferPool._largeBufferQueue.Count + " queued of " + (object) LegacyNetBufferPool._largeBufferCount);
|
||||
Main.NewText("Custom Buffers: 0 queued of " + (object) LegacyNetBufferPool._customBufferCount);
|
||||
}
|
||||
}
|
||||
|
||||
public static void PrintBufferSizes()
|
||||
{
|
||||
lock (LegacyNetBufferPool.bufferLock)
|
||||
{
|
||||
Console.WriteLine("Small Buffers: " + (object) LegacyNetBufferPool._smallBufferQueue.Count + " queued of " + (object) LegacyNetBufferPool._smallBufferCount);
|
||||
Console.WriteLine("Medium Buffers: " + (object) LegacyNetBufferPool._mediumBufferQueue.Count + " queued of " + (object) LegacyNetBufferPool._mediumBufferCount);
|
||||
Console.WriteLine("Large Buffers: " + (object) LegacyNetBufferPool._largeBufferQueue.Count + " queued of " + (object) LegacyNetBufferPool._largeBufferCount);
|
||||
Console.WriteLine("Custom Buffers: 0 queued of " + (object) LegacyNetBufferPool._customBufferCount);
|
||||
Console.WriteLine("");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue