BufferManagerOutputStream.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------
  4. namespace System.ServiceModel.Channels
  5. {
  6. using System;
  7. using System.Runtime;
  8. using System.ServiceModel; // for QuotaExceededException
  9. using System.ServiceModel.Diagnostics.Application;
  10. class BufferManagerOutputStream : BufferedOutputStream
  11. {
  12. string quotaExceededString;
  13. public BufferManagerOutputStream(string quotaExceededString)
  14. : base()
  15. {
  16. this.quotaExceededString = quotaExceededString;
  17. }
  18. public BufferManagerOutputStream(string quotaExceededString, int maxSize)
  19. : base(maxSize)
  20. {
  21. this.quotaExceededString = quotaExceededString;
  22. }
  23. public BufferManagerOutputStream(string quotaExceededString, int initialSize, int maxSize, BufferManager bufferManager)
  24. : base(initialSize, maxSize, BufferManager.GetInternalBufferManager(bufferManager))
  25. {
  26. this.quotaExceededString = quotaExceededString;
  27. }
  28. public void Init(int initialSize, int maxSizeQuota, BufferManager bufferManager)
  29. {
  30. Init(initialSize, maxSizeQuota, maxSizeQuota, bufferManager);
  31. }
  32. public void Init(int initialSize, int maxSizeQuota, int effectiveMaxSize, BufferManager bufferManager)
  33. {
  34. base.Reinitialize(initialSize, maxSizeQuota, effectiveMaxSize, BufferManager.GetInternalBufferManager(bufferManager));
  35. }
  36. protected override Exception CreateQuotaExceededException(int maxSizeQuota)
  37. {
  38. string excMsg = SR.GetString(this.quotaExceededString, maxSizeQuota);
  39. if (TD.MaxSentMessageSizeExceededIsEnabled())
  40. {
  41. TD.MaxSentMessageSizeExceeded(excMsg);
  42. }
  43. return new QuotaExceededException(excMsg);
  44. }
  45. }
  46. }