class Synapse::Repository::PessimisticLockManager

Implementation of a lock manager that blocks until a lock can be obtained

Public Class Methods

new() click to toggle source

@return [undefined]

# File lib/synapse/repository/pessimistic_lock_manager.rb, line 6
def initialize
  @manager = IdentifierLockManager.new
end

Public Instance Methods

obtain_lock(aggregate_id) click to toggle source

@param [Object] aggregate_id @return [undefined]

# File lib/synapse/repository/pessimistic_lock_manager.rb, line 18
def obtain_lock(aggregate_id)
  @manager.obtain_lock aggregate_id
end
release_lock(aggregate_id) click to toggle source

@param [Object] aggregate_id @return [undefined]

# File lib/synapse/repository/pessimistic_lock_manager.rb, line 24
def release_lock(aggregate_id)
  @manager.release_lock aggregate_id
end
validate_lock(aggregate) click to toggle source

@param [AggregateRoot] aggregate @return [Boolean]

# File lib/synapse/repository/pessimistic_lock_manager.rb, line 12
def validate_lock(aggregate)
  @manager.owned? aggregate.id
end