Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / FreeIndexList.cs / 1 / FreeIndexList.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.Collections; using System.Collections.Generic; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; // // Summary: // Manages the list of Free LocalIds in an IndexDataBuffer class // // Remarks: // This is for internal file store use only. // internal class FreeIndexList { Dictionary< Int32, Int32 > m_list; // // Summary: // Creates an instance of FreeIndexList // Parameters: // size: the initial size for the internal Int32 array // public FreeIndexList( int size ) { if( size <= 0 ) { //"value must be > 0" throw IDT.ThrowHelperError( new ArgumentOutOfRangeException( "size", size, SR.GetString( SR.StoreFreeListSizeOutOfRange ) ) ); } m_list = new Dictionary( size ); } // // Summary: // Determins if the specified LocalId is current in the FreeList // // Remarks: // // Parameters: // value: the value of the LocalId to test. // public bool Contains( Int32 value ) { if( value <= 0 ) { //"value must be > 0" throw IDT.ThrowHelperError( new ArgumentOutOfRangeException( "value", value, SR.GetString( SR.StoreFreeListValueOutOfRange ) ) ); } return m_list.ContainsKey( value ); } // // Summary: // Adds a LocalId to the free list // // Remarks: // // Parameters: // value: the value to add to the free list // public void Put( Int32 value ) { if( value <= 0 ) { throw IDT.ThrowHelperError( new ArgumentOutOfRangeException( "value", value, SR.GetString( SR.StoreFreeListValueOutOfRange ) ) ); } m_list.Add( value, value ); } // // Summary: // Get the first free index id available. // // Returns: // The first free item available. // // // Review: A straight hash table would be better here. // public Int32 GetNext() { int next = -1; if( m_list.Count > 0 ) { using( IEnumerator enumerator = m_list.Keys.GetEnumerator() ) { enumerator.MoveNext(); next = enumerator.Current; } m_list.Remove( next ); } return next; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RunWorkerCompletedEventArgs.cs
- XPathSelectionIterator.cs
- CompositeControl.cs
- ExtendedPropertyDescriptor.cs
- AppManager.cs
- SQLInt64Storage.cs
- GroupBox.cs
- CqlErrorHelper.cs
- TextElementAutomationPeer.cs
- CodeSnippetExpression.cs
- ClientApiGenerator.cs
- TraceUtility.cs
- DeclarativeCatalogPart.cs
- NonSerializedAttribute.cs
- FixedPageAutomationPeer.cs
- TempFiles.cs
- CommonProperties.cs
- IListConverters.cs
- XmlDocumentFragment.cs
- XmlNodeList.cs
- DesignerDataColumn.cs
- SortExpressionBuilder.cs
- PresentationSource.cs
- TypeUsage.cs
- StateMachineWorkflowDesigner.cs
- DataSourceIDConverter.cs
- Number.cs
- FormViewUpdatedEventArgs.cs
- ListMarkerLine.cs
- NameValueSectionHandler.cs
- IDispatchConstantAttribute.cs
- SerializerWriterEventHandlers.cs
- TraceSwitch.cs
- WebMessageFormatHelper.cs
- InitializeCorrelation.cs
- ContractNamespaceAttribute.cs
- XmlEntityReference.cs
- XmlAnyElementAttributes.cs
- PerspectiveCamera.cs
- FlowDocumentReaderAutomationPeer.cs
- ConsumerConnectionPoint.cs
- MarshalByRefObject.cs
- ScrollProperties.cs
- MethodBuilder.cs
- XmlQualifiedName.cs
- Converter.cs
- Renderer.cs
- ContentElementAutomationPeer.cs
- ResourceAttributes.cs
- VisualBrush.cs
- XPathParser.cs
- AttachedAnnotationChangedEventArgs.cs
- MissingSatelliteAssemblyException.cs
- HandlerBase.cs
- WorkflowDefinitionDispenser.cs
- TextLine.cs
- oledbmetadatacollectionnames.cs
- StreamAsIStream.cs
- DataGridViewAutoSizeModeEventArgs.cs
- TypeNameParser.cs
- EntryIndex.cs
- PropertyConverter.cs
- GroupBoxRenderer.cs
- InvalidDocumentContentsException.cs
- CustomBinding.cs
- RequestCachePolicy.cs
- DeclaredTypeValidator.cs
- MonthChangedEventArgs.cs
- TextParagraphProperties.cs
- AliasExpr.cs
- ServicePoint.cs
- HttpModuleActionCollection.cs
- StyleHelper.cs
- CounterSetInstanceCounterDataSet.cs
- LongTypeConverter.cs
- Token.cs
- LabelEditEvent.cs
- XmlTextReaderImplHelpers.cs
- ListItemCollection.cs
- MatcherBuilder.cs
- Base64Decoder.cs
- ConnectorSelectionGlyph.cs
- ColorConvertedBitmap.cs
- TypeSystem.cs
- ProfileSection.cs
- AutoResetEvent.cs
- FormsAuthenticationUserCollection.cs
- CompilationSection.cs
- PropertyItemInternal.cs
- Root.cs
- DataSet.cs
- HttpResponse.cs
- EmptyImpersonationContext.cs
- Ipv6Element.cs
- InteropAutomationProvider.cs
- CheckBoxBaseAdapter.cs
- AccessibleObject.cs
- XmlSchemaSimpleType.cs
- TextTreeNode.cs
- CharacterMetrics.cs