Class: DCell::FutureProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/dcell/future_proxy.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(mailbox_id, node_id, node_addr) ⇒ FutureProxy

Returns a new instance of FutureProxy.



3
4
5
6
7
# File 'lib/dcell/future_proxy.rb', line 3

def initialize(mailbox_id,node_id,node_addr)
  @mailbox_id = mailbox_id
  @node_id = node_id
  @node_addr = node_addr
end

Class Method Details

._load(string) ⇒ Object

Loader for custom marshal format



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/dcell/future_proxy.rb', line 20

def self._load(string)
  mailbox_id, node_id, node_addr = string.split("@")

  if node_id == DCell.id
    future = Router.find(mailbox_id)
    raise "tried to unmarshal dead Celluloid::Future: #{mailbox_id}" unless future
    future
  else
    new(mailbox_id, node_id, node_addr)
  end
end

Instance Method Details

#<<(message) ⇒ Object



9
10
11
12
13
# File 'lib/dcell/future_proxy.rb', line 9

def <<(message)
  node = Node[@node_id]
  node = Node.new(@node_id, @node_addr) unless node
  node.async.send_message Message::Relay.new(self, message)
end

#_dump(level) ⇒ Object



15
16
17
# File 'lib/dcell/future_proxy.rb', line 15

def _dump(level)
  "#{@mailbox_id}@#{@node_id}@#{@node_addr}"
end