jellyfin/Emby.Server.Core/IO/MemoryStreamProvider.cs

57 lines
1.4 KiB
C#
Raw Normal View History

2016-10-13 14:13:30 -07:00
using System.IO;
using MediaBrowser.Model.IO;
2016-10-06 11:55:01 -07:00
using Microsoft.IO;
2017-05-24 12:12:55 -07:00
namespace Emby.Server.Core.IO
2016-10-06 11:55:01 -07:00
{
2016-11-08 11:44:23 -07:00
public class RecyclableMemoryStreamProvider : IMemoryStreamFactory
2016-10-06 11:55:01 -07:00
{
readonly RecyclableMemoryStreamManager _manager = new RecyclableMemoryStreamManager();
public MemoryStream CreateNew()
{
return _manager.GetStream();
}
public MemoryStream CreateNew(int capacity)
{
return _manager.GetStream("RecyclableMemoryStream", capacity);
}
public MemoryStream CreateNew(byte[] buffer)
{
return _manager.GetStream("RecyclableMemoryStream", buffer, 0, buffer.Length);
}
2016-11-08 11:44:23 -07:00
public bool TryGetBuffer(MemoryStream stream, out byte[] buffer)
{
buffer = stream.GetBuffer();
return true;
}
2016-10-06 11:55:01 -07:00
}
2016-10-13 14:13:30 -07:00
2016-11-08 11:44:23 -07:00
public class MemoryStreamProvider : IMemoryStreamFactory
2016-10-13 14:13:30 -07:00
{
public MemoryStream CreateNew()
{
return new MemoryStream();
}
public MemoryStream CreateNew(int capacity)
{
return new MemoryStream(capacity);
}
public MemoryStream CreateNew(byte[] buffer)
{
return new MemoryStream(buffer);
}
2016-11-08 11:44:23 -07:00
public bool TryGetBuffer(MemoryStream stream, out byte[] buffer)
{
buffer = stream.GetBuffer();
return true;
}
2016-10-13 14:13:30 -07:00
}
2016-10-06 11:55:01 -07:00
}