using System; using System.Collections; using mainsoft.apache.commons.httpclient; namespace System.Net { class HttpStateCache { private static readonly int MAX_SIZE = 30; private Stack _states; private int _currentSize; internal HttpStateCache() { _states = new Stack(20); } internal HttpState GetHttpState() { lock(this) { if(_states.Count > 0) return (HttpState) _states.Pop(); } return new HttpState(); } internal void ReleaseHttpState(HttpState state) { lock(this) { if(_states.Count < MAX_SIZE) { state.clear(); _states.Push(state); } } } } }