Example #1
0
        static void Main(string[] args)
        {
            var pool = new FlyweightObjectPool<byte[]>(() => new byte[65535]);
              pool.Allocate(1000);

              var buffer = pool.Dequeue();

              // .. do something here ..

              pool.Enqueue(buffer);
        }
Example #2
0
        static void Main(string[] args)
        {
            var pool = new FlyweightObjectPool <byte[]>(() => new byte[65535]);

            pool.Allocate(1000);

            var buffer = pool.Dequeue();

            // .. do something here ..

            pool.Enqueue(buffer);
        }
Example #3
0
        /// <summary>
        /// Parse a header.
        /// </summary>
        /// <param name="name">Name of header</param>
        /// <param name="value">Header value</param>
        /// <returns>Header.</returns>
        /// <exception cref="FormatException">Value is not a well formatted header value.</exception>
        public IHeader Parse(string name, string value)
        {
            IHeaderParser parser;

            if (!_parsers.TryGetValue(name, out parser))
            {
                parser = _stringParser;
            }

            StringReader reader = _readers.Dequeue();

            reader.Assign(value);
            try
            {
                return(parser.Parse(name, reader));
            }
            finally
            {
                _readers.Enqueue(reader);
            }
        }
Example #4
0
 /// <summary>
 /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
 /// </summary>
 /// <filterpriority>2</filterpriority>
 public void Dispose()
 {
     Buffers.Enqueue(_buffer);
     Close();
 }
Example #5
0
 /// <summary>
 /// Release a used factory context.
 /// </summary>
 /// <param name="factoryContext"></param>
 internal void Release(MessageFactoryContext factoryContext)
 {
     _builders.Enqueue(factoryContext);
 }