Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / HandleDictionary.cs / 1 / HandleDictionary.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.Collections.Generic; using Microsoft.InfoCards.Diagnostics; using IDT=Microsoft.InfoCards.Diagnostics.InfoCardTrace; using System.Xml; // // Summary: // Implements a dictionary of Handles. The GetNewHandle method will return a handle value that is guaranteed // to be unique, an object of type TVal can then be associated with that handle value. // internal class HandleDictionary< TVal > { const int m_MaxSessionCount = Int32.MaxValue / 2; Dictionary< int, TVal > m_internalDictionary; Random m_random; // // Summary: // Returns the max number of handles this dictionary can contain. // public int MaxSize { get { return m_MaxSessionCount; } } // // Summary: // Gets the object associated with the handle value passed in as Key. // public TVal this[ int Key ] { get { return m_internalDictionary[ Key ]; } set { if ( !ContainsHandle( Key ) ) { throw IDT.ThrowHelperError( new KeyNotFoundException() ); } m_internalDictionary[ Key ] = value; } } public HandleDictionary() { m_internalDictionary = new Dictionary< int, TVal >(); m_random = new Random(); } public int GetNewHandle() { // // Limit the number of crypto sessions to make certain that // finding a random id is efficient. // if( m_internalDictionary.Count >= m_MaxSessionCount ) { throw IDT.ThrowHelperError( new MaxSessionCountExceededException() ); } // // Look for an open slot. // int handle = m_random.Next(); while( m_internalDictionary.ContainsKey( handle ) || 0 == handle ) { handle = m_random.Next(); } // // Reserve a spot for this handle. // m_internalDictionary[ handle ] = default( TVal ); return handle; } // // Summary: // Removes a handle and it's value from the collection. // public bool Remove( int key ) { return m_internalDictionary.Remove( key ); } // // Summary: // Returns true if the handle value is contained in the collection. // public bool ContainsHandle( int key ) { return m_internalDictionary.ContainsKey( key ); } } } // 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
- NameTable.cs
- ButtonBase.cs
- PagesSection.cs
- ArrayList.cs
- XmlSchemaFacet.cs
- SoapObjectInfo.cs
- HierarchicalDataBoundControlAdapter.cs
- Int32Rect.cs
- MediaContext.cs
- Exceptions.cs
- WorkflowDefinitionDispenser.cs
- SiteMapPath.cs
- JoinTreeNode.cs
- ContractBase.cs
- OleDbRowUpdatingEvent.cs
- HotSpot.cs
- DataFormats.cs
- MemoryFailPoint.cs
- WaitHandle.cs
- VisualStateGroup.cs
- EventSinkActivity.cs
- mansign.cs
- EventHandlingScope.cs
- TreeNodeStyle.cs
- TabControl.cs
- ProxyManager.cs
- RecipientInfo.cs
- SafeNativeMethods.cs
- _ConnectionGroup.cs
- WebPageTraceListener.cs
- InstanceKeyNotReadyException.cs
- SQLConvert.cs
- FormatterServices.cs
- FixedHighlight.cs
- WebControlParameterProxy.cs
- WSTransactionSection.cs
- GridViewDeletedEventArgs.cs
- Configuration.cs
- Frame.cs
- TypeElementCollection.cs
- BypassElement.cs
- SvcMapFileSerializer.cs
- CheckBox.cs
- CompilerCollection.cs
- SubMenuStyle.cs
- MappingSource.cs
- XmlEntityReference.cs
- DbResourceAllocator.cs
- HMACSHA256.cs
- DefaultBinder.cs
- URLIdentityPermission.cs
- ColorBlend.cs
- HttpConfigurationSystem.cs
- Expression.cs
- PrintEvent.cs
- Canvas.cs
- ValidationResult.cs
- OwnerDrawPropertyBag.cs
- IdentityModelStringsVersion1.cs
- TreeNodeStyle.cs
- DbInsertCommandTree.cs
- CancellationTokenSource.cs
- VoiceSynthesis.cs
- DataProviderNameConverter.cs
- NetworkStream.cs
- hebrewshape.cs
- SqlIdentifier.cs
- OleDbSchemaGuid.cs
- MatcherBuilder.cs
- Attribute.cs
- BindingCompleteEventArgs.cs
- DNS.cs
- PeerCustomResolverElement.cs
- ObjectDataSourceStatusEventArgs.cs
- SQLByte.cs
- SafeNativeMethodsMilCoreApi.cs
- TraceSection.cs
- SerializationException.cs
- EngineSite.cs
- CollectionChangedEventManager.cs
- SourceFilter.cs
- LocalValueEnumerator.cs
- OperationAbortedException.cs
- loginstatus.cs
- EnumType.cs
- SRDisplayNameAttribute.cs
- DataGridRelationshipRow.cs
- SamlAttributeStatement.cs
- EventRouteFactory.cs
- HideDisabledControlAdapter.cs
- PathGeometry.cs
- GC.cs
- ViewBase.cs
- HtmlInputSubmit.cs
- ValueTypeFixupInfo.cs
- ToolConsole.cs
- EntityKey.cs
- RouteParameter.cs
- AgileSafeNativeMemoryHandle.cs
- ClientTargetSection.cs