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
- Section.cs
- OdbcConnectionFactory.cs
- IsolatedStorageFile.cs
- DataBinder.cs
- FontWeights.cs
- FieldToken.cs
- CodeIndexerExpression.cs
- Overlapped.cs
- DataSourceSelectArguments.cs
- MetadataUtil.cs
- CommonObjectSecurity.cs
- TextServicesLoader.cs
- RequestContext.cs
- ObjectSecurity.cs
- CardSpaceShim.cs
- TreeNodeBinding.cs
- PeerContact.cs
- HashMembershipCondition.cs
- RoleProviderPrincipal.cs
- HiddenField.cs
- ParameterBinding.cs
- __ConsoleStream.cs
- Main.cs
- Calendar.cs
- JoinElimination.cs
- XMLSyntaxException.cs
- MouseWheelEventArgs.cs
- StylusSystemGestureEventArgs.cs
- basecomparevalidator.cs
- DataGridViewRowPostPaintEventArgs.cs
- WebPartConnectionCollection.cs
- CacheMemory.cs
- HatchBrush.cs
- CaseInsensitiveHashCodeProvider.cs
- DataSourceCache.cs
- WmlLiteralTextAdapter.cs
- HttpClientCertificate.cs
- DataSourceCache.cs
- WhitespaceRule.cs
- HtmlFormWrapper.cs
- LeaseManager.cs
- XMLUtil.cs
- RightsManagementInformation.cs
- SharedPersonalizationStateInfo.cs
- ListViewItem.cs
- HttpListener.cs
- CompressEmulationStream.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- Odbc32.cs
- PopupControlService.cs
- VoiceChangeEventArgs.cs
- Filter.cs
- DataGridViewCellParsingEventArgs.cs
- EnvelopedPkcs7.cs
- HttpRuntimeSection.cs
- Deserializer.cs
- CodeComment.cs
- ContextStaticAttribute.cs
- QilStrConcat.cs
- BoundPropertyEntry.cs
- Margins.cs
- DataGridTextBoxColumn.cs
- Transform3DGroup.cs
- CannotUnloadAppDomainException.cs
- FragmentQueryKB.cs
- pingexception.cs
- DesignerLoader.cs
- ComponentCache.cs
- ElementUtil.cs
- DaylightTime.cs
- RefType.cs
- UiaCoreTypesApi.cs
- NonVisualControlAttribute.cs
- StandardOleMarshalObject.cs
- ListControlConvertEventArgs.cs
- MarkedHighlightComponent.cs
- SetterBaseCollection.cs
- SelectionEditingBehavior.cs
- PathNode.cs
- SocketPermission.cs
- DoubleAnimationBase.cs
- EmptyWorkItem.cs
- ApplicationServicesHostFactory.cs
- DesignerExtenders.cs
- TextEditor.cs
- ParameterBuilder.cs
- GiveFeedbackEvent.cs
- IncomingWebRequestContext.cs
- UInt32Storage.cs
- EventLogger.cs
- GeometryValueSerializer.cs
- SapiRecoContext.cs
- BuildProviderUtils.cs
- ZeroOpNode.cs
- BrowsableAttribute.cs
- CodeSnippetCompileUnit.cs
- TimelineClockCollection.cs
- SqlDependencyUtils.cs
- ProxyAttribute.cs
- Hashtable.cs