Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / ConnectionPoolRegistry.cs / 1 / ConnectionPoolRegistry.cs
//---------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------------------- namespace System.ServiceModel.Channels { using System.Diagnostics; using System.ServiceModel; using System.Collections.Generic; using System.ServiceModel.Diagnostics; abstract class ConnectionPoolRegistry { Dictionary> registry; protected ConnectionPoolRegistry() { registry = new Dictionary >(); } object ThisLock { get { return this.registry; } } // NOTE: performs the open on the pool for you public ConnectionPool Lookup(IConnectionOrientedTransportChannelFactorySettings settings) { ConnectionPool result = null; string key = settings.ConnectionPoolGroupName; lock (ThisLock) { List registryEntry = null; if (registry.TryGetValue(key, out registryEntry)) { for (int i = 0; i < registryEntry.Count; i++) { if (registryEntry[i].IsCompatible(settings) && registryEntry[i].TryOpen()) { result = registryEntry[i]; break; } } } else { registryEntry = new List (); registry.Add(key, registryEntry); } if (result == null) { result = CreatePool(settings); registryEntry.Add(result); } } return result; } protected abstract ConnectionPool CreatePool(IConnectionOrientedTransportChannelFactorySettings settings); public void Release(ConnectionPool pool, TimeSpan timeout) { lock (ThisLock) { if (pool.Close(timeout)) { List registryEntry = registry[pool.Name]; for (int i = 0; i < registryEntry.Count; i++) { if (object.ReferenceEquals(registryEntry[i], pool)) { registryEntry.RemoveAt(i); break; } } if (registryEntry.Count == 0) { registry.Remove(pool.Name); } } } } } } // 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
- EntityTemplateFactory.cs
- Deserializer.cs
- ProjectionPathBuilder.cs
- VisualStyleInformation.cs
- DateTimeSerializationSection.cs
- ScaleTransform3D.cs
- TextRange.cs
- dsa.cs
- ForwardPositionQuery.cs
- Debug.cs
- HttpResponseInternalWrapper.cs
- DesignerVerb.cs
- LineProperties.cs
- hresults.cs
- XmlEncoding.cs
- SimpleTypeResolver.cs
- DataError.cs
- ResourceDefaultValueAttribute.cs
- BitmapData.cs
- Evidence.cs
- MessageQueueException.cs
- GroupStyle.cs
- PerformanceCounterPermissionAttribute.cs
- ObjectDataSourceEventArgs.cs
- SQLInt64.cs
- MatrixTransform.cs
- InternalResources.cs
- GC.cs
- DaylightTime.cs
- CardSpaceShim.cs
- MobileCategoryAttribute.cs
- ResourceSet.cs
- EntityViewGenerator.cs
- FilterException.cs
- _NtlmClient.cs
- DoubleStorage.cs
- CodeIndexerExpression.cs
- OleDbInfoMessageEvent.cs
- WithStatement.cs
- FontCollection.cs
- QueryOutputWriter.cs
- MethodToken.cs
- VisualBasic.cs
- GeneralTransformGroup.cs
- RegexRunnerFactory.cs
- DeploymentExceptionMapper.cs
- RangeExpression.cs
- SqlDependencyUtils.cs
- SubpageParagraph.cs
- AppDomain.cs
- OleDbException.cs
- C14NUtil.cs
- DesignerForm.cs
- TextEndOfSegment.cs
- ExeContext.cs
- LicenseManager.cs
- X509Utils.cs
- Encoder.cs
- ProtectedConfigurationSection.cs
- DocumentApplicationState.cs
- ExpressionLexer.cs
- HandledEventArgs.cs
- TextWriterTraceListener.cs
- OracleTimeSpan.cs
- _ShellExpression.cs
- BrowserCapabilitiesFactoryBase.cs
- Thread.cs
- ChangePasswordAutoFormat.cs
- QilStrConcat.cs
- RoutedEventValueSerializer.cs
- DSASignatureDeformatter.cs
- Object.cs
- Cell.cs
- CellNormalizer.cs
- DataGrid.cs
- SqlTypesSchemaImporter.cs
- ForEachAction.cs
- XmlSchemaInclude.cs
- MatrixTransform3D.cs
- SqlStatistics.cs
- Util.cs
- FormsAuthenticationTicket.cs
- WebResourceUtil.cs
- SplitterEvent.cs
- Int16Storage.cs
- ScrollItemProviderWrapper.cs
- PathSegment.cs
- ResourceBinder.cs
- QualifiedCellIdBoolean.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- HttpException.cs
- SharedPersonalizationStateInfo.cs
- Native.cs
- BamlWriter.cs
- MetadataArtifactLoaderCompositeResource.cs
- ObservableDictionary.cs
- DesignerLoader.cs
- PageAdapter.cs
- EventWaitHandleSecurity.cs
- NotifyIcon.cs