#10 move tokens to the root namespace for discoverability. upgrade xunit versions. there is a bug with test discovery for stringtokenizertests

This commit is contained in:
Eliot Jones
2018-11-16 20:00:12 +00:00
parent c72f3796e2
commit 0f68dfeb19
122 changed files with 134 additions and 133 deletions

View File

@@ -0,0 +1,44 @@
namespace UglyToad.PdfPig.Tokens
{
using Filters;
internal class StreamToken : IDataToken<byte[]>
{
private readonly object lockObject = new object();
private byte[] decodedBytes;
public DictionaryToken StreamDictionary { get; }
public byte[] Data { get; }
public StreamToken(DictionaryToken streamDictionary, byte[] data)
{
StreamDictionary = streamDictionary;
Data = data;
}
public byte[] Decode(IFilterProvider filterProvider)
{
lock (lockObject)
{
if (decodedBytes != null)
{
return decodedBytes;
}
var filters = filterProvider.GetFilters(StreamDictionary);
var transform = Data;
for (var i = 0; i < filters.Count; i++)
{
transform = filters[i].Decode(transform, StreamDictionary, i);
}
decodedBytes = transform;
return transform;
}
}
}
}