File: System\Data\Common\QueryCache\QueryCacheEntry.cs
Project: ndp\fx\src\DataEntity\System.Data.Entity.csproj (System.Data.Entity)
//------------------------------------------------------------------------------
// <copyright file="QueryCacheEntry.cs" company="Microsoft">
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//
// @owner  Microsoft
// @backupOwner Microsoft
//------------------------------------------------------------------------------
 
namespace System.Data.Common.QueryCache
{
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data.Common;
    using System.Diagnostics;
 
    /// <summary> 
    /// Represents the abstract base class for all cache entry values in the query cache 
    /// </summary> 
    internal class QueryCacheEntry
    {
        #region Fields
        /// <summary>
        /// querycachekey for this entry
        /// </summary>
        readonly private QueryCacheKey _queryCacheKey;
 
        /// <summary> 
        /// strong reference to the target object 
        /// </summary> 
        readonly protected object _target;
        #endregion
 
        #region Constructors
        /// <summary> 
        /// cache entry constructor 
        /// </summary> 
        /// <param name="queryCacheKey"></param> 
        /// <param name="target"></param> 
        internal QueryCacheEntry(QueryCacheKey queryCacheKey, object target)
        {
            _queryCacheKey = queryCacheKey;
            _target = target;
        }
        #endregion
 
        #region Methods and Properties
        /// <summary> 
        /// The payload of this cache entry.
        /// </summary> 
        internal virtual object GetTarget()
        {
            return _target;
        }
 
        /// <summary>
        /// Returns the query cache key
        /// </summary>
        internal QueryCacheKey QueryCacheKey
        {
            get { return _queryCacheKey; }
        }
        #endregion
    }
}