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
- ProfileSettingsCollection.cs
- Pkcs7Signer.cs
- CopyAction.cs
- DataMemberConverter.cs
- ECDiffieHellmanCng.cs
- PrimitiveType.cs
- HttpListenerElement.cs
- FieldDescriptor.cs
- UIElementParagraph.cs
- BindingSource.cs
- ScrollProviderWrapper.cs
- CheckBox.cs
- EntityParameterCollection.cs
- ComplexLine.cs
- GPRECTF.cs
- DataGridViewCellPaintingEventArgs.cs
- SynchronizationContext.cs
- WebZone.cs
- TableItemPatternIdentifiers.cs
- GridViewColumn.cs
- XmlCharCheckingWriter.cs
- HuffmanTree.cs
- ReadOnlyDictionary.cs
- GPPOINT.cs
- RemoteHelper.cs
- BitmapMetadataBlob.cs
- ByteStack.cs
- DefaultValidator.cs
- EmulateRecognizeCompletedEventArgs.cs
- UIElement3DAutomationPeer.cs
- DBCommandBuilder.cs
- Border.cs
- TableLayoutStyle.cs
- CrossAppDomainChannel.cs
- CollectionDataContract.cs
- ReadWriteSpinLock.cs
- TreeBuilder.cs
- Trace.cs
- Menu.cs
- GenericUriParser.cs
- XPathExpr.cs
- PolyLineSegment.cs
- PathParser.cs
- ProfessionalColors.cs
- TableLayoutRowStyleCollection.cs
- TraceLevelHelper.cs
- HMACSHA384.cs
- ImageMetadata.cs
- EntityDataSourceConfigureObjectContextPanel.cs
- TdsParserSessionPool.cs
- TableCell.cs
- ValidationEventArgs.cs
- CompatibleComparer.cs
- PermissionSetEnumerator.cs
- Cursors.cs
- CompilerCollection.cs
- TextTreeDeleteContentUndoUnit.cs
- InkCanvasSelection.cs
- RIPEMD160.cs
- CacheChildrenQuery.cs
- CqlQuery.cs
- Events.cs
- MouseGestureValueSerializer.cs
- BasicHttpMessageSecurityElement.cs
- RawStylusInput.cs
- XmlObjectSerializerReadContextComplex.cs
- FixedSOMFixedBlock.cs
- SoapFault.cs
- SpeechDetectedEventArgs.cs
- StringFormat.cs
- Listen.cs
- ProxyElement.cs
- ConfigXmlText.cs
- OdbcParameter.cs
- TextEncodedRawTextWriter.cs
- PageMediaSize.cs
- Compensate.cs
- tooltip.cs
- WebSysDisplayNameAttribute.cs
- QueryParameter.cs
- Parsers.cs
- BaseCollection.cs
- Content.cs
- CroppedBitmap.cs
- AppendHelper.cs
- SqlMethodTransformer.cs
- PageAdapter.cs
- SqlDataSourceSummaryPanel.cs
- CompiledELinqQueryState.cs
- InvokeProviderWrapper.cs
- RestHandler.cs
- ConfigurationElementProperty.cs
- streamingZipPartStream.cs
- TcpSocketManager.cs
- DataGridViewComboBoxColumnDesigner.cs
- DelegateBodyWriter.cs
- SqlBinder.cs
- FontSource.cs
- SiblingIterators.cs
- SpeakCompletedEventArgs.cs