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
- LinkTarget.cs
- WindowCollection.cs
- AQNBuilder.cs
- MessagePropertyDescription.cs
- DbXmlEnabledProviderManifest.cs
- AdornedElementPlaceholder.cs
- FormsAuthenticationModule.cs
- ProfilePropertyMetadata.cs
- ObjectAnimationBase.cs
- SqlParameterizer.cs
- UnionQueryOperator.cs
- CollectionEditor.cs
- BindableAttribute.cs
- SqlConnectionPoolGroupProviderInfo.cs
- wgx_sdk_version.cs
- BitmapData.cs
- EntityCommandDefinition.cs
- CheckBox.cs
- ControlType.cs
- MetadataItem.cs
- EntityProviderFactory.cs
- XmlTextReaderImplHelpers.cs
- DataSvcMapFile.cs
- EventLogQuery.cs
- DatatypeImplementation.cs
- TemplateControlBuildProvider.cs
- CustomWebEventKey.cs
- FocusTracker.cs
- ECDiffieHellmanCng.cs
- XmlChoiceIdentifierAttribute.cs
- ISFTagAndGuidCache.cs
- NameTable.cs
- RadioButton.cs
- ToolStripPanelSelectionBehavior.cs
- Soap12ProtocolReflector.cs
- LogFlushAsyncResult.cs
- QueryOperationResponseOfT.cs
- SelectionEditor.cs
- DashStyles.cs
- CatalogPartCollection.cs
- MouseBinding.cs
- KeyConstraint.cs
- DataGridViewCellValidatingEventArgs.cs
- StandardCommands.cs
- XPathAncestorQuery.cs
- ImageButton.cs
- WhiteSpaceTrimStringConverter.cs
- Timer.cs
- XmlCustomFormatter.cs
- RoleGroupCollectionEditor.cs
- ScopedKnownTypes.cs
- MessageSmuggler.cs
- Win32KeyboardDevice.cs
- WaitHandleCannotBeOpenedException.cs
- DataExpression.cs
- AnnotationStore.cs
- SymbolType.cs
- XamlDesignerSerializationManager.cs
- DataViewListener.cs
- NullableDoubleAverageAggregationOperator.cs
- Int32EqualityComparer.cs
- StylusPointPropertyInfo.cs
- FileEnumerator.cs
- WebServiceReceiveDesigner.cs
- AdornerPresentationContext.cs
- EntityKey.cs
- TreeNodeBinding.cs
- FlowDocumentFormatter.cs
- HttpListenerRequest.cs
- TypeReference.cs
- NavigationPropertyEmitter.cs
- cookiecollection.cs
- RelationshipManager.cs
- CodeAttributeArgument.cs
- InvariantComparer.cs
- SpnEndpointIdentityExtension.cs
- XmlSchemaChoice.cs
- UIElementCollection.cs
- C14NUtil.cs
- TemplateControlCodeDomTreeGenerator.cs
- CommittableTransaction.cs
- InputScopeNameConverter.cs
- ListViewInsertEventArgs.cs
- DiffuseMaterial.cs
- ProtocolsConfigurationEntry.cs
- SecurityDocument.cs
- DataRowExtensions.cs
- EntityAdapter.cs
- DeflateEmulationStream.cs
- PagesSection.cs
- SequentialOutput.cs
- AsyncCodeActivityContext.cs
- OdbcException.cs
- QueryRewriter.cs
- PersianCalendar.cs
- SapiAttributeParser.cs
- CharConverter.cs
- ProviderException.cs
- OracleConnection.cs
- HttpCachePolicy.cs