summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2012-06-02 22:26:58 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2012-06-02 22:26:58 +0200
commit4df07172fef440f24945149b2490c0c60e72e72e (patch)
treec082fc5d5319ed5ab77b5b3df4cbaeb7256eb3b4
parent50b9b41e1e8b3012c165ea6a4c383273afe37ac3 (diff)
downloadedoors-ruby-4df07172fef440f24945149b2490c0c60e72e72e.zip
edoors-ruby-4df07172fef440f24945149b2490c0c60e72e72e.tar.gz
set direct routing through action parameter to Door#send_p and Door#send_sys_p
-rw-r--r--lib/iotas/door.rb6
-rw-r--r--lib/iotas/room.rb8
2 files changed, 12 insertions, 2 deletions
diff --git a/lib/iotas/door.rb b/lib/iotas/door.rb
index d2466d0..de6b5a0 100644
--- a/lib/iotas/door.rb
+++ b/lib/iotas/door.rb
@@ -72,14 +72,16 @@ module Iotas
@spin.release_p p
end
#
- def send_p p
+ def send_p p, a=nil
p.init! self
+ p.set_dst! a, self if a
@saved=nil if @saved==p # particle is sent back the data, all is good
@parent.send_p p # daddy will know what to do
end
#
- def send_sys_p p
+ def send_sys_p p, a=nil
p.init! self
+ p.set_dst! a, self if a
@saved=nil if @saved==p # particle is sent back the data, all is good
@parent.send_sys_p p # daddy will know what to do
end
diff --git a/lib/iotas/room.rb b/lib/iotas/room.rb
index f3d0cfa..b32168c 100644
--- a/lib/iotas/room.rb
+++ b/lib/iotas/room.rb
@@ -134,6 +134,10 @@ module Iotas
#
def send_p p
puts " * send_p #{(p.next_dst.nil? ? 'no dst' : p.next_dst)} ..." if @spin.debug_routing
+ if p.dst
+ puts " -> #{p.dst.path}#{Iotas::ACT_SEP}#{p.action}" if @spin.debug_routing
+ return @spin.post_p p
+ end
if p.src.nil?
# do not route orphan particles !!
p.error! Iotas::ERROR_ROUTE_NS, @spin
@@ -156,6 +160,10 @@ module Iotas
#
def send_sys_p p
puts " * send_sys_p #{(p.next_dst.nil? ? 'no dst' : p.next_dst)} ..." if @spin.debug_routing
+ if p.dst
+ puts " -> #{p.dst.path}#{Iotas::ACT_SEP}#{p.action}" if @spin.debug_routing
+ return @spin.post_sys_p p
+ end
if p.next_dst
p.split_dst!
if p.door