StreamUpgradeProvider.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //-----------------------------------------------------------------------------
  4. namespace System.ServiceModel.Channels
  5. {
  6. public abstract class StreamUpgradeProvider : CommunicationObject
  7. {
  8. TimeSpan closeTimeout;
  9. TimeSpan openTimeout;
  10. protected StreamUpgradeProvider()
  11. : this(null)
  12. {
  13. }
  14. protected StreamUpgradeProvider(IDefaultCommunicationTimeouts timeouts)
  15. {
  16. if (timeouts != null)
  17. {
  18. this.closeTimeout = timeouts.CloseTimeout;
  19. this.openTimeout = timeouts.OpenTimeout;
  20. }
  21. else
  22. {
  23. this.closeTimeout = ServiceDefaults.CloseTimeout;
  24. this.openTimeout = ServiceDefaults.OpenTimeout;
  25. }
  26. }
  27. protected override TimeSpan DefaultCloseTimeout
  28. {
  29. get { return this.closeTimeout; }
  30. }
  31. protected override TimeSpan DefaultOpenTimeout
  32. {
  33. get { return this.closeTimeout; }
  34. }
  35. public virtual T GetProperty<T>() where T : class
  36. {
  37. return null;
  38. }
  39. public abstract StreamUpgradeInitiator CreateUpgradeInitiator(EndpointAddress remoteAddress, Uri via);
  40. public abstract StreamUpgradeAcceptor CreateUpgradeAcceptor();
  41. }
  42. }