diff options
-rw-r--r-- | lib/evendoors.rb | 3 | ||||
-rw-r--r-- | lib/evendoors/board.rb | 2 | ||||
-rw-r--r-- | lib/evendoors/door.rb | 8 | ||||
-rw-r--r-- | lib/evendoors/room.rb | 32 | ||||
-rw-r--r-- | lib/evendoors/space.rb | 26 | ||||
-rw-r--r-- | lib/evendoors/spin.rb (renamed from lib/evendoors/twirl.rb) | 21 | ||||
-rw-r--r-- | spec/evendoors_spec.rb | 202 | ||||
-rw-r--r-- | test/test_evendoors.rb | 28 |
8 files changed, 152 insertions, 170 deletions
diff --git a/lib/evendoors.rb b/lib/evendoors.rb index bab656e..0a9a941 100644 --- a/lib/evendoors.rb +++ b/lib/evendoors.rb @@ -33,9 +33,8 @@ end # require 'evendoors/particle' require 'evendoors/spot' -require 'evendoors/twirl' require 'evendoors/room' -require 'evendoors/space' +require 'evendoors/spin' require 'evendoors/door' require 'evendoors/board' require 'evendoors/link' diff --git a/lib/evendoors/board.rb b/lib/evendoors/board.rb index 3cc2240..36ca332 100644 --- a/lib/evendoors/board.rb +++ b/lib/evendoors/board.rb @@ -23,7 +23,7 @@ module EvenDoors @saved = p receive_p p if not @saved.nil? - puts "#{path} didn't give that particle back #{p}" if EvenDoors::Twirl.debug_errors + puts "#{path} didn't give that particle back #{p}" if EvenDoors::Spin.debug_errors puts "\t#{p.data EvenDoors::ERROR_FIELD}" if p.action==EvenDoors::ACT_ERROR release_p @saved @saved = nil diff --git a/lib/evendoors/door.rb b/lib/evendoors/door.rb index 6118a27..0fe3867 100644 --- a/lib/evendoors/door.rb +++ b/lib/evendoors/door.rb @@ -13,14 +13,14 @@ module EvenDoors end # def require_p p_kls - p = EvenDoors::Twirl.require_p p_kls + p = EvenDoors::Spin.require_p p_kls p.src = self p end # def release_p p @saved=nil if @saved==p # particle is released, all is good - EvenDoors::Twirl.release_p p + EvenDoors::Spin.release_p p end # def process_p p @@ -28,7 +28,7 @@ module EvenDoors @saved = p receive_p p if not @saved.nil? - puts "#{path} didn't give that particle back #{p}" if EvenDoors::Twirl.debug_errors + puts "#{path} didn't give that particle back #{p}" if EvenDoors::Spin.debug_errors puts "\t#{p.data EvenDoors::ERROR_FIELD}" if p.action==EvenDoors::ACT_ERROR release_p @saved @saved = nil @@ -37,7 +37,7 @@ module EvenDoors # def process_sys_p p # nothing todo with it now - EvenDoors::Twirl.release_p p + EvenDoors::Spin.release_p p end # def send_p p diff --git a/lib/evendoors/room.rb b/lib/evendoors/room.rb index bc9ee63..d06c00f 100644 --- a/lib/evendoors/room.rb +++ b/lib/evendoors/room.rb @@ -28,22 +28,22 @@ module EvenDoors end # def start! - puts " * start #{path}" if EvenDoors::Twirl.debug_routing + puts " * start #{path}" if EvenDoors::Spin.debug_routing @spots.values.each do |spot| spot.start! if spot.respond_to? :start! end end # def stop! - puts " * stop #{path}" if EvenDoors::Twirl.debug_routing + puts " * stop #{path}" if EvenDoors::Spin.debug_routing @spots.values.each do |spot| spot.stop! if spot.respond_to? :stop! end end # - def space - return @space if @space - @space = ( @parent.nil? ? self : @parent.space ) + def spin + return @spin if @spin + @spin = ( @parent.nil? ? self : @parent.spin ) end # def try_links p - puts " -> try_links ..." if EvenDoors::Twirl.debug_routing + puts " -> try_links ..." if EvenDoors::Spin.debug_routing links = @links[p.src.name] return false if links.nil? pending_link = nil @@ -54,7 +54,7 @@ module EvenDoors if apply_link or (p.link_value==link.cond_value) # link matches ! if pending_link - p2 = EvenDoors::Twirl.require_p p.class + p2 = EvenDoors::Spin.require_p p.class p2.clone_data p p2.apply_link! link send_p p2 @@ -87,10 +87,10 @@ module EvenDoors end # def send_p p - puts " * send_p #{(p.next_dst.nil? ? 'no dst' : p.next_dst)} ..." if EvenDoors::Twirl.debug_routing + puts " * send_p #{(p.next_dst.nil? ? 'no dst' : p.next_dst)} ..." if EvenDoors::Spin.debug_routing if p.src.nil? # do not route orphan particles !! - p.error! EvenDoors::ERROR_ROUTE_NS, space + p.error! EvenDoors::ERROR_ROUTE_NS, spin elsif p.next_dst p.split_dst! if p.door @@ -104,31 +104,31 @@ module EvenDoors else p.error! EvenDoors::ERROR_ROUTE_NDNL end - puts " -> #{p.dst.path}#{EvenDoors::ACT_SEP}#{p.action}" if EvenDoors::Twirl.debug_routing - EvenDoors::Twirl.send_p p + puts " -> #{p.dst.path}#{EvenDoors::ACT_SEP}#{p.action}" if EvenDoors::Spin.debug_routing + EvenDoors::Spin.send_p p end # def send_sys_p p - puts " * send_sys_p #{(p.next_dst.nil? ? 'no dst' : p.next_dst)} ..." if EvenDoors::Twirl.debug_routing + puts " * send_sys_p #{(p.next_dst.nil? ? 'no dst' : p.next_dst)} ..." if EvenDoors::Spin.debug_routing if p.next_dst p.split_dst! if p.door route_p p elsif p.action - p.dst_routed! space + p.dst_routed! spin end else p.error! EvenDoors::ERROR_ROUTE_SND end - puts " -> #{p.dst.path}#{EvenDoors::ACT_SEP}#{p.action}" if EvenDoors::Twirl.debug_routing - EvenDoors::Twirl.send_sys_p p + puts " -> #{p.dst.path}#{EvenDoors::ACT_SEP}#{p.action}" if EvenDoors::Spin.debug_routing + EvenDoors::Spin.send_sys_p p end # def process_sys_p p if p.action==EvenDoors::SYS_ACT_ADD_LINK add_link EvenDoors::Link.from_particle_data p end - EvenDoors::Twirl.release_p p + EvenDoors::Spin.release_p p end # end diff --git a/lib/evendoors/space.rb b/lib/evendoors/space.rb deleted file mode 100644 index da13065..0000000 --- a/lib/evendoors/space.rb +++ /dev/null @@ -1,26 +0,0 @@ -#! /usr/bin/env ruby -# -*- coding: UTF-8 -*- - -# -module EvenDoors - # - class Space < Room - # - def initialize n, args={} - super n, nil - EvenDoors::Twirl.debug_errors = args[:debug_errors] || false - EvenDoors::Twirl.debug_routing = args[:debug_routing] || false - end - # - def twirl! - @spots.values.each do |spot| spot.start! end - EvenDoors::Twirl.run = true - EvenDoors::Twirl.twirl! - @spots.values.each do |spot| spot.stop! end - end - # - end - # -end -# -# EOF diff --git a/lib/evendoors/twirl.rb b/lib/evendoors/spin.rb index cb01618..31904e8 100644 --- a/lib/evendoors/twirl.rb +++ b/lib/evendoors/spin.rb @@ -4,15 +4,15 @@ # module EvenDoors # - class Twirl + class Spin < Room # - @debug_routing = false - @debug_errors = false @pool = {} # per particle class free list @sys_fifo = [] # system particles fifo list @app_fifo = [] # application particles fifo list # @run = false + @debug_routing = false + @debug_errors = false # class << self # @@ -43,7 +43,7 @@ module EvenDoors @sys_fifo << p end # - def twirl! + def spin! while @run and (@sys_fifo.length>0 or @app_fifo.length>0) while @run and @sys_fifo.length>0 p = @sys_fifo.shift @@ -64,6 +64,19 @@ module EvenDoors # end # + def initialize n, args={} + super n, nil + self.class.debug_errors = args[:debug_errors] || false + self.class.debug_routing = args[:debug_routing] || false + end + # + def spin! + @spots.values.each do |spot| spot.start! end + self.class.run = true + self.class.spin! + @spots.values.each do |spot| spot.stop! end + end + # end # end diff --git a/spec/evendoors_spec.rb b/spec/evendoors_spec.rb index 349497d..502abf7 100644 --- a/spec/evendoors_spec.rb +++ b/spec/evendoors_spec.rb @@ -48,60 +48,6 @@ describe EvenDoors do expect{ EvenDoors }.not_to raise_error(NameError) end # - describe EvenDoors::Twirl do - # - class MyP < EvenDoors::Particle; end - # - it "should correctly manage Particles pool" do - p0 = EvenDoors::Twirl.require_p EvenDoors::Particle - p1 = EvenDoors::Twirl.require_p EvenDoors::Particle - (p0===p1).should be_false - EvenDoors::Twirl.release_p p0 - p2 = EvenDoors::Twirl.require_p EvenDoors::Particle - (p0===p2).should be_true - end - # - it "should correctly manage different Particles classes" do - p0 = EvenDoors::Twirl.require_p EvenDoors::Particle - p1 = EvenDoors::Twirl.require_p EvenDoors::Particle - (p0===p1).should be_false - EvenDoors::Twirl.release_p p0 - p2 = EvenDoors::Twirl.require_p MyP - p3 = EvenDoors::Twirl.require_p MyP - (p2===p3).should be_false - EvenDoors::Twirl.release_p p2 - p4 = EvenDoors::Twirl.require_p MyP - (p2===p4).should be_true - end - # - it "should correctly release merged data" do - p0 = EvenDoors::Twirl.require_p EvenDoors::Particle - p1 = EvenDoors::Twirl.require_p EvenDoors::Particle - (p0===p1).should be_false - p0.merge! p1 - EvenDoors::Twirl.release_p p0 - p2 = EvenDoors::Twirl.require_p EvenDoors::Particle - (p2===p0).should be_true - p3 = EvenDoors::Twirl.require_p EvenDoors::Particle - (p3===p1).should be_true - end - # - it "send_p send_sys_p twirl!" do - f = Fake.new - p0 = EvenDoors::Twirl.require_p EvenDoors::Particle - p0.dst_routed! f - p1 = EvenDoors::Twirl.require_p EvenDoors::Particle - p1.dst_routed! f - EvenDoors::Twirl.send_p p0 - EvenDoors::Twirl.send_sys_p p1 - EvenDoors::Twirl.run = true - EvenDoors::Twirl.twirl! - f.p.should be p0 - f.sp.should be p1 - end - # - end - # describe EvenDoors::Particle do # it "payload manipulation" do @@ -286,7 +232,7 @@ describe EvenDoors do describe EvenDoors::Link do # it "from particle data" do - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p.set_data EvenDoors::LNK_SRC, 'input1' p.set_data EvenDoors::LNK_DSTS, 'concat1?follow,output1' p.set_data EvenDoors::LNK_FIELDS, 'f0,f2' @@ -317,22 +263,72 @@ describe EvenDoors do # end # - describe EvenDoors::Space do + describe EvenDoors::Spin do + # + class MyP < EvenDoors::Particle; end + # + it "should correctly manage Particles pool" do + p0 = EvenDoors::Spin.require_p EvenDoors::Particle + p1 = EvenDoors::Spin.require_p EvenDoors::Particle + (p0===p1).should be_false + EvenDoors::Spin.release_p p0 + p2 = EvenDoors::Spin.require_p EvenDoors::Particle + (p0===p2).should be_true + end + # + it "should correctly manage different Particles classes" do + p0 = EvenDoors::Spin.require_p EvenDoors::Particle + p1 = EvenDoors::Spin.require_p EvenDoors::Particle + (p0===p1).should be_false + EvenDoors::Spin.release_p p0 + p2 = EvenDoors::Spin.require_p MyP + p3 = EvenDoors::Spin.require_p MyP + (p2===p3).should be_false + EvenDoors::Spin.release_p p2 + p4 = EvenDoors::Spin.require_p MyP + (p2===p4).should be_true + end + # + it "should correctly release merged data" do + p0 = EvenDoors::Spin.require_p EvenDoors::Particle + p1 = EvenDoors::Spin.require_p EvenDoors::Particle + (p0===p1).should be_false + p0.merge! p1 + EvenDoors::Spin.release_p p0 + p2 = EvenDoors::Spin.require_p EvenDoors::Particle + (p2===p0).should be_true + p3 = EvenDoors::Spin.require_p EvenDoors::Particle + (p3===p1).should be_true + end + # + it "send_p send_sys_p spin!" do + f = Fake.new + p0 = EvenDoors::Spin.require_p EvenDoors::Particle + p0.dst_routed! f + p1 = EvenDoors::Spin.require_p EvenDoors::Particle + p1.dst_routed! f + EvenDoors::Spin.send_p p0 + EvenDoors::Spin.send_sys_p p1 + EvenDoors::Spin.run = true + EvenDoors::Spin.spin! + f.p.should be p0 + f.sp.should be p1 + end # it "does really little for now" do - EvenDoors::Twirl.debug_routing.should be false - space = EvenDoors::Space.new 'dom0', :debug_routing=>true - EvenDoors::Twirl.debug_routing.should be true - space.twirl! - EvenDoors::Twirl.debug_routing = false - EvenDoors::Twirl.debug_routing.should be false + EvenDoors::Spin.debug_routing.should be false + spin = EvenDoors::Spin.new 'dom0', :debug_routing=>true + EvenDoors::Spin.debug_routing.should be true + spin.spin! + EvenDoors::Spin.debug_routing = false + EvenDoors::Spin.debug_routing.should be false # - EvenDoors::Twirl.debug_errors.should be false - space = EvenDoors::Space.new 'dom0', :debug_errors=>true - EvenDoors::Twirl.debug_errors.should be true - space.twirl! - EvenDoors::Twirl.debug_errors = false - EvenDoors::Twirl.debug_errors.should be false + EvenDoors::Spin.debug_errors.should be false + spin = EvenDoors::Spin.new 'dom0', :debug_errors=>true + EvenDoors::Spin.debug_errors.should be true + spin.spin! + EvenDoors::Spin.debug_errors = false + EvenDoors::Spin.debug_errors.should be false end # end @@ -369,7 +365,7 @@ describe EvenDoors do end f = Fake.new d0 = Door0.new 'door0', f - p0 = EvenDoors::Twirl.require_p EvenDoors::Particle + p0 = EvenDoors::Spin.require_p EvenDoors::Particle # p0.set_dst! 'SEND' p0.split_dst! @@ -384,17 +380,17 @@ describe EvenDoors do p0.set_dst! 'RELEASE' p0.split_dst! d0.process_p p0 - p1 = EvenDoors::Twirl.require_p EvenDoors::Particle + p1 = EvenDoors::Spin.require_p EvenDoors::Particle p1.should be p0 # p0.set_dst! 'LOST' p0.split_dst! d0.process_p p0 - p1 = EvenDoors::Twirl.require_p EvenDoors::Particle + p1 = EvenDoors::Spin.require_p EvenDoors::Particle p1.should be p0 # d0.process_sys_p p0 - p1 = EvenDoors::Twirl.require_p EvenDoors::Particle + p1 = EvenDoors::Spin.require_p EvenDoors::Particle p1.should be p0 end # @@ -492,32 +488,32 @@ describe EvenDoors do d0.stop.should be_true end # - it "parent and space should be ok" do - s = EvenDoors::Space.new 'space' + it "parent and spin should be ok" do + s = EvenDoors::Spin.new 'dom0' r0 = EvenDoors::Room.new 'r0', s r1 = EvenDoors::Room.new 'r0', r0 r2 = EvenDoors::Room.new 'r0', r1 r2.parent.should be r1 r1.parent.should be r0 r0.parent.should be s - r0.space.should be s - r1.space.should be s - r2.space.should be s + r0.spin.should be s + r1.spin.should be s + r2.spin.should be s end # it "route error: no source" do room = EvenDoors::Room.new 'room', nil - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p.set_dst! 'get', 'room/door' room.send_p p p.action.should eql EvenDoors::ACT_ERROR p[EvenDoors::ERROR_FIELD].should eql EvenDoors::ERROR_ROUTE_NS - p.dst.should be room.space + p.dst.should be room.spin end # it "route error: no destination no links" do room = EvenDoors::Room.new 'room', nil - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p.src = Fake.new room.send_p p p.action.should eql EvenDoors::ACT_ERROR @@ -528,7 +524,7 @@ describe EvenDoors do it "route error: top room, wrong room" do room0 = EvenDoors::Room.new 'room0', nil room1 = EvenDoors::Room.new 'room1', room0 - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p.src = Fake.new p.set_dst! 'get', 'noroom/door' room1.send_p p @@ -539,7 +535,7 @@ describe EvenDoors do # it "route error: right room, wrong door" do room = EvenDoors::Room.new 'room', nil - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p.src = Fake.new p.set_dst! 'get', 'room/nodoor' room.send_p p @@ -551,7 +547,7 @@ describe EvenDoors do it "route error: right room, wrong door (bubble up)" do room0 = EvenDoors::Room.new 'room0', nil room1 = EvenDoors::Room.new 'room1', room0 - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p.src = Fake.new p.set_dst! 'get', 'room0/nodoor' room1.send_p p @@ -563,7 +559,7 @@ describe EvenDoors do it "routing success (direct)" do room0 = EvenDoors::Room.new 'room0', nil door0 = EvenDoors::Door.new 'door0', room0 - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p.src = Fake.new p.set_dst! 'get', 'door0' room0.send_p p @@ -575,7 +571,7 @@ describe EvenDoors do room0 = EvenDoors::Room.new 'room0', nil room1 = EvenDoors::Room.new 'room1', room0 door0 = EvenDoors::Door.new 'door0', room0 - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p.src = Fake.new p.set_dst! 'get', 'room0/door0' room1.send_p p @@ -589,7 +585,7 @@ describe EvenDoors do room2 = EvenDoors::Room.new 'room2', room0 room3 = EvenDoors::Room.new 'room3', room2 door0 = EvenDoors::Door.new 'door01', room1 - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p.src = Fake.new p.set_dst! 'get', 'room0/room1/door01' room3.send_p p @@ -601,7 +597,7 @@ describe EvenDoors do it "routing success: no door name -> src" do room0 = EvenDoors::Room.new 'room0', nil door0 = EvenDoors::Door.new 'door0', room0 - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p.src = door0 p.set_dst! 'get' room0.send_p p @@ -614,7 +610,7 @@ describe EvenDoors do door0 = EvenDoors::Door.new 'door0', room0 door1 = EvenDoors::Door.new 'door1', room0 room0.add_link EvenDoors::Link.new('door0', 'door1') - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle door0.send_p p p.action.should be_nil p.dst.should be door1 @@ -625,7 +621,7 @@ describe EvenDoors do door0 = EvenDoors::Door.new 'door0', room0 door1 = EvenDoors::Door.new 'door1', room0 room0.add_link EvenDoors::Link.new('door0', 'door1', 'fields', 'f0,f1', 'v0v1') - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p['f0']='v0' p['f1']='v1' door0.send_p p @@ -647,13 +643,13 @@ describe EvenDoors do door1 = Out.new 'door1', room0 room0.add_link EvenDoors::Link.new('door0', 'door1') room0.add_link EvenDoors::Link.new('door0', 'door1', 'fields', 'f0,f1', 'v0v1') - p = EvenDoors::Twirl.require_p EvenDoors::Particle - EvenDoors::Twirl.clear! + p = EvenDoors::Spin.require_p EvenDoors::Particle + EvenDoors::Spin.clear! p['f0']='v0' p['f1']='v1' door0.send_p p - EvenDoors::Twirl.run = true - EvenDoors::Twirl.twirl! + EvenDoors::Spin.run = true + EvenDoors::Spin.spin! door1.ps.length.should eql 2 p0 = door1.ps[0] p0.action.should be_nil @@ -668,7 +664,7 @@ describe EvenDoors do # it "system route error: system no destination" do room0 = EvenDoors::Room.new 'room0', nil - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle room0.send_sys_p p p.action.should eql EvenDoors::ACT_ERROR p[EvenDoors::ERROR_FIELD].should eql EvenDoors::ERROR_ROUTE_SND @@ -676,17 +672,17 @@ describe EvenDoors do # it "system routing success: action only" do room0 = EvenDoors::Room.new 'room0', nil - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p.set_dst! EvenDoors::SYS_ACT_ADD_LINK room0.send_sys_p p p.action.should eql EvenDoors::SYS_ACT_ADD_LINK - p.dst.should be room0.space + p.dst.should be room0.spin end # it "system routing success" do room0 = EvenDoors::Room.new 'room0', nil door0 = EvenDoors::Door.new 'door0', room0 - p = EvenDoors::Twirl.require_p EvenDoors::Particle + p = EvenDoors::Spin.require_p EvenDoors::Particle p.set_dst! EvenDoors::SYS_ACT_ADD_LINK, 'room0/door0' room0.send_sys_p p p.action.should eql EvenDoors::SYS_ACT_ADD_LINK @@ -694,12 +690,12 @@ describe EvenDoors do end # it "SYS_ACT_ADD_LINK should work" do - EvenDoors::Twirl.clear! - space = EvenDoors::Space.new 'space' # needed to be able to route to door - room0 = EvenDoors::Room.new 'room0', space + EvenDoors::Spin.clear! + spin = EvenDoors::Spin.new 'dom0' # needed to be able to route to door + room0 = EvenDoors::Room.new 'room0', spin door0 = EvenDoors::Door.new 'door0', room0 door1 = EvenDoors::Door.new 'door1', room0 - p0 = EvenDoors::Twirl.require_p EvenDoors::Particle + p0 = EvenDoors::Spin.require_p EvenDoors::Particle p0.set_data EvenDoors::LNK_SRC, 'door0' p0.set_data EvenDoors::LNK_DSTS, 'door1' p0.set_data EvenDoors::LNK_FIELDS, 'fields' @@ -707,8 +703,8 @@ describe EvenDoors do p0.set_data EvenDoors::LNK_CONDV, 'v0v1' p0.set_dst! EvenDoors::SYS_ACT_ADD_LINK, room0.path room0.send_sys_p p0 - space.twirl! - p = EvenDoors::Twirl.require_p EvenDoors::Particle + spin.spin! + p = EvenDoors::Spin.require_p EvenDoors::Particle p['f0']='v0' p['f1']='v1' door0.send_p p diff --git a/test/test_evendoors.rb b/test/test_evendoors.rb index 2e8a732..60cd49d 100644 --- a/test/test_evendoors.rb +++ b/test/test_evendoors.rb @@ -7,7 +7,7 @@ require 'evendoors' class InputDoor < EvenDoors::Door # def start! - puts " * start #{self.class.name} #{@path}" if EvenDoors::Twirl.debug_routing + puts " * start #{self.class.name} #{@path}" if EvenDoors::Spin.debug_routing @lines = [ "#{name} says : hello", "world ( from #{path} )" ] p = require_p EvenDoors::Particle p.set_dst! EvenDoors::ACT_GET, path @@ -15,11 +15,11 @@ class InputDoor < EvenDoors::Door end # # def stop! - # puts " * stop #{self.class.name} #{@path}" if EvenDoors::Twirl.debug_routing + # puts " * stop #{self.class.name} #{@path}" if EvenDoors::Spin.debug_routing # end # def receive_p p - puts " * #{self.class.name} receive_p : #{p.action}" if EvenDoors::Twirl.debug_routing + puts " * #{self.class.name} receive_p : #{p.action}" if EvenDoors::Spin.debug_routing if p.action==EvenDoors::ACT_GET p.reset! p.set_data 'line', @lines.shift @@ -43,7 +43,7 @@ end class ConcatBoard < EvenDoors::Board # def receive_p p - puts " * #{self.class.name} receive_p : #{p.action}" if EvenDoors::Twirl.debug_routing + puts " * #{self.class.name} receive_p : #{p.action}" if EvenDoors::Spin.debug_routing if p.action==EvenDoors::ACT_ERROR # else @@ -63,28 +63,28 @@ end class OutputDoor < EvenDoors::Door # # def start! - # puts " * start #{self.class.name} #{@path}" if EvenDoors::Twirl.debug_routing + # puts " * start #{self.class.name} #{@path}" if EvenDoors::Spin.debug_routing # end # # def stop! - # puts " * stop #{self.class.name} #{@path}" if EvenDoors::Twirl.debug_routing + # puts " * stop #{self.class.name} #{@path}" if EvenDoors::Spin.debug_routing # end # def receive_p p - if EvenDoors::Twirl.debug_routing + if EvenDoors::Spin.debug_routing puts " * #{self.class.name} receive_p : #{@path} : DATA #{p.get_data('line')}" else puts p.get_data 'line' end - # we do nothing EvenDoors::Twirl.process will detect it and release it + # we do nothing EvenDoors::Spin.process will detect it and release it end # end # -space = EvenDoors::Space.new 'space', :debug_routing=>false, :debug_errors=>true +spin = EvenDoors::Spin.new 'dom0', :debug_routing=>false, :debug_errors=>true # -room0 = EvenDoors::Room.new 'room0', space -room1 = space.add_spot EvenDoors::Room.new 'room1' +room0 = EvenDoors::Room.new 'room0', spin +room1 = spin.add_spot EvenDoors::Room.new 'room1' # input0 = room0.add_spot InputDoor.new 'input0' output0 = room0.add_spot OutputDoor.new 'output0' @@ -97,16 +97,16 @@ room1.add_spot ConcatBoard.new 'concat1' # room0.add_link EvenDoors::Link.new('input0', 'output0', nil, nil, nil) # -p0 = EvenDoors::Twirl.require_p EvenDoors::Particle +p0 = EvenDoors::Spin.require_p EvenDoors::Particle p0.set_data EvenDoors::LNK_SRC, 'input1' p0.set_data EvenDoors::LNK_DSTS, 'concat1?follow,output1' p0.set_data EvenDoors::LNK_FIELDS, 'f0,f2' p0.set_data EvenDoors::LNK_CONDF, 'f0,f1,f2' p0.set_data EvenDoors::LNK_CONDV, 'v0v1v2' p0.set_dst! EvenDoors::SYS_ACT_ADD_LINK, room1.path -room1.send_sys_p p0 # send_sys_p -> room0 -> space -> room1 -> input1 +room1.send_sys_p p0 # send_sys_p -> room0 -> spin -> room1 -> input1 # -space.twirl! +spin.spin! # # # EOF |