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
- MimeFormImporter.cs
- ResourceDescriptionAttribute.cs
- NullEntityWrapper.cs
- DataGridColumnCollection.cs
- Privilege.cs
- QuotedStringWriteStateInfo.cs
- MultitargetingHelpers.cs
- FileDialogCustomPlacesCollection.cs
- StylusDevice.cs
- StorageEndPropertyMapping.cs
- LiteralControl.cs
- EncoderParameters.cs
- ValidationUtility.cs
- GridViewRow.cs
- RemoteWebConfigurationHostServer.cs
- ParameterBuilder.cs
- XmlFormatExtensionPointAttribute.cs
- UnsafeNativeMethods.cs
- SchemaType.cs
- ClientBuildManager.cs
- DateTimeFormatInfoScanner.cs
- CalendarTable.cs
- StylusPointPropertyId.cs
- SecurityPolicySection.cs
- TemplatedAdorner.cs
- SmtpLoginAuthenticationModule.cs
- HttpContextServiceHost.cs
- OleDbSchemaGuid.cs
- ConfigPathUtility.cs
- DSASignatureDeformatter.cs
- _MultipleConnectAsync.cs
- DataRelationPropertyDescriptor.cs
- KnownIds.cs
- ContentFileHelper.cs
- ControlBuilderAttribute.cs
- ProcessModuleCollection.cs
- CLSCompliantAttribute.cs
- FileDialog_Vista_Interop.cs
- _ProxyChain.cs
- Pen.cs
- thaishape.cs
- EmptyStringExpandableObjectConverter.cs
- RelationshipConstraintValidator.cs
- RawStylusActions.cs
- AsnEncodedData.cs
- SoapCodeExporter.cs
- GeneralTransform2DTo3D.cs
- WebReference.cs
- HtmlWindowCollection.cs
- ButtonChrome.cs
- ChannelManager.cs
- GridToolTip.cs
- CompoundFileIOPermission.cs
- ModelTreeEnumerator.cs
- BlockCollection.cs
- QueryOutputWriter.cs
- XmlNodeWriter.cs
- GeometryModel3D.cs
- XmlAttributeCollection.cs
- XmlNodeChangedEventArgs.cs
- BinHexEncoding.cs
- _AutoWebProxyScriptHelper.cs
- ByteKeyFrameCollection.cs
- PreviousTrackingServiceAttribute.cs
- DiscoveryProxy.cs
- DecoderBestFitFallback.cs
- ScriptMethodAttribute.cs
- SafeLocalMemHandle.cs
- DockPanel.cs
- ContractsBCL.cs
- CollectionChangeEventArgs.cs
- EventMappingSettingsCollection.cs
- RegexNode.cs
- MissingMethodException.cs
- DynamicValidatorEventArgs.cs
- DataGridGeneralPage.cs
- PreProcessor.cs
- PublisherMembershipCondition.cs
- MessagePropertyDescription.cs
- HwndSourceKeyboardInputSite.cs
- GlobalProxySelection.cs
- NativeRecognizer.cs
- Itemizer.cs
- SharingService.cs
- DependencyPropertyHelper.cs
- COAUTHIDENTITY.cs
- Missing.cs
- StreamSecurityUpgradeAcceptorBase.cs
- PagerSettings.cs
- GZipStream.cs
- DescendentsWalker.cs
- ThreadAbortException.cs
- PersonalizationStateInfoCollection.cs
- SqlCacheDependencyDatabaseCollection.cs
- FontCacheUtil.cs
- UserControl.cs
- XPathParser.cs
- MailMessageEventArgs.cs
- TextReader.cs
- ChannelDispatcherCollection.cs