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
- EnvironmentPermission.cs
- SurrogateDataContract.cs
- CacheDict.cs
- RegexFCD.cs
- WebPartDescriptionCollection.cs
- ApplicationServicesHostFactory.cs
- latinshape.cs
- SqlDataSourceView.cs
- ColumnHeader.cs
- MultiTouchSystemGestureLogic.cs
- AxDesigner.cs
- CodeTryCatchFinallyStatement.cs
- TreeNodeStyleCollection.cs
- RepeaterItem.cs
- AuthenticationConfig.cs
- FormViewUpdateEventArgs.cs
- FormParameter.cs
- DataServiceHostFactory.cs
- ObjectResult.cs
- SQLInt32.cs
- TraceContextRecord.cs
- EncodingTable.cs
- CollectionsUtil.cs
- ProcessHostMapPath.cs
- ISFClipboardData.cs
- ClipboardData.cs
- Utils.cs
- TextDecoration.cs
- ControlPager.cs
- CompareInfo.cs
- DispatcherHookEventArgs.cs
- DescendantOverDescendantQuery.cs
- ProviderUtil.cs
- InputBinding.cs
- TypeExtension.cs
- RemotingConfiguration.cs
- XmlComplianceUtil.cs
- DbConnectionPoolCounters.cs
- TextRange.cs
- InvalidWMPVersionException.cs
- webproxy.cs
- WebPartEditVerb.cs
- ApplyHostConfigurationBehavior.cs
- CacheVirtualItemsEvent.cs
- CopyOfAction.cs
- CommandDevice.cs
- _LocalDataStoreMgr.cs
- ConnectionStringsExpressionEditor.cs
- CoordinationService.cs
- GatewayDefinition.cs
- InstalledFontCollection.cs
- Crypto.cs
- FilterEventArgs.cs
- OwnerDrawPropertyBag.cs
- TextOutput.cs
- PrePostDescendentsWalker.cs
- WebColorConverter.cs
- webeventbuffer.cs
- ImageFormat.cs
- WindowsFormsHelpers.cs
- Container.cs
- XmlDataFileEditor.cs
- Italic.cs
- DropSourceBehavior.cs
- WebDescriptionAttribute.cs
- Vector3DCollection.cs
- Table.cs
- StrokeCollection2.cs
- MenuAutoFormat.cs
- KnownIds.cs
- SemaphoreSecurity.cs
- FastPropertyAccessor.cs
- SerializationFieldInfo.cs
- isolationinterop.cs
- ParameterBuilder.cs
- FontWeightConverter.cs
- DataTableReaderListener.cs
- SchemaEntity.cs
- InvalidateEvent.cs
- PeerUnsafeNativeMethods.cs
- ClipboardProcessor.cs
- ClassHandlersStore.cs
- ADMembershipProvider.cs
- OletxCommittableTransaction.cs
- EventRouteFactory.cs
- TypedElement.cs
- TrackingExtract.cs
- TriState.cs
- ProgressBarAutomationPeer.cs
- PropertyEmitter.cs
- CurrencyWrapper.cs
- Permission.cs
- DuplexChannel.cs
- HttpHandlersInstallComponent.cs
- OracleInternalConnection.cs
- StringFreezingAttribute.cs
- errorpatternmatcher.cs
- XmlSchemaObjectCollection.cs
- Container.cs
- AssociationProvider.cs