/// <summary> /// Deserializes an object from the input stream /// </summary> /// <param name="serializationStream">The serialization stream input</param> /// <returns>The IntArray object</returns> public object Deserialize(Stream serializationStream) { byte[] objectBuffer = BufferPoolManager.TakeBuffer <byte>((int)serializationStream.Length); int bytesRead = 0; int currentOffset = 0; const int BufferSize = 409600; while (currentOffset < serializationStream.Length) { bytesRead = serializationStream.Read(objectBuffer, currentOffset, Math.Min(BufferSize, (int)serializationStream.Length - currentOffset)); currentOffset += bytesRead; } IntArray a = this.Deserialize(objectBuffer); BufferPoolManager.ReturnBuffer(ref objectBuffer); return(a); }
private void Init() { try { mWebHandlers = new List<IWebListeningHandler>(); mClientHandler = new Dictionary<string, IWebListeningHandler>(); mClientSockArg = new Dictionary<string, SocketAsyncEventArgs>(); if (null == mConfig) { mConfig = new WebListenerConfig(); } mBufManager = new BufferPoolManager(mConfig.MaxBufferSize, mConfig.MaxConnection); mEventArgsPool = new EventArgsPoolManager(mConfig.MaxConnection); mIOCompletedEvent = new EventHandler<SocketAsyncEventArgs>(IOCompleted); } catch(Exception e) { throw new WebListenerException("Error occurred during initialization: " + e.ToString()); } }
static void SetupBuffers() { bufferPool = new BufferPoolManager(); }