Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Dispatcher / ThreadSafeMessageFilterTable.cs / 1 / ThreadSafeMessageFilterTable.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System; using System.Threading; using System.ServiceModel; using System.ServiceModel.Channels; using System.Collections; using System.Collections.Generic; internal class ThreadSafeMessageFilterTable: IMessageFilterTable { MessageFilterTable table; object syncRoot; internal ThreadSafeMessageFilterTable() { this.table = new MessageFilterTable (); this.syncRoot = new object(); } internal object SyncRoot { get { return this.syncRoot; } } public int DefaultPriority { get { lock (this.syncRoot) { return this.table.DefaultPriority; } } set { lock (this.syncRoot) { this.table.DefaultPriority = value; } } } internal void Add(MessageFilter filter, FilterData data, int priority) { lock (this.syncRoot) { this.table.Add(filter, data, priority); } } // // IMessageFilterTable methods // public int Count { get { lock (this.syncRoot) { return this.table.Count; } } } public void Clear() { lock (this.syncRoot) { this.table.Clear(); } } public bool GetMatchingValue(Message message, out FilterData data) { lock (this.syncRoot) { return this.table.GetMatchingValue(message, out data); } } public bool GetMatchingValue(MessageBuffer buffer, out FilterData data) { lock (this.syncRoot) { return this.table.GetMatchingValue(buffer, out data); } } public bool GetMatchingValues(Message message, ICollection results) { lock (this.syncRoot) { return this.table.GetMatchingValues(message, results); } } public bool GetMatchingValues(MessageBuffer buffer, ICollection results) { lock (this.syncRoot) { return this.table.GetMatchingValues(buffer, results); } } public bool GetMatchingFilter(Message message, out MessageFilter filter) { lock (this.syncRoot) { return this.table.GetMatchingFilter(message, out filter); } } public bool GetMatchingFilter(MessageBuffer buffer, out MessageFilter filter) { lock (this.syncRoot) { return this.table.GetMatchingFilter(buffer, out filter); } } public bool GetMatchingFilters(Message message, ICollection results) { lock (this.syncRoot) { return this.table.GetMatchingFilters(message, results); } } public bool GetMatchingFilters(MessageBuffer buffer, ICollection results) { lock (this.syncRoot) { return this.table.GetMatchingFilters(buffer, results); } } // // IDictionary methods // public FilterData this[MessageFilter key] { get { lock (this.syncRoot) { return this.table[key]; } } set { lock (this.syncRoot) { this.table[key] = value; } } } public ICollection Keys { get { lock (this.syncRoot) { return this.table.Keys; } } } public ICollection Values { get { lock (this.syncRoot) { return this.table.Values; } } } public bool ContainsKey(MessageFilter key) { lock (this.syncRoot) { return this.table.ContainsKey(key); } } public void Add(MessageFilter key, FilterData value) { lock (this.syncRoot) { this.table.Add(key, value); } } public bool Remove(MessageFilter key) { lock (this.syncRoot) { return this.table.Remove(key); } } // // ICollection > methods // bool ICollection >.IsReadOnly { get { lock (this.syncRoot) { return ((ICollection >)this.table).IsReadOnly; } } } void ICollection >.Add(KeyValuePair item) { lock (this.syncRoot) { ((ICollection >)this.table).Add(item); } } bool ICollection >.Contains(KeyValuePair item) { lock (this.syncRoot) { return ((ICollection >)this.table).Contains(item); } } void ICollection >.CopyTo(KeyValuePair [] array, int arrayIndex) { lock (this.syncRoot) { ((ICollection >)this.table).CopyTo(array, arrayIndex); } } bool ICollection >.Remove(KeyValuePair item) { lock (this.syncRoot) { return ((ICollection >)this.table).Remove(item); } } IEnumerator IEnumerable.GetEnumerator() { lock (this.syncRoot) { return ((IEnumerable >)this).GetEnumerator(); } } IEnumerator > IEnumerable >.GetEnumerator() { lock (this.syncRoot) { return ((ICollection >)this.table).GetEnumerator(); } } public bool TryGetValue(MessageFilter filter, out FilterData data) { lock (this.syncRoot) { return this.table.TryGetValue(filter, out data); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Parser.cs
- _CacheStreams.cs
- TextRunCacheImp.cs
- MultipartContentParser.cs
- HitTestFilterBehavior.cs
- BaseConfigurationRecord.cs
- TextServicesHost.cs
- RuleSetReference.cs
- CryptoConfig.cs
- JoinGraph.cs
- WindowsTitleBar.cs
- WebPartHeaderCloseVerb.cs
- MDIClient.cs
- TextFindEngine.cs
- SearchExpression.cs
- SpecularMaterial.cs
- ServicePointManagerElement.cs
- SqlRecordBuffer.cs
- ResponseStream.cs
- BindingsCollection.cs
- XmlSchemaRedefine.cs
- ScriptingSectionGroup.cs
- BinHexEncoding.cs
- ConnectionOrientedTransportManager.cs
- CultureInfoConverter.cs
- COM2EnumConverter.cs
- ListCommandEventArgs.cs
- DataRelationPropertyDescriptor.cs
- TypeConverter.cs
- DateTimeFormatInfo.cs
- ErasingStroke.cs
- CornerRadius.cs
- ContainerTracking.cs
- IpcManager.cs
- DesignerAdRotatorAdapter.cs
- printdlgexmarshaler.cs
- ResourceDescriptionAttribute.cs
- ScrollItemPattern.cs
- WebPartZoneBase.cs
- DeobfuscatingStream.cs
- MDIWindowDialog.cs
- NonBatchDirectoryCompiler.cs
- DataGridViewEditingControlShowingEventArgs.cs
- FunctionDescription.cs
- XmlSchemaCompilationSettings.cs
- InheritanceContextHelper.cs
- RoleGroup.cs
- ProbeDuplexAsyncResult.cs
- StubHelpers.cs
- OletxDependentTransaction.cs
- StateChangeEvent.cs
- AtlasWeb.Designer.cs
- ColumnHeaderConverter.cs
- XmlExpressionDumper.cs
- TextModifier.cs
- CommonObjectSecurity.cs
- AnnotationStore.cs
- FontUnitConverter.cs
- TextEditorThreadLocalStore.cs
- XmlDeclaration.cs
- InputScopeNameConverter.cs
- DesignerVerbToolStripMenuItem.cs
- FontUnitConverter.cs
- InfocardExtendedInformationCollection.cs
- _Connection.cs
- WebControlsSection.cs
- ReflectTypeDescriptionProvider.cs
- RawMouseInputReport.cs
- DbConnectionPool.cs
- TransformerConfigurationWizardBase.cs
- UrlRoutingModule.cs
- BoundPropertyEntry.cs
- ValidationHelper.cs
- DbParameterCollectionHelper.cs
- regiisutil.cs
- SingleAnimationUsingKeyFrames.cs
- AutomationProperty.cs
- SiteMembershipCondition.cs
- SiteMapPath.cs
- DropTarget.cs
- LayoutUtils.cs
- MarkupProperty.cs
- ListViewUpdateEventArgs.cs
- SingleConverter.cs
- MetadataArtifactLoaderCompositeResource.cs
- CollectionType.cs
- TransformDescriptor.cs
- BuildProviderUtils.cs
- DbConnectionPoolIdentity.cs
- ValidationHelpers.cs
- CryptoKeySecurity.cs
- TextModifier.cs
- ClientScriptItem.cs
- DateTime.cs
- AssemblyFilter.cs
- StyleBamlRecordReader.cs
- DataTemplateSelector.cs
- _AcceptOverlappedAsyncResult.cs
- HttpCacheVary.cs
- OperationFormatStyle.cs