aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/CnmSynchronizedCache.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/CnmSynchronizedCache.cs')
-rw-r--r--OpenSim/Framework/CnmSynchronizedCache.cs106
1 files changed, 53 insertions, 53 deletions
diff --git a/OpenSim/Framework/CnmSynchronizedCache.cs b/OpenSim/Framework/CnmSynchronizedCache.cs
index 2bafbe9..b33f4f7 100644
--- a/OpenSim/Framework/CnmSynchronizedCache.cs
+++ b/OpenSim/Framework/CnmSynchronizedCache.cs
@@ -36,10 +36,10 @@ namespace OpenSim.Framework
36 /// Synchronized Cenome cache wrapper. 36 /// Synchronized Cenome cache wrapper.
37 /// </summary> 37 /// </summary>
38 /// <typeparam name="TKey"> 38 /// <typeparam name="TKey">
39 /// The type of keys in the cache. 39 /// The type of keys in the cache.
40 /// </typeparam> 40 /// </typeparam>
41 /// <typeparam name="TValue"> 41 /// <typeparam name="TValue">
42 /// The type of values in the cache. 42 /// The type of values in the cache.
43 /// </typeparam> 43 /// </typeparam>
44 /// <remarks> 44 /// <remarks>
45 /// <para> 45 /// <para>
@@ -60,7 +60,7 @@ namespace OpenSim.Framework
60 private readonly object m_syncRoot; 60 private readonly object m_syncRoot;
61 61
62 /// <summary> 62 /// <summary>
63 /// Initializes a new instance of the <see cref="CnmSynchronizedCache{TKey,TValue}"/> class. 63 /// Initializes a new instance of the <see cref="CnmSynchronizedCache{TKey,TValue}"/> class.
64 /// Initializes a new instance of the <see cref="CnmSynchronizedCache{TKey,TValue}"/> class. 64 /// Initializes a new instance of the <see cref="CnmSynchronizedCache{TKey,TValue}"/> class.
65 /// </summary> 65 /// </summary>
66 /// <param name="cache"> 66 /// <param name="cache">
@@ -73,13 +73,13 @@ namespace OpenSim.Framework
73 } 73 }
74 74
75 /// <summary> 75 /// <summary>
76 /// Returns a <see cref="ICnmCache{TKey,TValue}"/> wrapper that is synchronized (thread safe). 76 /// Returns a <see cref="ICnmCache{TKey,TValue}"/> wrapper that is synchronized (thread safe).
77 /// </summary> 77 /// </summary>
78 /// <param name="cache"> 78 /// <param name="cache">
79 /// The <see cref="ICnmCache{TKey,TValue}"/> to synchronize. 79 /// The <see cref="ICnmCache{TKey,TValue}"/> to synchronize.
80 /// </param> 80 /// </param>
81 /// <returns> 81 /// <returns>
82 /// A <see cref="ICnmCache{TKey,TValue}"/> wrapper that is synchronized (thread safe). 82 /// A <see cref="ICnmCache{TKey,TValue}"/> wrapper that is synchronized (thread safe).
83 /// </returns> 83 /// </returns>
84 /// <exception cref="ArgumentNullException"> 84 /// <exception cref="ArgumentNullException">
85 /// <paramref name="cache"/>is null. 85 /// <paramref name="cache"/>is null.
@@ -125,7 +125,7 @@ namespace OpenSim.Framework
125 } 125 }
126 126
127 /// <summary> 127 /// <summary>
128 /// Finalizes an instance of the <see cref="SynchronizedEnumerator"/> class. 128 /// Finalizes an instance of the <see cref="SynchronizedEnumerator"/> class.
129 /// </summary> 129 /// </summary>
130 ~SynchronizedEnumerator() 130 ~SynchronizedEnumerator()
131 { 131 {
@@ -184,7 +184,7 @@ namespace OpenSim.Framework
184 /// true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. 184 /// true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.
185 /// </returns> 185 /// </returns>
186 /// <exception cref="InvalidOperationException"> 186 /// <exception cref="InvalidOperationException">
187 /// The collection was modified after the enumerator was created. 187 /// The collection was modified after the enumerator was created.
188 /// </exception> 188 /// </exception>
189 public bool MoveNext() 189 public bool MoveNext()
190 { 190 {
@@ -195,7 +195,7 @@ namespace OpenSim.Framework
195 /// Sets the enumerator to its initial position, which is before the first element in the collection. 195 /// Sets the enumerator to its initial position, which is before the first element in the collection.
196 /// </summary> 196 /// </summary>
197 /// <exception cref="InvalidOperationException"> 197 /// <exception cref="InvalidOperationException">
198 /// The collection was modified after the enumerator was created. 198 /// The collection was modified after the enumerator was created.
199 /// </exception> 199 /// </exception>
200 public void Reset() 200 public void Reset()
201 { 201 {
@@ -214,8 +214,8 @@ namespace OpenSim.Framework
214 /// </summary> 214 /// </summary>
215 /// <remarks> 215 /// <remarks>
216 /// <para> 216 /// <para>
217 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 217 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
218 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 218 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
219 /// </para> 219 /// </para>
220 /// </remarks> 220 /// </remarks>
221 /// <seealso cref="ICnmCache{TKey,TValue}.MaxCount"/> 221 /// <seealso cref="ICnmCache{TKey,TValue}.MaxCount"/>
@@ -241,13 +241,13 @@ namespace OpenSim.Framework
241 /// </value> 241 /// </value>
242 /// <remarks> 242 /// <remarks>
243 /// <para> 243 /// <para>
244 /// When element has been stored in <see cref="ICnmCache{TKey,TValue}"/> longer than <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/> 244 /// When element has been stored in <see cref="ICnmCache{TKey,TValue}"/> longer than <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/>
245 /// and it is not accessed through <see cref="ICnmCache{TKey,TValue}.TryGetValue"/> method or element's value is 245 /// and it is not accessed through <see cref="ICnmCache{TKey,TValue}.TryGetValue"/> method or element's value is
246 /// not replaced by <see cref="ICnmCache{TKey,TValue}.Set"/> method, then it is automatically removed from the 246 /// not replaced by <see cref="ICnmCache{TKey,TValue}.Set"/> method, then it is automatically removed from the
247 /// <see cref="ICnmCache{TKey,TValue}"/>. 247 /// <see cref="ICnmCache{TKey,TValue}"/>.
248 /// </para> 248 /// </para>
249 /// <para> 249 /// <para>
250 /// It is possible that <see cref="ICnmCache{TKey,TValue}"/> implementation removes element before it's expiration time, 250 /// It is possible that <see cref="ICnmCache{TKey,TValue}"/> implementation removes element before it's expiration time,
251 /// because total size or count of elements stored to cache is larger than <see cref="ICnmCache{TKey,TValue}.MaxSize"/> or <see cref="ICnmCache{TKey,TValue}.MaxCount"/>. 251 /// because total size or count of elements stored to cache is larger than <see cref="ICnmCache{TKey,TValue}.MaxSize"/> or <see cref="ICnmCache{TKey,TValue}.MaxCount"/>.
252 /// </para> 252 /// </para>
253 /// <para> 253 /// <para>
@@ -291,17 +291,17 @@ namespace OpenSim.Framework
291 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting count of elements. 291 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting count of elements.
292 /// </summary> 292 /// </summary>
293 /// <value> 293 /// <value>
294 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> count of elements is limited; 294 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> count of elements is limited;
295 /// otherwise, <see langword="false"/>. 295 /// otherwise, <see langword="false"/>.
296 /// </value> 296 /// </value>
297 /// <remarks> 297 /// <remarks>
298 /// <para> 298 /// <para>
299 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 299 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
300 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 300 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
301 /// </para> 301 /// </para>
302 /// </remarks> 302 /// </remarks>
303 /// <seealso cref="ICnmCache{TKey,TValue}.Count"/> 303 /// <seealso cref="ICnmCache{TKey,TValue}.Count"/>
304 /// <seealso cref="ICnmCache{TKey,TValue}.MaxCount"/> 304 /// <seealso cref="ICnmCache{TKey,TValue}.MaxCount"/>
305 /// <seealso cref="ICnmCache{TKey,TValue}.IsSizeLimited"/> 305 /// <seealso cref="ICnmCache{TKey,TValue}.IsSizeLimited"/>
306 /// <seealso cref="ICnmCache{TKey,TValue}.IsTimeLimited"/> 306 /// <seealso cref="ICnmCache{TKey,TValue}.IsTimeLimited"/>
307 public bool IsCountLimited 307 public bool IsCountLimited
@@ -319,13 +319,13 @@ namespace OpenSim.Framework
319 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting size of elements. 319 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting size of elements.
320 /// </summary> 320 /// </summary>
321 /// <value> 321 /// <value>
322 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> total size of elements is limited; 322 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> total size of elements is limited;
323 /// otherwise, <see langword="false"/>. 323 /// otherwise, <see langword="false"/>.
324 /// </value> 324 /// </value>
325 /// <remarks> 325 /// <remarks>
326 /// <para> 326 /// <para>
327 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 327 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
328 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 328 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
329 /// </para> 329 /// </para>
330 /// </remarks> 330 /// </remarks>
331 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/> 331 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/>
@@ -348,12 +348,12 @@ namespace OpenSim.Framework
348 /// Gets a value indicating whether or not access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe). 348 /// Gets a value indicating whether or not access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe).
349 /// </summary> 349 /// </summary>
350 /// <value> 350 /// <value>
351 /// <see langword="true"/> if access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe); 351 /// <see langword="true"/> if access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe);
352 /// otherwise, <see langword="false"/>. 352 /// otherwise, <see langword="false"/>.
353 /// </value> 353 /// </value>
354 /// <remarks> 354 /// <remarks>
355 /// <para> 355 /// <para>
356 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/> object, use 356 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/> object, use
357 /// <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> in <see cref="CnmSynchronizedCache{TKey,TValue}"/> class 357 /// <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> in <see cref="CnmSynchronizedCache{TKey,TValue}"/> class
358 /// to retrieve synchronized wrapper for <see cref="ICnmCache{TKey,TValue}"/> object. 358 /// to retrieve synchronized wrapper for <see cref="ICnmCache{TKey,TValue}"/> object.
359 /// </para> 359 /// </para>
@@ -369,13 +369,13 @@ namespace OpenSim.Framework
369 /// Gets a value indicating whether elements stored to <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time. 369 /// Gets a value indicating whether elements stored to <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time.
370 /// </summary> 370 /// </summary>
371 /// <value> 371 /// <value>
372 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> has a fixed total size of elements; 372 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> has a fixed total size of elements;
373 /// otherwise, <see langword="false"/>. 373 /// otherwise, <see langword="false"/>.
374 /// </value> 374 /// </value>
375 /// <remarks> 375 /// <remarks>
376 /// If <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time and element is not accessed through <see cref="ICnmCache{TKey,TValue}.Set"/> 376 /// If <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time and element is not accessed through <see cref="ICnmCache{TKey,TValue}.Set"/>
377 /// or <see cref="ICnmCache{TKey,TValue}.TryGetValue"/> methods in <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/> , then element is automatically removed from 377 /// or <see cref="ICnmCache{TKey,TValue}.TryGetValue"/> methods in <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/> , then element is automatically removed from
378 /// the cache. Depending on implementation of the <see cref="ICnmCache{TKey,TValue}"/>, some of the elements may 378 /// the cache. Depending on implementation of the <see cref="ICnmCache{TKey,TValue}"/>, some of the elements may
379 /// stay longer in cache. 379 /// stay longer in cache.
380 /// </remarks> 380 /// </remarks>
381 /// <seealso cref="ICnmCache{TKey,TValue}.ExpirationTime"/> 381 /// <seealso cref="ICnmCache{TKey,TValue}.ExpirationTime"/>
@@ -397,13 +397,13 @@ namespace OpenSim.Framework
397 /// Gets or sets maximal allowed count of elements that can be stored to <see cref="ICnmCache{TKey,TValue}"/>. 397 /// Gets or sets maximal allowed count of elements that can be stored to <see cref="ICnmCache{TKey,TValue}"/>.
398 /// </summary> 398 /// </summary>
399 /// <value> 399 /// <value>
400 /// <see cref="int.MaxValue"/>, if <see cref="ICnmCache{TKey,TValue}"/> is not limited by count of elements; 400 /// <see cref="int.MaxValue"/>, if <see cref="ICnmCache{TKey,TValue}"/> is not limited by count of elements;
401 /// otherwise maximal allowed count of elements. 401 /// otherwise maximal allowed count of elements.
402 /// </value> 402 /// </value>
403 /// <remarks> 403 /// <remarks>
404 /// <para> 404 /// <para>
405 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 405 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
406 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 406 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
407 /// </para> 407 /// </para>
408 /// </remarks> 408 /// </remarks>
409 public int MaxCount 409 public int MaxCount
@@ -433,7 +433,7 @@ namespace OpenSim.Framework
433 /// </value> 433 /// </value>
434 /// <remarks> 434 /// <remarks>
435 /// <para> 435 /// <para>
436 /// If element's size is larger than <see cref="ICnmCache{TKey,TValue}.MaxElementSize"/>, then element is 436 /// If element's size is larger than <see cref="ICnmCache{TKey,TValue}.MaxElementSize"/>, then element is
437 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>. 437 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>.
438 /// </para> 438 /// </para>
439 /// </remarks> 439 /// </remarks>
@@ -463,8 +463,8 @@ namespace OpenSim.Framework
463 /// Normally size is total bytes used by elements in the cache. But it can be any other suitable unit of measure. 463 /// Normally size is total bytes used by elements in the cache. But it can be any other suitable unit of measure.
464 /// </para> 464 /// </para>
465 /// <para> 465 /// <para>
466 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 466 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
467 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 467 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
468 /// </para> 468 /// </para>
469 /// </remarks> 469 /// </remarks>
470 /// <exception cref="ArgumentOutOfRangeException">value is less than 0.</exception> 470 /// <exception cref="ArgumentOutOfRangeException">value is less than 0.</exception>
@@ -501,11 +501,11 @@ namespace OpenSim.Framework
501 /// Normally bytes, but can be any suitable unit of measure. 501 /// Normally bytes, but can be any suitable unit of measure.
502 /// </para> 502 /// </para>
503 /// <para> 503 /// <para>
504 /// Element's size is given when element is added or replaced by <see cref="ICnmCache{TKey,TValue}.Set"/> method. 504 /// Element's size is given when element is added or replaced by <see cref="ICnmCache{TKey,TValue}.Set"/> method.
505 /// </para> 505 /// </para>
506 /// <para> 506 /// <para>
507 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 507 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
508 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 508 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
509 /// </para> 509 /// </para>
510 /// </remarks> 510 /// </remarks>
511 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/> 511 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/>
@@ -532,8 +532,8 @@ namespace OpenSim.Framework
532 /// </value> 532 /// </value>
533 /// <remarks> 533 /// <remarks>
534 /// <para> 534 /// <para>
535 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/>, use <see cref="CnmSynchronizedCache{TKey,TValue}"/> 535 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/>, use <see cref="CnmSynchronizedCache{TKey,TValue}"/>
536 /// method <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> to retrieve synchronized wrapper interface to 536 /// method <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> to retrieve synchronized wrapper interface to
537 /// <see cref="ICnmCache{TKey,TValue}"/>. 537 /// <see cref="ICnmCache{TKey,TValue}"/>.
538 /// </para> 538 /// </para>
539 /// </remarks> 539 /// </remarks>
@@ -647,7 +647,7 @@ namespace OpenSim.Framework
647 } 647 }
648 648
649 /// <summary> 649 /// <summary>
650 /// Add or replace an element with the provided <paramref name="key"/>, <paramref name="value"/> and <paramref name="size"/> to 650 /// Add or replace an element with the provided <paramref name="key"/>, <paramref name="value"/> and <paramref name="size"/> to
651 /// <see cref="ICnmCache{TKey,TValue}"/>. 651 /// <see cref="ICnmCache{TKey,TValue}"/>.
652 /// </summary> 652 /// </summary>
653 /// <param name="key"> 653 /// <param name="key">
@@ -660,7 +660,7 @@ namespace OpenSim.Framework
660 /// The element's size. Normally bytes, but can be any suitable unit of measure. 660 /// The element's size. Normally bytes, but can be any suitable unit of measure.
661 /// </param> 661 /// </param>
662 /// <returns> 662 /// <returns>
663 /// <see langword="true"/>if element has been added successfully to the <see cref="ICnmCache{TKey,TValue}"/>; 663 /// <see langword="true"/>if element has been added successfully to the <see cref="ICnmCache{TKey,TValue}"/>;
664 /// otherwise <see langword="false"/>. 664 /// otherwise <see langword="false"/>.
665 /// </returns> 665 /// </returns>
666 /// <exception cref="ArgumentNullException"> 666 /// <exception cref="ArgumentNullException">
@@ -671,17 +671,17 @@ namespace OpenSim.Framework
671 /// </exception> 671 /// </exception>
672 /// <remarks> 672 /// <remarks>
673 /// <para> 673 /// <para>
674 /// If element's <paramref name="size"/> is larger than <see cref="ICnmCache{TKey,TValue}.MaxElementSize"/>, then element is 674 /// If element's <paramref name="size"/> is larger than <see cref="ICnmCache{TKey,TValue}.MaxElementSize"/>, then element is
675 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>, however - possible older element is 675 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>, however - possible older element is
676 /// removed from the <see cref="ICnmCache{TKey,TValue}"/>. 676 /// removed from the <see cref="ICnmCache{TKey,TValue}"/>.
677 /// </para> 677 /// </para>
678 /// <para> 678 /// <para>
679 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 679 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
680 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element. 680 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element.
681 /// </para> 681 /// </para>
682 /// <para> 682 /// <para>
683 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 683 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
684 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element. 684 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element.
685 /// </para> 685 /// </para>
686 /// </remarks> 686 /// </remarks>
687 /// <seealso cref="ICnmCache{TKey,TValue}.IsSizeLimited"/> 687 /// <seealso cref="ICnmCache{TKey,TValue}.IsSizeLimited"/>
@@ -703,15 +703,15 @@ namespace OpenSim.Framework
703 /// Gets the <paramref name="value"/> associated with the specified <paramref name="key"/>. 703 /// Gets the <paramref name="value"/> associated with the specified <paramref name="key"/>.
704 /// </summary> 704 /// </summary>
705 /// <returns> 705 /// <returns>
706 /// <see langword="true"/>if the <see cref="ICnmCache{TKey,TValue}"/> contains an element with 706 /// <see langword="true"/>if the <see cref="ICnmCache{TKey,TValue}"/> contains an element with
707 /// the specified key; otherwise, <see langword="false"/>. 707 /// the specified key; otherwise, <see langword="false"/>.
708 /// </returns> 708 /// </returns>
709 /// <param name="key"> 709 /// <param name="key">
710 /// The key whose <paramref name="value"/> to get. 710 /// The key whose <paramref name="value"/> to get.
711 /// </param> 711 /// </param>
712 /// <param name="value"> 712 /// <param name="value">
713 /// When this method returns, the value associated with the specified <paramref name="key"/>, 713 /// When this method returns, the value associated with the specified <paramref name="key"/>,
714 /// if the <paramref name="key"/> is found; otherwise, the 714 /// if the <paramref name="key"/> is found; otherwise, the
715 /// default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized. 715 /// default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized.
716 /// </param> 716 /// </param>
717 /// <exception cref="ArgumentNullException"> 717 /// <exception cref="ArgumentNullException">