Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / InputQueueChannel.cs / 1 / InputQueueChannel.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.Collections.Generic; abstract class InputQueueChannel: ChannelBase where TDisposable : class, IDisposable { InputQueue inputQueue; protected InputQueueChannel(ChannelManagerBase channelManager) : base(channelManager) { this.inputQueue = new InputQueue (); } public int InternalPendingItems { get { return this.inputQueue.PendingCount; } } public int PendingItems { get { ThrowIfDisposedOrNotOpen(); return InternalPendingItems; } } public void EnqueueAndDispatch(TDisposable item) { EnqueueAndDispatch(item, null); } public void EnqueueAndDispatch(TDisposable item, ItemDequeuedCallback dequeuedCallback, bool canDispatchOnThisThread) { OnEnqueueItem(item); // NOTE: don't need to check IsDisposed here: InputQueue will handle dispose inputQueue.EnqueueAndDispatch(item, dequeuedCallback, canDispatchOnThisThread); } public void EnqueueAndDispatch(Exception exception, ItemDequeuedCallback dequeuedCallback, bool canDispatchOnThisThread) { // NOTE: don't need to check IsDisposed here: InputQueue will handle dispose inputQueue.EnqueueAndDispatch(exception, dequeuedCallback, canDispatchOnThisThread); } public void EnqueueAndDispatch(TDisposable item, ItemDequeuedCallback dequeuedCallback) { OnEnqueueItem(item); // NOTE: don't need to check IsDisposed here: InputQueue will handle dispose inputQueue.EnqueueAndDispatch(item, dequeuedCallback); } public bool EnqueueWithoutDispatch(Exception exception, ItemDequeuedCallback dequeuedCallback) { // NOTE: don't need to check IsDisposed here: InputQueue will handle dispose return inputQueue.EnqueueWithoutDispatch(exception, dequeuedCallback); } public bool EnqueueWithoutDispatch(TDisposable item, ItemDequeuedCallback dequeuedCallback) { OnEnqueueItem(item); // NOTE: don't need to check IsDisposed here: InputQueue will handle dispose return inputQueue.EnqueueWithoutDispatch(item, dequeuedCallback); } public void Dispatch() { // NOTE: don't need to check IsDisposed here: InputQueue will handle dispose inputQueue.Dispatch(); } public void Shutdown() { inputQueue.Shutdown(); } protected override void OnFaulted() { base.OnFaulted(); inputQueue.Shutdown(this); } protected virtual void OnEnqueueItem(TDisposable item) { } protected IAsyncResult BeginDequeue(TimeSpan timeout, AsyncCallback callback, object state) { this.ThrowIfNotOpened(); return inputQueue.BeginDequeue(timeout, callback, state); } protected bool EndDequeue(IAsyncResult result, out TDisposable item) { bool dequeued = inputQueue.EndDequeue(result, out item); if (item == null) { this.ThrowIfFaulted(); this.ThrowIfAborted(); } return dequeued; } protected bool Dequeue(TimeSpan timeout, out TDisposable item) { this.ThrowIfNotOpened(); bool dequeued = inputQueue.Dequeue(timeout, out item); if (item == null) { this.ThrowIfFaulted(); this.ThrowIfAborted(); } return dequeued; } protected bool WaitForItem(TimeSpan timeout) { this.ThrowIfNotOpened(); bool dequeued = inputQueue.WaitForItem(timeout); this.ThrowIfFaulted(); this.ThrowIfAborted(); return dequeued; } protected IAsyncResult BeginWaitForItem(TimeSpan timeout, AsyncCallback callback, object state) { this.ThrowIfNotOpened(); return inputQueue.BeginWaitForItem(timeout, callback, state); } protected bool EndWaitForItem(IAsyncResult result) { bool dequeued = inputQueue.EndWaitForItem(result); this.ThrowIfFaulted(); this.ThrowIfAborted(); return dequeued; } protected override void OnClosing() { base.OnClosing(); inputQueue.Shutdown(this); } protected override void OnAbort() { inputQueue.Close(); } protected override void OnClose(TimeSpan timeout) { inputQueue.Close(); } protected override IAsyncResult OnBeginClose(TimeSpan timeout, AsyncCallback callback, object state) { inputQueue.Close(); return new CompletedAsyncResult(callback, state); } protected override void OnEndClose(IAsyncResult result) { CompletedAsyncResult.End(result); } } } // 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
- VisualTreeUtils.cs
- ActiveXSerializer.cs
- UrlMappingCollection.cs
- RuntimeHelpers.cs
- SQLCharsStorage.cs
- ButtonColumn.cs
- basecomparevalidator.cs
- IsolatedStorageException.cs
- QilFactory.cs
- TdsParameterSetter.cs
- MachineKeyValidationConverter.cs
- BaseResourcesBuildProvider.cs
- SourceFileInfo.cs
- ProxyAttribute.cs
- Utils.cs
- TemplateControl.cs
- OleDbParameterCollection.cs
- DefaultValueTypeConverter.cs
- LinqDataSourceEditData.cs
- CancellationState.cs
- HtmlShim.cs
- Application.cs
- StorageEntityTypeMapping.cs
- ApplyTemplatesAction.cs
- GuidTagList.cs
- SqlNamer.cs
- StylusPointPropertyId.cs
- PatternMatcher.cs
- SequentialOutput.cs
- WebPartZoneCollection.cs
- ConditionalExpression.cs
- SqlFacetAttribute.cs
- HtmlTextArea.cs
- QueryStringParameter.cs
- ProcessHostFactoryHelper.cs
- InvalidOleVariantTypeException.cs
- FillRuleValidation.cs
- ArrayItemValue.cs
- GridView.cs
- DBNull.cs
- SqlFunctionAttribute.cs
- CompiledQuery.cs
- SimpleBitVector32.cs
- BuildTopDownAttribute.cs
- ProtocolViolationException.cs
- DataControlPagerLinkButton.cs
- VersionedStreamOwner.cs
- ServiceProviders.cs
- QueryCursorEventArgs.cs
- CodeStatement.cs
- OpenFileDialog.cs
- DataGridViewCheckBoxColumn.cs
- Unit.cs
- RelationshipConstraintValidator.cs
- SafeArrayRankMismatchException.cs
- AnnotationComponentManager.cs
- ConnectionConsumerAttribute.cs
- ITreeGenerator.cs
- TraceXPathNavigator.cs
- AsyncPostBackErrorEventArgs.cs
- TaskHelper.cs
- XmlException.cs
- AspNetSynchronizationContext.cs
- FileDetails.cs
- EntityReference.cs
- JapaneseCalendar.cs
- MsmqMessage.cs
- EntitySet.cs
- WebPartMinimizeVerb.cs
- ListViewGroup.cs
- HierarchicalDataBoundControlAdapter.cs
- DotExpr.cs
- Deflater.cs
- MarkupCompilePass1.cs
- DataGridViewColumnEventArgs.cs
- returneventsaver.cs
- TemplatedAdorner.cs
- ScriptRef.cs
- XmlCDATASection.cs
- HttpApplication.cs
- CmsInterop.cs
- SafeRightsManagementQueryHandle.cs
- DataSourceControlBuilder.cs
- AddInEnvironment.cs
- ImageClickEventArgs.cs
- TraceSwitch.cs
- ControlParameter.cs
- DataViewSetting.cs
- TdsValueSetter.cs
- COAUTHIDENTITY.cs
- HostingEnvironmentWrapper.cs
- Win32KeyboardDevice.cs
- NodeFunctions.cs
- Clock.cs
- IHttpResponseInternal.cs
- XmlUTF8TextReader.cs
- SiteMap.cs
- ConfigurationManagerHelper.cs
- MarginsConverter.cs
- DetailsViewDeletedEventArgs.cs