예제 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LockManagerBase"/> class.
 /// </summary>
 /// <param name="cleanupTask">The clean-up task for expired locks</param>
 /// <param name="systemClock">The system clock interface</param>
 /// <param name="logger">The logger</param>
 /// <param name="options">The options of the lock manager</param>
 protected LockManagerBase(ILockCleanupTask cleanupTask, ISystemClock systemClock, ILogger logger, ILockManagerOptions options = null)
 {
     _rounding    = options?.Rounding ?? new DefaultLockTimeRounding(DefaultLockTimeRoundingMode.OneSecond);
     _cleanupTask = cleanupTask;
     _systemClock = systemClock;
     _logger      = logger;
 }
        public TextFileLockManager(ILockCleanupTask cleanupTask, ISystemClock systemClock, ILogger <TextFileLockManager> logger, IOptions <TextFileLockManagerOptions> options)
            : base(cleanupTask, systemClock, logger, options.Value)
        {
            _logger       = logger;
            _lockFileName = options.Value.LockFileName;

            AddLocksToCleanupTask();
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="SQLiteLockManager"/> class.
 /// </summary>
 /// <param name="sqliteOptions">The SQLite options</param>
 /// <param name="cleanupTask">The clean-up task for expired locks</param>
 /// <param name="systemClock">The system clock interface</param>
 /// <param name="logger">The logger</param>
 public SQLiteLockManager(
     [NotNull] IOptions <SQLiteLockManagerOptions> sqliteOptions,
     [NotNull] ILockCleanupTask cleanupTask,
     [NotNull] ISystemClock systemClock,
     [NotNull] ILogger <SQLiteLockManager> logger)
     : this(sqliteOptions.Value, cleanupTask, systemClock, logger)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SQLiteLockManager"/> class.
 /// </summary>
 /// <param name="sqliteOptions">The SQLite options</param>
 /// <param name="cleanupTask">The clean-up task for expired locks</param>
 /// <param name="systemClock">The system clock interface</param>
 /// <param name="logger">The logger</param>
 public SQLiteLockManager(
     [NotNull] SQLiteLockManagerOptions sqliteOptions,
     [NotNull] ILockCleanupTask cleanupTask,
     [NotNull] ISystemClock systemClock,
     [NotNull] ILogger <SQLiteLockManager> logger)
     : base(cleanupTask, systemClock, logger, sqliteOptions)
 {
     if (string.IsNullOrEmpty(sqliteOptions.DatabaseFileName))
     {
         throw new ArgumentException("A database file name must be set in the SQLiteLockManager options.");
     }
     EnsureDatabaseExists(sqliteOptions.DatabaseFileName);
     _connection = new sqlitenet.SQLiteConnection(sqliteOptions.DatabaseFileName);
 }
예제 #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="InMemoryLockManager"/> class.
 /// </summary>
 /// <param name="options">The options of the lock manager</param>
 /// <param name="cleanupTask">The clean-up task for expired locks</param>
 /// <param name="systemClock">The system clock interface</param>
 /// <param name="logger">The logger</param>
 public InMemoryLockManager(IOptions <InMemoryLockManagerOptions> options, ILockCleanupTask cleanupTask, ISystemClock systemClock, ILogger <InMemoryLockManager> logger)
     : base(cleanupTask, systemClock, logger, options.Value)
 {
 }