12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using BeetleX;
- using BeetleX.Buffers;
- using BeetleX.Dispatchs;
- using System;
- using System.Collections.Concurrent;
- using System.Text;
- using System.Text.Json;
- namespace PlatformBenchmarks
- {
- public class HttpToken
- {
- private byte[] mLengthBuffer = new byte[10];
- public RawDb Db { get; set; }
- public HttpToken()
- {
- }
- public SingleThreadDispatcher<HttpToken> ThreadDispatcher { get; set; }
- public ConcurrentQueue<RequestData> Requests { get; set; } = new ConcurrentQueue<RequestData>();
- public Utf8JsonWriter Utf8JsonWriter { get; set; }
- public ISession Session { get; set; }
- public RequestData CurrentRequest { get; set; }
- private HtmlBufferWriter mHtmlBufferWriter = null;
- public HtmlBufferWriter GetHtmlBufferWriter()
- {
- if (mHtmlBufferWriter == null)
- mHtmlBufferWriter = new HtmlBufferWriter(2048);
- return mHtmlBufferWriter;
- }
- public byte[] GetLengthBuffer(string length)
- {
- Encoding.ASCII.GetBytes(length, 0, length.Length, mLengthBuffer, 0);
- for (int i = length.Length; i < mLengthBuffer.Length; i++)
- {
- mLengthBuffer[i] = 32;
- }
- mLengthBuffer[6] = (byte)'\r';
- mLengthBuffer[7] = (byte)'\n';
- return mLengthBuffer;
- }
- public int ContentPostion { get; set; }
- public MemoryBlockCollection ContentLength { get; set; }
- public void FullLength(string length)
- {
- var item = GetLengthBuffer(length);
- ContentLength.Full(item);
- }
- private int mProcessStatus = 0;
- public void CompletedProcess()
- {
- System.Threading.Interlocked.Exchange(ref mProcessStatus, 0);
- }
- public bool EnterProcess()
- {
- return System.Threading.Interlocked.CompareExchange(ref mProcessStatus, 1, 0) == 0;
- }
- }
- }
|