Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / Runtime / XmlSortKeyAccumulator.cs / 1305376 / XmlSortKeyAccumulator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Globalization; using System.ComponentModel; namespace System.Xml.Xsl.Runtime { ////// Accumulates a list of sort keys and stores them in an array. /// [EditorBrowsable(EditorBrowsableState.Never)] public struct XmlSortKeyAccumulator { private XmlSortKey[] keys; private int pos; #if DEBUG private const int DefaultSortKeyCount = 4; #else private const int DefaultSortKeyCount = 64; #endif ////// Initialize the XmlSortKeyAccumulator. /// public void Create() { if (this.keys == null) this.keys = new XmlSortKey[DefaultSortKeyCount]; this.pos = 0; this.keys[0] = null; } ////// Create a new sort key and append it to the current run of sort keys. /// public void AddStringSortKey(XmlCollation collation, string value) { AppendSortKey(collation.CreateSortKey(value)); } public void AddDecimalSortKey(XmlCollation collation, decimal value) { AppendSortKey(new XmlDecimalSortKey(value, collation)); } public void AddIntegerSortKey(XmlCollation collation, long value) { AppendSortKey(new XmlIntegerSortKey(value, collation)); } public void AddIntSortKey(XmlCollation collation, int value) { AppendSortKey(new XmlIntSortKey(value, collation)); } public void AddDoubleSortKey(XmlCollation collation, double value) { AppendSortKey(new XmlDoubleSortKey(value, collation)); } public void AddDateTimeSortKey(XmlCollation collation, DateTime value) { AppendSortKey(new XmlDateTimeSortKey(value, collation)); } public void AddEmptySortKey(XmlCollation collation) { AppendSortKey(new XmlEmptySortKey(collation)); } ////// Finish creating the current run of sort keys and begin a new run. /// public void FinishSortKeys() { this.pos++; if (this.pos >= this.keys.Length) { XmlSortKey[] keysNew = new XmlSortKey[this.pos * 2]; Array.Copy(this.keys, 0, keysNew, 0, this.keys.Length); this.keys = keysNew; } this.keys[this.pos] = null; } ////// Append new sort key to the current run of sort keys. /// private void AppendSortKey(XmlSortKey key) { // Ensure that sort will be stable by setting index of key key.Priority = this.pos; if (this.keys[this.pos] == null) this.keys[this.pos] = key; else this.keys[this.pos].AddSortKey(key); } ////// Get array of sort keys that was constructed by this internal class. /// public Array Keys { get { return this.keys; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DesignerSerializationVisibilityAttribute.cs
- ZipFileInfo.cs
- DataGridViewToolTip.cs
- JapaneseLunisolarCalendar.cs
- DefaultProxySection.cs
- GeneralTransform3DTo2DTo3D.cs
- TextInfo.cs
- HitTestFilterBehavior.cs
- TabControlEvent.cs
- PluralizationServiceUtil.cs
- Timer.cs
- ObjectParameter.cs
- _FixedSizeReader.cs
- ISSmlParser.cs
- CharEnumerator.cs
- AutomationPropertyInfo.cs
- ScrollProperties.cs
- HtmlInputFile.cs
- HtmlTable.cs
- ClockController.cs
- SmiTypedGetterSetter.cs
- FontStyle.cs
- NavigationWindow.cs
- FileNotFoundException.cs
- TextServicesLoader.cs
- ExternalDataExchangeService.cs
- LineBreakRecord.cs
- RecoverInstanceLocksCommand.cs
- CultureMapper.cs
- TreeNodeStyleCollection.cs
- StylusSystemGestureEventArgs.cs
- InvalidPropValue.cs
- WebRequestModulesSection.cs
- LineGeometry.cs
- ServiceThrottle.cs
- TypedRowGenerator.cs
- LocalizeDesigner.cs
- MenuItemCollection.cs
- BinHexEncoder.cs
- StrokeDescriptor.cs
- SizeValueSerializer.cs
- HostProtectionException.cs
- ElapsedEventArgs.cs
- Debugger.cs
- MdiWindowListStrip.cs
- DataGridPageChangedEventArgs.cs
- AnimationStorage.cs
- ProfessionalColors.cs
- BinaryConverter.cs
- XamlPoint3DCollectionSerializer.cs
- AutoFocusStyle.xaml.cs
- Vector3DCollectionConverter.cs
- RemoveStoryboard.cs
- Size3DValueSerializer.cs
- WebExceptionStatus.cs
- ToolStripDropDown.cs
- PeerDefaultCustomResolverClient.cs
- DataBinder.cs
- ToolstripProfessionalRenderer.cs
- TextSpan.cs
- SqlNodeTypeOperators.cs
- StylusPointCollection.cs
- SafeReadContext.cs
- StylusPointPropertyInfoDefaults.cs
- SkipStoryboardToFill.cs
- DBDataPermission.cs
- CompositeCollection.cs
- TextDecorationUnitValidation.cs
- XmlNodeReader.cs
- TdsParserStaticMethods.cs
- InternalPermissions.cs
- OutputCacheProfile.cs
- Stream.cs
- FunctionMappingTranslator.cs
- Application.cs
- StorageBasedPackageProperties.cs
- SoapSchemaImporter.cs
- arabicshape.cs
- EnumConverter.cs
- EntityKeyElement.cs
- Visitor.cs
- TextureBrush.cs
- coordinatorscratchpad.cs
- HttpNamespaceReservationInstallComponent.cs
- DataListItemEventArgs.cs
- Ipv6Element.cs
- Margins.cs
- SqlConnectionString.cs
- DataGridItemAutomationPeer.cs
- MessagingDescriptionAttribute.cs
- ContextMarshalException.cs
- InfoCardSymmetricAlgorithm.cs
- AnnotationComponentChooser.cs
- SerializationException.cs
- CompilerGeneratedAttribute.cs
- BrowserCapabilitiesFactoryBase.cs
- IProducerConsumerCollection.cs
- AddInBase.cs
- ZipIOExtraFieldElement.cs
- GeneralTransformGroup.cs