Пример #1
0
        /// <summary>
        /// Creates a new <see cref="LeaseSettings"/> instance.
        /// </summary>
        /// <param name="config">Lease config</param>
        /// <param name="leaseName">Lease name</param>
        /// <param name="ownerName">Lease owner</param>
        /// <returns>The requested settings.</returns>
        public static LeaseSettings Create(Config config, string leaseName, string ownerName)
        {
            if (config.IsNullOrEmpty())
            {
                throw ConfigurationException.NullOrEmptyConfig <LeaseSettings>();
            }

            return(new LeaseSettings(leaseName, ownerName, TimeoutSettings.Create(config), config));
        }
Пример #2
0
        /// <summary>
        /// Creates a new instance of the <see cref="LeaseSettings"/>.
        /// </summary>
        /// <param name="leaseName">Lease name</param>
        /// <param name="ownerName">Lease owner</param>
        /// <param name="timeoutSettings">Timeout settings</param>
        /// <param name="leaseConfig">Lease config</param>
        public LeaseSettings(string leaseName, string ownerName, TimeoutSettings timeoutSettings, Config leaseConfig)
        {
            LeaseName       = leaseName;
            OwnerName       = ownerName;
            TimeoutSettings = timeoutSettings;
            LeaseConfig     = leaseConfig;

            var leaseClassName = leaseConfig.GetString("lease-class", null);

            if (string.IsNullOrEmpty(leaseClassName))
            {
                throw new ArgumentException("lease-class must not be empty");
            }

            LeaseType = Type.GetType(leaseClassName, true);
        }
Пример #3
0
 /// <summary>
 /// Create a <see cref="LeaseSettings"/> with specified <see cref="TimeoutSettings"/>.
 /// </summary>
 /// <param name="timeoutSettings">timeout settings</param>
 /// <returns></returns>
 public LeaseSettings WithTimeoutSettings(TimeoutSettings timeoutSettings)
 {
     return(new LeaseSettings(LeaseName, OwnerName, timeoutSettings, LeaseConfig));
 }