Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / ByteStack.cs / 1305376 / ByteStack.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System; namespace System.Xml { // This stack is designed to minimize object creation for the // objects being stored in the stack by allowing them to be // re-used over time. It basically pushes the objects creating // a high water mark then as Pop() is called they are not removed // so that next time Push() is called it simply returns the last // object that was already on the stack. internal class ByteStack { private byte[] stack; private int growthRate; private int top; private int size; public ByteStack(int growthRate) { this.growthRate = growthRate; top = 0; stack = new byte[growthRate]; size = growthRate; } public void Push(byte data) { if (size == top) { byte[] newstack = new byte[size + growthRate]; if (top > 0) { Buffer.BlockCopy(stack, 0, newstack, 0, top); } stack = newstack; size += growthRate; } stack[top++] = data; } public byte Pop() { if (top > 0) { return stack[--top]; } else { return 0; } } public byte Peek() { if (top > 0) { return stack[top - 1]; } else { return 0; } } public int Length { get { return top; } } } } // 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
- ScrollProviderWrapper.cs
- TypedTableBase.cs
- ErasingStroke.cs
- SrgsGrammarCompiler.cs
- ServiceReference.cs
- CroppedBitmap.cs
- PointIndependentAnimationStorage.cs
- SystemGatewayIPAddressInformation.cs
- IndexedString.cs
- ConfigXmlDocument.cs
- FileDialogCustomPlacesCollection.cs
- SimpleBitVector32.cs
- WorkerProcess.cs
- MultipartIdentifier.cs
- RelationalExpressions.cs
- CompositeDuplexBindingElement.cs
- LogWriteRestartAreaState.cs
- CalendarDesigner.cs
- CompilerGlobalScopeAttribute.cs
- StretchValidation.cs
- CounterCreationData.cs
- ContextMarshalException.cs
- PageBuildProvider.cs
- SqlInfoMessageEvent.cs
- TextFormatterContext.cs
- TextDecorationLocationValidation.cs
- DtrList.cs
- StoragePropertyMapping.cs
- ErrorRuntimeConfig.cs
- SqlUdtInfo.cs
- PixelShader.cs
- HScrollBar.cs
- Compress.cs
- AggregateException.cs
- InvalidPrinterException.cs
- AppSecurityManager.cs
- PropVariant.cs
- LoginDesignerUtil.cs
- TextHidden.cs
- Thread.cs
- DefaultParameterValueAttribute.cs
- CustomError.cs
- NamespaceExpr.cs
- WebFaultClientMessageInspector.cs
- HtmlGenericControl.cs
- WebPartsPersonalizationAuthorization.cs
- PointAnimationUsingKeyFrames.cs
- InkSerializer.cs
- CharEntityEncoderFallback.cs
- ListViewGroupConverter.cs
- EventProperty.cs
- UnknownWrapper.cs
- BaseValidatorDesigner.cs
- GroupedContextMenuStrip.cs
- TextServicesPropertyRanges.cs
- DataGridTablesFactory.cs
- DbTransaction.cs
- CurrentTimeZone.cs
- CompositeScriptReferenceEventArgs.cs
- ValidationSettings.cs
- ISFClipboardData.cs
- ExpressionVisitor.cs
- ClientRuntimeConfig.cs
- FormsAuthentication.cs
- CharUnicodeInfo.cs
- OutputCacheProfile.cs
- DataObjectEventArgs.cs
- AlphaSortedEnumConverter.cs
- SymbolTable.cs
- SplitterPanel.cs
- AutoGeneratedField.cs
- XmlSchemaAppInfo.cs
- HttpHandlerAction.cs
- AnnotationStore.cs
- EditorZoneAutoFormat.cs
- IsolatedStorageFileStream.cs
- _ListenerAsyncResult.cs
- HttpPostedFileBase.cs
- SystemIPGlobalStatistics.cs
- CheckBoxField.cs
- EndpointAddress.cs
- HttpListenerContext.cs
- ServicePoint.cs
- PlainXmlDeserializer.cs
- IisTraceListener.cs
- CapabilitiesUse.cs
- ItemMap.cs
- CompilationLock.cs
- RangeValuePattern.cs
- XmlNotation.cs
- OleDbErrorCollection.cs
- ToolStripDesignerUtils.cs
- BasicCellRelation.cs
- loginstatus.cs
- SecuritySessionServerSettings.cs
- SqlBuilder.cs
- ControllableStoryboardAction.cs
- RTLAwareMessageBox.cs
- XmlSchemaAttributeGroupRef.cs
- OleDragDropHandler.cs