1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using System;
- namespace Mirror
- {
-
- public sealed class PooledNetworkReader : NetworkReader, IDisposable
- {
- internal PooledNetworkReader(byte[] bytes) : base(bytes) {}
- internal PooledNetworkReader(ArraySegment<byte> segment) : base(segment) {}
- public void Dispose() => NetworkReaderPool.Recycle(this);
- }
-
- public static class NetworkReaderPool
- {
-
-
-
- static readonly Pool<PooledNetworkReader> Pool = new Pool<PooledNetworkReader>(
-
- () => new PooledNetworkReader(new byte[]{}),
-
- 1000
- );
-
- public static PooledNetworkReader GetReader(byte[] bytes)
- {
-
- PooledNetworkReader reader = Pool.Take();
- reader.SetBuffer(bytes);
- return reader;
- }
-
- public static PooledNetworkReader GetReader(ArraySegment<byte> segment)
- {
-
- PooledNetworkReader reader = Pool.Take();
- reader.SetBuffer(segment);
- return reader;
- }
-
- public static void Recycle(PooledNetworkReader reader)
- {
- Pool.Return(reader);
- }
- }
- }
|