* AppDomainSetup.cs: If relative paths are used they should be
[mono.git] / mcs / class / corlib / System.Runtime.Remoting.Lifetime / LifetimeServices.cs
1 //
2 // System.Runtime.Remoting.Lifetime.LifetimeServices.cs
3 //
4 // Author: Duncan Mak  (duncan@ximian.com)
5 //         Lluis Sanchez Gual (lluis@ideary.com)
6 //
7 // 2002 (C) Copyright. Ximian, Inc.
8 //
9
10 using System;
11
12 namespace System.Runtime.Remoting.Lifetime {
13
14         //LAMESPEC: MS docs don't say that this class is sealed.
15         public sealed class LifetimeServices
16         {
17                 private static TimeSpan _leaseManagerPollTime;
18                 private static TimeSpan _leaseTime;
19                 private static TimeSpan _renewOnCallTime;
20                 private static TimeSpan _sponsorshipTimeout;
21
22                 private static LeaseManager _leaseManager = new LeaseManager();
23
24                 static LifetimeServices ()
25                 {
26                         _leaseManagerPollTime = TimeSpan.FromSeconds (10);
27                         _leaseTime = TimeSpan.FromMinutes (5);
28                         _renewOnCallTime = TimeSpan.FromMinutes (2);
29                         _sponsorshipTimeout = TimeSpan.FromMinutes (2);
30                 }
31
32                 public LifetimeServices ()
33                 {
34                 }
35
36                 public static TimeSpan LeaseManagerPollTime 
37                 {
38                         get { return _leaseManagerPollTime; }
39
40                         set {
41                                 _leaseManagerPollTime = value;
42                                 _leaseManager.SetPollTime (value);
43                         }
44                 }
45
46                 public static TimeSpan LeaseTime 
47                 {
48                         get { return _leaseTime; }
49                         set { _leaseTime = value; }
50                 }
51
52                 public static TimeSpan RenewOnCallTime 
53                 {
54                         get { return _renewOnCallTime; }
55                         set { _renewOnCallTime = value; }
56                 }
57
58                 public static TimeSpan SponsorshipTimeout 
59                 {
60                         get { return _sponsorshipTimeout; }
61                         set { _sponsorshipTimeout = value; }
62                 }
63
64                 internal static void TrackLifetime (ServerIdentity identity)
65                 {
66                         _leaseManager.TrackLifetime (identity);
67                 }
68
69                 internal static void StopTrackingLifetime (ServerIdentity identity)
70                 {
71                         _leaseManager.StopTrackingLifetime (identity);
72                 }
73         }
74 }