Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Util / DoubleLinkList.cs / 1305376 / DoubleLinkList.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * DoubleLinkList * * Copyright (c) 1998-1999, Microsoft Corporation * */ namespace System.Web.Util { using System.Text; using System.Runtime.Serialization.Formatters; internal class DoubleLinkList : DoubleLink { internal DoubleLinkList() { } internal bool IsEmpty() { return _next == this; } internal virtual void InsertHead(DoubleLink entry) { entry.InsertAfter(this); } internal virtual void InsertTail(DoubleLink entry) { entry.InsertBefore(this); } internal DoubleLinkListEnumerator GetEnumerator() { return new DoubleLinkListEnumerator(this); } #if DBG internal override void DebugValidate() { DoubleLink l1, l2; base.DebugValidate(); /* * Detect loops by moving one pointer forward 2 for every 1 * of the other. */ l1 = l2 = this; for (;;) { /* move l2 forward */ l2 = l2._next; if (l2 == this) break; Debug.CheckValid(l2 != l1, "Invalid loop in list, first move."); l2.DebugValidate(); /* move l2 forward again */ l2 = l2._next; if (l2 == this) break; Debug.CheckValid(l2 != l1, "Invalid loop in list, second move."); l2.DebugValidate(); /* move l1 forward */ l1 = l1._next; } } internal override string DebugDescription(String indent) { string desc; DoubleLinkListEnumerator lenum; int c; StringBuilder sb; string i2 = indent + " "; if (IsEmpty()) { desc = indent + "DoubleLinkList is empty\n"; } else { c = Length; sb = new StringBuilder(indent + "DoubleLinkList has " + c + " entries.\n"); lenum = GetEnumerator(); while (lenum.MoveNext()) { sb.Append(Debug.GetDescription(lenum.GetDoubleLink(), i2)); } desc = sb.ToString(); } return desc; } #endif internal int Length { get { DoubleLinkListEnumerator lenum; int c; Debug.Validate(this); c = 0; lenum = GetEnumerator(); while (lenum.MoveNext()) { c++; } return c; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * DoubleLinkList * * Copyright (c) 1998-1999, Microsoft Corporation * */ namespace System.Web.Util { using System.Text; using System.Runtime.Serialization.Formatters; internal class DoubleLinkList : DoubleLink { internal DoubleLinkList() { } internal bool IsEmpty() { return _next == this; } internal virtual void InsertHead(DoubleLink entry) { entry.InsertAfter(this); } internal virtual void InsertTail(DoubleLink entry) { entry.InsertBefore(this); } internal DoubleLinkListEnumerator GetEnumerator() { return new DoubleLinkListEnumerator(this); } #if DBG internal override void DebugValidate() { DoubleLink l1, l2; base.DebugValidate(); /* * Detect loops by moving one pointer forward 2 for every 1 * of the other. */ l1 = l2 = this; for (;;) { /* move l2 forward */ l2 = l2._next; if (l2 == this) break; Debug.CheckValid(l2 != l1, "Invalid loop in list, first move."); l2.DebugValidate(); /* move l2 forward again */ l2 = l2._next; if (l2 == this) break; Debug.CheckValid(l2 != l1, "Invalid loop in list, second move."); l2.DebugValidate(); /* move l1 forward */ l1 = l1._next; } } internal override string DebugDescription(String indent) { string desc; DoubleLinkListEnumerator lenum; int c; StringBuilder sb; string i2 = indent + " "; if (IsEmpty()) { desc = indent + "DoubleLinkList is empty\n"; } else { c = Length; sb = new StringBuilder(indent + "DoubleLinkList has " + c + " entries.\n"); lenum = GetEnumerator(); while (lenum.MoveNext()) { sb.Append(Debug.GetDescription(lenum.GetDoubleLink(), i2)); } desc = sb.ToString(); } return desc; } #endif internal int Length { get { DoubleLinkListEnumerator lenum; int c; Debug.Validate(this); c = 0; lenum = GetEnumerator(); while (lenum.MoveNext()) { c++; } return c; } } } } // 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
- Point3DCollection.cs
- RegionData.cs
- UpDownBase.cs
- BoundConstants.cs
- CompressionTransform.cs
- ListViewItem.cs
- TransactionContextManager.cs
- ElementUtil.cs
- XmlWriterTraceListener.cs
- BuiltInPermissionSets.cs
- AmbientProperties.cs
- FamilyTypeface.cs
- FrameworkElement.cs
- TrackingProfile.cs
- DbMetaDataColumnNames.cs
- ObjectNavigationPropertyMapping.cs
- DeviceSpecificChoice.cs
- AuthenticateEventArgs.cs
- DragEventArgs.cs
- DataBoundControlHelper.cs
- GlobalEventManager.cs
- WebServiceHost.cs
- ClientSponsor.cs
- DictionaryGlobals.cs
- PlaceHolder.cs
- TimeSpanOrInfiniteConverter.cs
- WebBrowser.cs
- SafeNativeMemoryHandle.cs
- WebPartVerb.cs
- WmpBitmapDecoder.cs
- SQLBytes.cs
- SettingsBindableAttribute.cs
- ToolStripDropDown.cs
- NameValueSectionHandler.cs
- ProviderException.cs
- GeneralTransformGroup.cs
- BindableTemplateBuilder.cs
- PropertyContainer.cs
- VoiceChangeEventArgs.cs
- QilCloneVisitor.cs
- ThemeInfoAttribute.cs
- WindowsEditBox.cs
- GeneralTransform3DGroup.cs
- GenericEnumerator.cs
- ConditionValidator.cs
- SqlRetyper.cs
- InputReport.cs
- MemberInfoSerializationHolder.cs
- SQLCharsStorage.cs
- ImpersonateTokenRef.cs
- WebPartDescriptionCollection.cs
- ColorPalette.cs
- Animatable.cs
- CheckBoxStandardAdapter.cs
- EntityParameter.cs
- ZipArchive.cs
- DataGridViewUtilities.cs
- ApplicationId.cs
- RequestCacheManager.cs
- UrlParameterReader.cs
- DataGridViewComboBoxEditingControl.cs
- SqlInternalConnection.cs
- ConversionContext.cs
- DataServiceProcessingPipeline.cs
- StrokeSerializer.cs
- SafeNativeMethods.cs
- LayoutManager.cs
- XmlEventCache.cs
- Vector3DAnimationBase.cs
- BaseWebProxyFinder.cs
- TypeDependencyAttribute.cs
- PropertyDescriptor.cs
- ClipboardProcessor.cs
- RootBrowserWindowAutomationPeer.cs
- DesignerSerializationManager.cs
- ConfigXmlSignificantWhitespace.cs
- XPathExpr.cs
- SqlBulkCopy.cs
- EventMappingSettingsCollection.cs
- XamlInt32CollectionSerializer.cs
- ListItemCollection.cs
- Cursor.cs
- LocatorPartList.cs
- ConnectionOrientedTransportChannelFactory.cs
- EarlyBoundInfo.cs
- IPCCacheManager.cs
- _emptywebproxy.cs
- SchemaNamespaceManager.cs
- BinarySecretSecurityToken.cs
- SoapExtension.cs
- InputProcessorProfilesLoader.cs
- OrderedEnumerableRowCollection.cs
- ImpersonateTokenRef.cs
- ProfilePropertySettingsCollection.cs
- ScriptResourceAttribute.cs
- DataGridViewComboBoxColumn.cs
- HttpWebRequest.cs
- GetMemberBinder.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- ResolveResponse.cs