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
- MimeAnyImporter.cs
- TdsParameterSetter.cs
- Stream.cs
- BackgroundWorker.cs
- WebPartManagerInternals.cs
- InfocardExtendedInformationEntry.cs
- OdbcError.cs
- AdPostCacheSubstitution.cs
- ExpandCollapsePattern.cs
- ZipFileInfoCollection.cs
- ListViewDataItem.cs
- SystemNetworkInterface.cs
- Positioning.cs
- RTLAwareMessageBox.cs
- SharedStatics.cs
- TypeInitializationException.cs
- ClosableStream.cs
- Timer.cs
- SignatureHelper.cs
- DbConnectionHelper.cs
- BuilderInfo.cs
- DockPanel.cs
- ListBoxItemWrapperAutomationPeer.cs
- FeatureSupport.cs
- HtmlInputCheckBox.cs
- FtpCachePolicyElement.cs
- ReferenceEqualityComparer.cs
- HMACMD5.cs
- PersonalizationProvider.cs
- AsyncMethodInvoker.cs
- Matrix3D.cs
- PropertyTabChangedEvent.cs
- HtmlInputText.cs
- WebPartCollection.cs
- ConnectionManagementElementCollection.cs
- EditorAttribute.cs
- RequiredFieldValidator.cs
- ConnectionPoolManager.cs
- HtmlInputReset.cs
- ProcessHostFactoryHelper.cs
- RtfControls.cs
- RestHandlerFactory.cs
- precedingquery.cs
- InvalidEnumArgumentException.cs
- IntSecurity.cs
- ScrollItemPatternIdentifiers.cs
- IndexOutOfRangeException.cs
- DataServiceHost.cs
- MasterPageParser.cs
- Focus.cs
- Bezier.cs
- HostingMessageProperty.cs
- MessageAction.cs
- EntityCommandDefinition.cs
- RtfNavigator.cs
- TileModeValidation.cs
- ListBindingHelper.cs
- OdbcInfoMessageEvent.cs
- SQLUtility.cs
- MethodInfo.cs
- _NestedMultipleAsyncResult.cs
- TextTreeInsertUndoUnit.cs
- EmbeddedMailObject.cs
- CultureSpecificCharacterBufferRange.cs
- DataServiceEntityAttribute.cs
- CallSiteHelpers.cs
- LocalizationParserHooks.cs
- CFStream.cs
- CompilerState.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- BinaryNode.cs
- Triplet.cs
- XmlCharCheckingWriter.cs
- IssuedTokenClientElement.cs
- SafeHandles.cs
- ImageBrush.cs
- TextDecorationLocationValidation.cs
- PackWebRequest.cs
- Application.cs
- BinaryUtilClasses.cs
- ConnectionManagementElementCollection.cs
- StartUpEventArgs.cs
- XsltCompileContext.cs
- DateTimePicker.cs
- XmlEnumAttribute.cs
- ValueQuery.cs
- XmlSchemaValidator.cs
- FullTextBreakpoint.cs
- ServiceManager.cs
- TemplateBamlTreeBuilder.cs
- DoubleAnimationUsingKeyFrames.cs
- QuerySetOp.cs
- CharacterBufferReference.cs
- DependencyPropertyHelper.cs
- AudioFileOut.cs
- MessageQueuePermission.cs
- ObjectDataSource.cs
- SequenceQuery.cs
- FixedPage.cs
- HtmlTableRowCollection.cs