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
- DataGridItem.cs
- XmlParserContext.cs
- CustomCredentialPolicy.cs
- ObjectQuery_EntitySqlExtensions.cs
- TypeToken.cs
- CompilationUnit.cs
- NonClientArea.cs
- VersionedStream.cs
- WebPartExportVerb.cs
- SqlAliasesReferenced.cs
- BaseComponentEditor.cs
- DataTableTypeConverter.cs
- HelloMessageApril2005.cs
- NegotiationTokenAuthenticatorState.cs
- BrowserTree.cs
- AnimationTimeline.cs
- Pkcs7Recipient.cs
- QilNode.cs
- Variant.cs
- RSAPKCS1SignatureDeformatter.cs
- SrgsRule.cs
- BitArray.cs
- DataGridViewRowPostPaintEventArgs.cs
- TypedElement.cs
- CqlWriter.cs
- PersonalizationProviderHelper.cs
- DecimalAnimationUsingKeyFrames.cs
- RequestSecurityTokenSerializer.cs
- HwndHost.cs
- GorillaCodec.cs
- RuleInfoComparer.cs
- File.cs
- BinaryObjectInfo.cs
- WebServiceErrorEvent.cs
- MetadataUtil.cs
- Attributes.cs
- StringAttributeCollection.cs
- CapabilitiesUse.cs
- StyleXamlTreeBuilder.cs
- DataProtection.cs
- TypeDelegator.cs
- BaseCodePageEncoding.cs
- BasePattern.cs
- ValidationContext.cs
- DetailsViewInsertedEventArgs.cs
- ButtonBase.cs
- CryptographicAttribute.cs
- Ref.cs
- OleDbErrorCollection.cs
- NamespaceEmitter.cs
- followingsibling.cs
- RegisteredDisposeScript.cs
- SubMenuStyleCollection.cs
- TableRow.cs
- GlobalProxySelection.cs
- AnimationLayer.cs
- PopupRootAutomationPeer.cs
- Literal.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- InputLanguageSource.cs
- LightweightCodeGenerator.cs
- TextTreeUndo.cs
- ColumnClickEvent.cs
- MemoryPressure.cs
- OdbcConnectionStringbuilder.cs
- UiaCoreApi.cs
- ExpressionBuilder.cs
- WebConfigurationHostFileChange.cs
- FormViewModeEventArgs.cs
- RegularExpressionValidator.cs
- VersionedStreamOwner.cs
- BinaryExpressionHelper.cs
- RadioButtonBaseAdapter.cs
- MessageQueueTransaction.cs
- RuleProcessor.cs
- BitmapCodecInfo.cs
- EllipseGeometry.cs
- KerberosRequestorSecurityToken.cs
- ValidationSummary.cs
- Int32AnimationUsingKeyFrames.cs
- KeyProperty.cs
- BasicViewGenerator.cs
- NonPrimarySelectionGlyph.cs
- Claim.cs
- AuthenticateEventArgs.cs
- PreviewControlDesigner.cs
- DeploymentSectionCache.cs
- ConcatQueryOperator.cs
- ClientSettingsStore.cs
- SetterTriggerConditionValueConverter.cs
- BeginStoryboard.cs
- ToolStripDropDown.cs
- XmlSchemaSimpleTypeList.cs
- RuntimeConfig.cs
- ToolStripOverflowButton.cs
- XmlAttributes.cs
- SystemSounds.cs
- DNS.cs
- PrintPreviewDialog.cs
- CodeTypeConstructor.cs