class Sinatra::RocketIO::Linda::Client::TupleSpace
Attributes
linda[R]
name[R]
Public Class Methods
new(name, linda)
click to toggle source
# File lib/sinatra/rocketio/linda/client.rb, line 37 def initialize(name, linda) @name = name @linda = linda end
Public Instance Methods
list(tuple, &block)
click to toggle source
# File lib/sinatra/rocketio/linda/client.rb, line 88 def list(tuple, &block) unless [Hash, Array].include? tuple.class raise ArgumentError, "tuple must be Array or Hash" end callback_id = create_callback_id if block_given? @linda.io.once "__linda_list_callback_#{callback_id}" do |data| block.call data end @linda.io.push "__linda_list", [@name, tuple, callback_id] end end
read(tuple, &block)
click to toggle source
# File lib/sinatra/rocketio/linda/client.rb, line 49 def read(tuple, &block) unless [Hash, Array].include? tuple.class raise ArgumentError, "tuple must be Array or Hash" end callback_id = create_callback_id if block_given? @linda.io.once "__linda_read_callback_#{callback_id}" do |data| block.call(data['tuple'], TupleInfo.new(data['info'])) end end @linda.io.push "__linda_read", [@name, tuple, callback_id] end
take(tuple, &block)
click to toggle source
# File lib/sinatra/rocketio/linda/client.rb, line 62 def take(tuple, &block) unless [Hash, Array].include? tuple.class raise ArgumentError, "tuple must be Array or Hash" end callback_id = create_callback_id if block_given? @linda.io.once "__linda_take_callback_#{callback_id}" do |data| block.call(data['tuple'], TupleInfo.new(data['info'])) end end @linda.io.push "__linda_take", [@name, tuple, callback_id] end
watch(tuple, &block)
click to toggle source
# File lib/sinatra/rocketio/linda/client.rb, line 75 def watch(tuple, &block) unless [Hash, Array].include? tuple.class raise ArgumentError, "tuple must be Array or Hash" end callback_id = create_callback_id if block_given? @linda.io.on "__linda_watch_callback_#{callback_id}" do |data| block.call(data['tuple'], TupleInfo.new(data['info'])) end end @linda.io.push "__linda_watch", [@name, tuple, callback_id] end
write(tuple, opts={})
click to toggle source
# File lib/sinatra/rocketio/linda/client.rb, line 42 def write(tuple, opts={}) unless [Hash, Array].include? tuple.class raise ArgumentError, "tuple must be Array or Hash" end @linda.io.push "__linda_write", [@name, tuple, opts] end
Private Instance Methods
create_callback_id()
click to toggle source
# File lib/sinatra/rocketio/linda/client.rb, line 102 def create_callback_id "#{Time.now.to_i}#{Time.now.usec}_#{(rand*1000000).to_i}" end