public NItem FetchPage(NOutputCache module) { NItem result = null; lock (_req_mutex) { if (_requestInProgres) { System.Threading.Monitor.Wait(_req_mutex); return(_result); } _requestInProgres = true; } try { result = module.Cache.Get(_pageId, NOutputCache.Reader.GetPageSettings(_pageId)) as NItem; } finally { lock (_req_mutex) { _requestInProgres = false; _result = result; System.Threading.Monitor.PulseAll(_req_mutex); } } return(_result); }
/// <summary> /// Checks if varyByAll is set /// </summary> /// <param name="varyBy">varyBy string</param> /// <returns>true if varyByAll, false otherwise</returns> private bool VaryByAll(string varyBy) { if (!NOutputCache.IsNullOrEmpty(varyBy)) { return(varyBy.Trim() == "*"); } return(false); }
/// <summary> /// Parse varyBy /// </summary> /// <param name="varyBy">varyBy string</param> /// <returns>varyBy array</returns> private string[] VaryBy(string varyBy) { string[] varyByArray = new string[0]; if (!NOutputCache.IsNullOrEmpty(varyBy)) { varyByArray = varyBy.Trim().Split(','); ///Trim the result, incase there are spaces for (int i = 0; i < varyByArray.Length; i++) { varyByArray[i] = varyByArray[i].Trim(); } } return(varyByArray); }