class DpStmMap::ClientHandler
Public Class Methods
new(client_transport, transaction_handler)
click to toggle source
# File lib/dp_stm_map/Manager.rb, line 287 def initialize client_transport, transaction_handler @client_transport=client_transport @transaction_handler=transaction_handler @mutex=Mutex.new end
Public Instance Methods
handle(message)
click to toggle source
# File lib/dp_stm_map/Manager.rb, line 293 def handle message @mutex.synchronize do if TransactionMessage === message @client_transport.send_message message end if ClientTransactionMessage === message begin sequence=@transaction_handler.apply_transaction message.transitions, message.new_content @client_transport.send_message ClientTransactionSuccessfulMessage.new message.transaction_id, sequence rescue StaleTransactionError => e @client_transport.send_message ClientTransactionFailedMessage.new message.transaction_id, e.message end end end end