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

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ErrorWebPart.cs
- BindingSource.cs
- DragDeltaEventArgs.cs
- counter.cs
- Operand.cs
- CaseKeyBox.xaml.cs
- LocatorGroup.cs
- MessageQueueConverter.cs
- ChainedAsyncResult.cs
- SynchronousChannel.cs
- DoubleAnimationClockResource.cs
- StreamWriter.cs
- GeometryConverter.cs
- WorkflowApplicationAbortedException.cs
- IdentityModelDictionary.cs
- MatrixKeyFrameCollection.cs
- StringExpressionSet.cs
- ColorMatrix.cs
- ScrollChrome.cs
- ControlBindingsCollection.cs
- SystemTcpConnection.cs
- SqlExpander.cs
- Walker.cs
- ClientReliableChannelBinder.cs
- InstanceDescriptor.cs
- XslCompiledTransform.cs
- VirtualPathProvider.cs
- XmlSerializerAssemblyAttribute.cs
- ResXResourceSet.cs
- GeneralTransformGroup.cs
- EventData.cs
- SqlProfileProvider.cs
- LocatorPart.cs
- UniformGrid.cs
- ResXResourceReader.cs
- MetadataPropertyvalue.cs
- propertytag.cs
- PointHitTestParameters.cs
- DataGridViewColumnCollectionEditor.cs
- connectionpool.cs
- ProgressBarAutomationPeer.cs
- PublisherIdentityPermission.cs
- Context.cs
- Point3DCollectionConverter.cs
- Instrumentation.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- DependencyPropertyValueSerializer.cs
- AdornedElementPlaceholder.cs
- Grant.cs
- CompilerError.cs
- ImageAnimator.cs
- WebPartConnectionsCloseVerb.cs
- ErrorTolerantObjectWriter.cs
- LicenseProviderAttribute.cs
- DefaultCommandExtensionCallback.cs
- ContentIterators.cs
- WindowsAltTab.cs
- ImageBrush.cs
- Util.cs
- HttpPostedFileBase.cs
- BevelBitmapEffect.cs
- Section.cs
- WebPartsSection.cs
- TextFormatter.cs
- _AutoWebProxyScriptWrapper.cs
- ClaimComparer.cs
- RMPermissions.cs
- HandlerFactoryCache.cs
- XmlKeywords.cs
- TripleDESCryptoServiceProvider.cs
- UInt16.cs
- EditorZoneDesigner.cs
- TextRunProperties.cs
- ProtectedUri.cs
- HitTestDrawingContextWalker.cs
- FrameworkObject.cs
- RequestQueue.cs
- AutomationFocusChangedEventArgs.cs
- CodeValidator.cs
- RectangleF.cs
- TraceLevelStore.cs
- XamlStream.cs
- SqlXmlStorage.cs
- DispatcherHooks.cs
- HatchBrush.cs
- KeySplineConverter.cs
- OrderedDictionary.cs
- XPathParser.cs
- CachedRequestParams.cs
- EntityTemplateFactory.cs
- ClientSession.cs
- ConsumerConnectionPointCollection.cs
- AliasedExpr.cs
- EncryptedPackage.cs
- ComEventsSink.cs
- Point3DCollectionValueSerializer.cs
- CustomWebEventKey.cs
- CompositionTarget.cs
- CodeIndexerExpression.cs
- CommandHelper.cs