internal override bool TryRetrieve(string key, out RequestCacheEntry cacheEntry, out Stream readStream) { if (key == null) { throw new ArgumentNullException("key"); } FrozenCacheEntry clonedObject = this._Entry; cacheEntry = null; readStream = null; if ((clonedObject == null) || (clonedObject.Key != key)) { Stream stream; RequestCacheEntry entry2; if (!this._UseWinInet || !base.TryRetrieve(key, out entry2, out stream)) { return(false); } clonedObject = new FrozenCacheEntry(key, entry2, stream); stream.Close(); this._Entry = clonedObject; } cacheEntry = FrozenCacheEntry.Create(clonedObject); readStream = new ReadOnlyStream(clonedObject.StreamBytes); return(true); }
internal override bool TryUpdate(string key, DateTime expiresUtc, DateTime lastModifiedUtc, DateTime lastSynchronizedUtc, TimeSpan maxStale, StringCollection entryMetadata, StringCollection systemMetadata) { if (key == null) { throw new ArgumentNullException("key"); } FrozenCacheEntry chkEntry = FrozenCacheEntry.Create(_Entry); // // This class does not forward metadata updates to WinInet to simplify the design and avoid interlocked ops // if (chkEntry == null || chkEntry.Key != key) { return(true); } chkEntry.ExpiresUtc = expiresUtc; chkEntry.LastModifiedUtc = lastModifiedUtc; chkEntry.LastSynchronizedUtc = lastSynchronizedUtc; chkEntry.MaxStale = maxStale; chkEntry.EntryMetadata = entryMetadata; chkEntry.SystemMetadata = systemMetadata; _Entry = chkEntry; return(true); }
internal override bool TryRemove(string key) { if (key == null) { throw new ArgumentNullException("key"); } if (this._UseWinInet) { base.TryRemove(key); } FrozenCacheEntry entry = this._Entry; if ((entry != null) && (entry.Key == key)) { this._Entry = null; } return true; }
internal override bool TryRemove(string key) { if (key == null) { throw new ArgumentNullException("key"); } FrozenCacheEntry chkEntry = _Entry; if (chkEntry != null && chkEntry.Key == key) { _Entry = null; } return(true); }
internal override bool TryRemove(string key) { if (key == null) { throw new ArgumentNullException("key"); } if (this._UseWinInet) { base.TryRemove(key); } FrozenCacheEntry entry = this._Entry; if ((entry != null) && (entry.Key == key)) { this._Entry = null; } return(true); }
internal override bool TryUpdate(string key, DateTime expiresUtc, DateTime lastModifiedUtc, DateTime lastSynchronizedUtc, TimeSpan maxStale, StringCollection entryMetadata, StringCollection systemMetadata) { if (key == null) { throw new ArgumentNullException("key"); } FrozenCacheEntry entry = FrozenCacheEntry.Create(this._Entry); if ((entry != null) && (entry.Key == key)) { entry.ExpiresUtc = expiresUtc; entry.LastModifiedUtc = lastModifiedUtc; entry.LastSynchronizedUtc = lastSynchronizedUtc; entry.MaxStale = maxStale; entry.EntryMetadata = entryMetadata; entry.SystemMetadata = systemMetadata; this._Entry = entry; } return(true); }
internal override bool TryRetrieve(string key, out RequestCacheEntry cacheEntry, out Stream readStream) { if (key == null) { throw new ArgumentNullException("key"); } FrozenCacheEntry chkEntry = _Entry; cacheEntry = null; readStream = null; if (chkEntry == null || chkEntry.Key != key) { return(false); } cacheEntry = FrozenCacheEntry.Create(chkEntry); readStream = new ReadOnlyStream(chkEntry.StreamBytes); return(true); }
public static FrozenCacheEntry Create(FrozenCacheEntry clonedObject) { return (object)clonedObject == (object)null? null: (FrozenCacheEntry) clonedObject.MemberwiseClone(); }
internal override bool TryRetrieve(string key, out RequestCacheEntry cacheEntry, out Stream readStream) { if (key == null) { throw new ArgumentNullException("key"); } FrozenCacheEntry clonedObject = this._Entry; cacheEntry = null; readStream = null; if ((clonedObject == null) || (clonedObject.Key != key)) { Stream stream; RequestCacheEntry entry2; if (!this._UseWinInet || !base.TryRetrieve(key, out entry2, out stream)) { return false; } clonedObject = new FrozenCacheEntry(key, entry2, stream); stream.Close(); this._Entry = clonedObject; } cacheEntry = FrozenCacheEntry.Create(clonedObject); readStream = new ReadOnlyStream(clonedObject.StreamBytes); return true; }
private void Commit(string key, RequestCacheEntry tempEntry, byte[] allBytes) { FrozenCacheEntry entry = new FrozenCacheEntry(key, tempEntry, allBytes); this._Entry = entry; }
internal override bool TryUpdate(string key, DateTime expiresUtc, DateTime lastModifiedUtc, DateTime lastSynchronizedUtc, TimeSpan maxStale, StringCollection entryMetadata, StringCollection systemMetadata) { if (key == null) { throw new ArgumentNullException("key"); } FrozenCacheEntry entry = FrozenCacheEntry.Create(this._Entry); if ((entry != null) && (entry.Key == key)) { entry.ExpiresUtc = expiresUtc; entry.LastModifiedUtc = lastModifiedUtc; entry.LastSynchronizedUtc = lastSynchronizedUtc; entry.MaxStale = maxStale; entry.EntryMetadata = entryMetadata; entry.SystemMetadata = systemMetadata; this._Entry = entry; } return true; }
internal override bool TryUpdate(string key, DateTime expiresUtc, DateTime lastModifiedUtc, DateTime lastSynchronizedUtc, TimeSpan maxStale, StringCollection entryMetadata, StringCollection systemMetadata) { if (key == null) throw new ArgumentNullException("key"); FrozenCacheEntry chkEntry = FrozenCacheEntry.Create(_Entry); // // This class does not forward metadata updates to WinInet to simplify the design and avoid interlocked ops // if (chkEntry == null || chkEntry.Key != key) return true; chkEntry.ExpiresUtc = expiresUtc; chkEntry.LastModifiedUtc = lastModifiedUtc; chkEntry.LastSynchronizedUtc = lastSynchronizedUtc; chkEntry.MaxStale = maxStale; chkEntry.EntryMetadata = entryMetadata; chkEntry.SystemMetadata = systemMetadata; _Entry = chkEntry; return true; }
internal override bool TryRemove(string key) { if (key == null) throw new ArgumentNullException("key"); FrozenCacheEntry chkEntry = _Entry; if (chkEntry != null && chkEntry.Key == key) _Entry = null; return true; }
public static FrozenCacheEntry Create(FrozenCacheEntry clonedObject) { return((object)clonedObject == (object)null? null: (FrozenCacheEntry)clonedObject.MemberwiseClone()); }