12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace PlatformBenchmarks
- {
- public class HtmlBufferWriter
- {
- public HtmlBufferWriter(int size)
- {
- mData = new byte[size];
- }
- public void Write(byte data)
- {
- mData[mPostion] = data;
- mPostion++;
- }
- public void Write(string value)
- {
- var len = Encoding.UTF8.GetBytes(value, 0, value.Length, mData, mPostion);
- mPostion += len;
- }
- public void Write(byte[] data)
- {
- Write(data, 0, data.Length);
- }
- public void Write(byte[] data, int offset, int count)
- {
- if (count <= 8)
- {
- for (int i = 0; i < count; i++)
- {
- mData[i + mPostion] = data[offset + i];
- }
- }
- else
- {
- System.Buffer.BlockCopy(data, offset, mData, mPostion, count);
- }
- mPostion += count;
- }
- private byte[] mData;
- private int mPostion = 0;
- public byte[] Data => mData;
- public int Length => mPostion;
- public void Reset()
- {
- mPostion = 0;
- }
- }
- }
|