Skip to content

Commit

Permalink
Actor works by receiving and deserializing Cucub::Message
Browse files Browse the repository at this point in the history
  • Loading branch information
Fernando Alonso committed Nov 19, 2012
1 parent e442404 commit 9a99015
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 28 deletions.
22 changes: 10 additions & 12 deletions lib/actor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,33 +18,32 @@ def set_fiber
msg = args.shift
$stdout.puts msg.inspect

message = read_message(msg[1])
message = read_message(msg)
play message

#if msg == "exit"
# self.kill
# origin.yield
#end

# play

origin.transfer
end
}
end

def read_message(message_txt)
message = {}
message[:action] = message_txt.split(";")[0]
message[:params] = message_txt.split(";")[1].split(",") if message_txt.split(";")[1]
def read_message(message)
$stdout.puts "Incoming message: #{message.inspect}"
message.unlock(:msgpack)
$stdout.puts "Incoming message, unlocked: #{message.inspect}"

message
end

def play(message) #(method_name, *args)
if message.has_key?(:params) #args
@cucub_object.send(message[:action], *message[:params])
def play(message)
if message.additionals
@cucub_object.send(message.action.to_sym, *message.additionals)
else
@cucub_object.send(message[:action])
@cucub_object.send(message.action.to_sym)
end
end

Expand All @@ -55,7 +54,6 @@ def wire(msg)
def kill
$stdout.puts "Suiciding me."
@state = :dead
#@fiber.resume
end

def fiber_state
Expand Down
20 changes: 4 additions & 16 deletions lib/reactor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ def run
end

def plug_actors
#@actor = Cucub::Actor.new
#plug_actor(@actor)

Cucub::ObjectsHub.instance.objects.each do |object|
actor = Cucub::Actor.new(object)
plug_actor(actor)
Expand All @@ -36,11 +33,8 @@ def container

@inbound.receive { |msg|
$stdout.puts "received: #{msg.inspect}"
wrap, wire_message = unwrap_message(msg.last)
$stdout.puts "Wrap: #{wrap.inspect}"
$stdout.puts "Wire: #{wire_message.inspect}"
msg[msg.size - 1] = [wrap, wire_message]

msg[msg.size - 1] = unwrap_message(msg.last)

@actors.first.wire(msg)

$stdout.puts "\n"
Expand All @@ -49,14 +43,8 @@ def container
end

def unwrap_message(message)
#unserialized, serialized = message.split("\n")

# encrypted;oid | action;param1,param2
wrap, wire_message_txt = message.split("|")

# unencrypt, deserialize wire_message_txt

[wrap, wire_message_txt]
unserialized = Cucub::Message.parse(message)
unserialized
end

def plug_actor(actor)
Expand Down

0 comments on commit 9a99015

Please sign in to comment.