/// <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);
        }
Esempio n. 2
0
        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());
              }
        }
Esempio n. 3
0
 static void SetupBuffers()
 {
     bufferPool = new BufferPoolManager();
 }