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
- wgx_sdk_version.cs
- StickyNoteContentControl.cs
- HttpListenerException.cs
- CommandEventArgs.cs
- ClientUtils.cs
- List.cs
- DBDataPermission.cs
- ContentHostHelper.cs
- UiaCoreApi.cs
- TemplateBaseAction.cs
- RenderTargetBitmap.cs
- AsyncPostBackTrigger.cs
- DataObjectFieldAttribute.cs
- FileDataSourceCache.cs
- ConfigurationSection.cs
- URLIdentityPermission.cs
- TabletDevice.cs
- XmlBinaryReaderSession.cs
- RoutedEventValueSerializer.cs
- SBCSCodePageEncoding.cs
- FragmentQueryKB.cs
- DateTimeValueSerializer.cs
- PersonalizablePropertyEntry.cs
- QilValidationVisitor.cs
- MDIWindowDialog.cs
- RegistrationServices.cs
- Object.cs
- CheckBoxPopupAdapter.cs
- BamlTreeMap.cs
- CollectionBuilder.cs
- NamespaceInfo.cs
- AuthenticodeSignatureInformation.cs
- NextPreviousPagerField.cs
- CreatingCookieEventArgs.cs
- DbLambda.cs
- RawMouseInputReport.cs
- TreeView.cs
- DataComponentGenerator.cs
- IMembershipProvider.cs
- ColumnResizeAdorner.cs
- XamlPointCollectionSerializer.cs
- BindingContext.cs
- columnmapfactory.cs
- Block.cs
- CounterSampleCalculator.cs
- ChooseAction.cs
- SettingsBindableAttribute.cs
- SwitchElementsCollection.cs
- ProjectedSlot.cs
- BoundField.cs
- HttpListenerResponse.cs
- ServiceManager.cs
- SelectedDatesCollection.cs
- SectionVisual.cs
- User.cs
- FixedSOMSemanticBox.cs
- XmlElementAttributes.cs
- _DisconnectOverlappedAsyncResult.cs
- TimeoutException.cs
- DesignerRegionCollection.cs
- ProgramNode.cs
- Span.cs
- ISAPIRuntime.cs
- DataControlCommands.cs
- SmiConnection.cs
- DefaultAssemblyResolver.cs
- InfiniteTimeSpanConverter.cs
- _RequestLifetimeSetter.cs
- Mouse.cs
- RowsCopiedEventArgs.cs
- ItemTypeToolStripMenuItem.cs
- TypeToken.cs
- SqlBulkCopy.cs
- RightsManagementPermission.cs
- DiscoveryExceptionDictionary.cs
- TemplateField.cs
- TextServicesProperty.cs
- CommonGetThemePartSize.cs
- NumericUpDown.cs
- WebEvents.cs
- ControlCollection.cs
- ChtmlCommandAdapter.cs
- HMACSHA512.cs
- EntityDataSourceView.cs
- Membership.cs
- MSG.cs
- CorrelationQuery.cs
- _AcceptOverlappedAsyncResult.cs
- TextRange.cs
- Ray3DHitTestResult.cs
- XmlDomTextWriter.cs
- StickyNoteContentControl.cs
- CharacterBuffer.cs
- AttributeProviderAttribute.cs
- xml.cs
- InputProviderSite.cs
- DetailsViewModeEventArgs.cs
- Rules.cs
- ComboBoxRenderer.cs
- BrushMappingModeValidation.cs