recordstatescratchpad.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Common / internal / materialization / recordstatescratchpad.cs / 1 / recordstatescratchpad.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
//-----------------------------------------------------------------------------
 
using System.Collections.Generic; 
using System.Data.Metadata.Edm;
using System.Linq; 
using System.Linq.Expressions;

namespace System.Data.Common.Internal.Materialization
{ 
    /// 
    /// Used in the Translator to aggregate information about a (nested) record 
    /// state.  After the translator visits the columnMaps, it will compile 
    /// the recordState(s) which produces an immutable RecordStateFactory that
    /// can be shared amongst many query instances. 
    /// 
    internal class RecordStateScratchpad
    {
        private int _stateSlotNumber; 
        internal int StateSlotNumber
        { 
            get { return _stateSlotNumber; } 
            set { _stateSlotNumber = value; }
        } 

        private int _columnCount;
        internal int ColumnCount
        { 
            get { return _columnCount; }
            set { _columnCount = value; } 
        } 

        private DataRecordInfo _dataRecordInfo; 
        internal DataRecordInfo DataRecordInfo
        {
            get { return _dataRecordInfo; }
            set { _dataRecordInfo = value; } 
        }
 
        private Expression _gatherData; 
        internal Expression GatherData
        { 
            get { return _gatherData; }
            set { _gatherData = value; }
        }
 
        private string[] _propertyNames;
        internal string[] PropertyNames 
        { 
            get { return _propertyNames; }
            set { _propertyNames = value; } 
        }
        private TypeUsage[] _typeUsages;
        internal TypeUsage[] TypeUsages
        { 
            get { return _typeUsages; }
            set { _typeUsages = value; } 
        } 

        private List _nestedRecordStateScratchpads = new List(); 

        internal RecordStateFactory Compile()
        {
            RecordStateFactory[] nestedRecordStateFactories = new RecordStateFactory[_nestedRecordStateScratchpads.Count]; 
            for (int i = 0; i < nestedRecordStateFactories.Length; i++)
            { 
                nestedRecordStateFactories[i] = _nestedRecordStateScratchpads[i].Compile(); 
            }
 
            RecordStateFactory result = (RecordStateFactory)Activator.CreateInstance(typeof(RecordStateFactory), new object[] {
                                                            this.StateSlotNumber,
                                                            this.ColumnCount,
                                                            nestedRecordStateFactories, 
                                                            this.DataRecordInfo,
                                                            this.GatherData, 
                                                            this.PropertyNames, 
                                                            this.TypeUsages
                                                            }); 
            return result;
        }
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
//-----------------------------------------------------------------------------
 
using System.Collections.Generic; 
using System.Data.Metadata.Edm;
using System.Linq; 
using System.Linq.Expressions;

namespace System.Data.Common.Internal.Materialization
{ 
    /// 
    /// Used in the Translator to aggregate information about a (nested) record 
    /// state.  After the translator visits the columnMaps, it will compile 
    /// the recordState(s) which produces an immutable RecordStateFactory that
    /// can be shared amongst many query instances. 
    /// 
    internal class RecordStateScratchpad
    {
        private int _stateSlotNumber; 
        internal int StateSlotNumber
        { 
            get { return _stateSlotNumber; } 
            set { _stateSlotNumber = value; }
        } 

        private int _columnCount;
        internal int ColumnCount
        { 
            get { return _columnCount; }
            set { _columnCount = value; } 
        } 

        private DataRecordInfo _dataRecordInfo; 
        internal DataRecordInfo DataRecordInfo
        {
            get { return _dataRecordInfo; }
            set { _dataRecordInfo = value; } 
        }
 
        private Expression _gatherData; 
        internal Expression GatherData
        { 
            get { return _gatherData; }
            set { _gatherData = value; }
        }
 
        private string[] _propertyNames;
        internal string[] PropertyNames 
        { 
            get { return _propertyNames; }
            set { _propertyNames = value; } 
        }
        private TypeUsage[] _typeUsages;
        internal TypeUsage[] TypeUsages
        { 
            get { return _typeUsages; }
            set { _typeUsages = value; } 
        } 

        private List _nestedRecordStateScratchpads = new List(); 

        internal RecordStateFactory Compile()
        {
            RecordStateFactory[] nestedRecordStateFactories = new RecordStateFactory[_nestedRecordStateScratchpads.Count]; 
            for (int i = 0; i < nestedRecordStateFactories.Length; i++)
            { 
                nestedRecordStateFactories[i] = _nestedRecordStateScratchpads[i].Compile(); 
            }
 
            RecordStateFactory result = (RecordStateFactory)Activator.CreateInstance(typeof(RecordStateFactory), new object[] {
                                                            this.StateSlotNumber,
                                                            this.ColumnCount,
                                                            nestedRecordStateFactories, 
                                                            this.DataRecordInfo,
                                                            this.GatherData, 
                                                            this.PropertyNames, 
                                                            this.TypeUsages
                                                            }); 
            return result;
        }
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK