//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------ namespace System.ServiceModel.Channels { using System; using System.Runtime; using System.ServiceModel; // for QuotaExceededException using System.ServiceModel.Diagnostics.Application; class BufferManagerOutputStream : BufferedOutputStream { string quotaExceededString; public BufferManagerOutputStream(string quotaExceededString) : base() { this.quotaExceededString = quotaExceededString; } public BufferManagerOutputStream(string quotaExceededString, int maxSize) : base(maxSize) { this.quotaExceededString = quotaExceededString; } public BufferManagerOutputStream(string quotaExceededString, int initialSize, int maxSize, BufferManager bufferManager) : base(initialSize, maxSize, BufferManager.GetInternalBufferManager(bufferManager)) { this.quotaExceededString = quotaExceededString; } public void Init(int initialSize, int maxSizeQuota, BufferManager bufferManager) { Init(initialSize, maxSizeQuota, maxSizeQuota, bufferManager); } public void Init(int initialSize, int maxSizeQuota, int effectiveMaxSize, BufferManager bufferManager) { base.Reinitialize(initialSize, maxSizeQuota, effectiveMaxSize, BufferManager.GetInternalBufferManager(bufferManager)); } protected override Exception CreateQuotaExceededException(int maxSizeQuota) { string excMsg = SR.GetString(this.quotaExceededString, maxSizeQuota); if (TD.MaxSentMessageSizeExceededIsEnabled()) { TD.MaxSentMessageSizeExceeded(excMsg); } return new QuotaExceededException(excMsg); } } }