weel 1.99.98 → 1.99.101

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9e82bd07a1a46e7456badf0f68f51b61ce8185c4292590e2c3113e3dcef9b23b
4
- data.tar.gz: a8e5dc3301a874267a5742395816501d778c2b7ccd934590c55e28410c34994e
3
+ metadata.gz: 030dcffc555d0badc6c5c4a22538562c6a2f893b08dbccd48b7b9c5553810e10
4
+ data.tar.gz: f368fadc1a33b23e20216f01f329a28faac6dacdb32b928186aa3b4e18a636e4
5
5
  SHA512:
6
- metadata.gz: 8b37432797796439fcff05c476d09f1c3f7ee388f01a83e593c9db8fcb7bc57f413f5809f0a48c31b2ba04f146928ec236a87e6e5e1ca78a487c7eccbfcb82a2
7
- data.tar.gz: be8e00b7a57362406dfd61d9c84d53ad2451f7219c535c0a2e4562eedd527dba6ca50c32a735e8d898e959eeb6ac9e120ab9e6507f476dfebe9e96cbaa22d60f
6
+ metadata.gz: c2eb9d5daca03086f6b2029fe20a334fab264b1f145b91261027ff7bd6e546c77611709721a074d0e3f7348b48558fa144228fe85f97f9cf3b50010035058451
7
+ data.tar.gz: 28d6afad61ba96bbf89b23cbfe0c7ddfb276c25abc05ef280b6d6a1a5c93448a6edff9bcc6be68aeba9ee4ead0db7345cb681b07ced26e3ca84930b0a73bcfa2
data/lib/weel.rb CHANGED
@@ -20,13 +20,14 @@ require 'securerandom'
20
20
  class WEEL
21
21
  def initialize(*args)# {{{
22
22
  @dslr = DSLRealization.new
23
- @dslr.__weel_handlerwrapper_args = args
23
+ @dslr.__weel_connectionwrapper_args = args
24
24
 
25
25
  initialize_search if methods.include?(:initialize_search)
26
26
  initialize_data if methods.include?(:initialize_data)
27
27
  initialize_endpoints if methods.include?(:initialize_endpoints)
28
- initialize_handlerwrapper if methods.include?(:initialize_handlerwrapper)
28
+ initialize_connectionwrapper if methods.include?(:initialize_connectionwrapper)
29
29
  initialize_control if methods.include?(:initialize_control)
30
+ initialize_flow_data if methods.include?(:initialize_flow_data)
30
31
  end # }}}
31
32
 
32
33
  module Signal # {{{
@@ -196,8 +197,9 @@ class WEEL
196
197
  @message = message
197
198
  end
198
199
  def nudge!
199
- @nudge.clear
200
- @nudge.push(nil)
200
+ 1.upto(@nudge.num_waiting) do
201
+ @nudge.push(nil)
202
+ end
201
203
  end
202
204
  def wait_until_nudged!
203
205
  @nudge.pop
@@ -237,11 +239,11 @@ class WEEL
237
239
  end
238
240
  end # }}}
239
241
 
240
- class HandlerWrapperBase # {{{
242
+ class ConnectionWrapperBase # {{{
241
243
  def self::loop_guard(arguments,lid,count); false; end
242
244
  def self::inform_state_change(arguments,newstate); end
243
245
  def self::inform_syntax_error(arguments,err,code); end
244
- def self::inform_handlerwrapper_error(arguments,err); end
246
+ def self::inform_connectionwrapper_error(arguments,err); end
245
247
  def self::inform_position_change(arguments,ipc={}); end
246
248
 
247
249
  def initialize(arguments,position=nil,continue=nil); end
@@ -353,19 +355,21 @@ class WEEL
353
355
  end
354
356
  end
355
357
  end # }}}
356
- def self::handlerwrapper(aClassname, *args)# {{{
357
- define_method :initialize_handlerwrapper do
358
- self.handlerwrapper = aClassname
359
- self.handlerwrapper_args = args unless args.empty?
358
+ def self::connectionwrapper(aClassname, *args)# {{{
359
+ define_method :initialize_connectionwrapper do
360
+ self.connectionwrapper = aClassname
361
+ self.connectionwrapper_args = args unless args.empty?
360
362
  end
361
363
  end # }}}
362
364
  def self::control(flow, &block)# {{{
363
- @@__weel_control_block = block
364
365
  define_method :initialize_control do
365
- self.description = @@__weel_control_block
366
+ self.description = block
366
367
  end
367
368
  end # }}}
368
- def self::flow # {{{
369
+ def self::flow(flow_data=nil) # {{{
370
+ define_method :initialize_flow_data do
371
+ self.flow_data = flow_data
372
+ end if flow_data
369
373
  end #}}}
370
374
 
371
375
  class DSLRealization # {{{
@@ -375,14 +379,14 @@ class WEEL
375
379
  @__weel_main = nil
376
380
  @__weel_data ||= Hash.new
377
381
  @__weel_endpoints ||= Hash.new
378
- @__weel_handlerwrapper = HandlerWrapperBase
379
- @__weel_handlerwrapper_args = []
382
+ @__weel_connectionwrapper = ConnectionWrapperBase
383
+ @__weel_connectionwrapper_args = []
380
384
  @__weel_state = :ready
381
385
  @__weel_status = Status.new(0,"undefined")
382
386
  @__weel_replay = false
383
387
  @__weel_sim = -1
384
388
  end #}}}
385
- attr_accessor :__weel_search_positions, :__weel_positions, :__weel_main, :__weel_data, :__weel_endpoints, :__weel_handlerwrapper, :__weel_handlerwrapper_args, :__weel_replay
389
+ attr_accessor :__weel_search_positions, :__weel_positions, :__weel_main, :__weel_data, :__weel_endpoints, :__weel_connectionwrapper, :__weel_connectionwrapper_args, :__weel_replay
386
390
  attr_reader :__weel_state, :__weel_status
387
391
 
388
392
  # DSL-Constructs for atomic calls to external services (calls) and pure context manipulations (manipulate).
@@ -483,15 +487,15 @@ class WEEL
483
487
  Thread.current[:start_event].wait unless self.__weel_state == :stopping || self.__weel_state == :stopped || self.__weel_state == :finishing
484
488
 
485
489
  if __weel_sim
486
- handlerwrapper = @__weel_handlerwrapper.new @__weel_handlerwrapper_args
487
- handlerwrapper.simulate(:parallel_branch,:start,Thread.current[:branch_sim_pos],current_branch_sim_pos)
490
+ connectionwrapper = @__weel_connectionwrapper.new @__weel_connectionwrapper_args
491
+ connectionwrapper.simulate(:parallel_branch,:start,Thread.current[:branch_sim_pos],current_branch_sim_pos)
488
492
  end
489
493
 
490
494
  unless self.__weel_state == :stopping || self.__weel_state == :finishing || self.__weel_state == :stopped || Thread.current[:nolongernecessary]
491
495
  __weel_protect_yield(*local, &block)
492
496
  end
493
497
 
494
- __weel_sim_stop(:parallel_branch,handlerwrapper,current_branch_sim_pos) if __weel_sim
498
+ __weel_sim_stop(:parallel_branch,connectionwrapper,current_branch_sim_pos) if __weel_sim
495
499
 
496
500
  branch_parent[:mutex].synchronize do
497
501
  Thread.current[:branch_status] = true
@@ -506,7 +510,7 @@ class WEEL
506
510
  begin
507
511
  ipc = {}
508
512
  ipc[:unmark] = [Thread.current[:branch_position]]
509
- @__weel_handlerwrapper::inform_position_change(@__weel_handlerwrapper_args,ipc)
513
+ @__weel_connectionwrapper::inform_position_change(@__weel_connectionwrapper_args,ipc)
510
514
  end rescue nil
511
515
  Thread.current[:branch_position] = nil
512
516
  end
@@ -601,17 +605,17 @@ class WEEL
601
605
  catch :escape do
602
606
  case condition[1]
603
607
  when :pre_test
604
- while __weel_eval_condition(condition[0]) && self.__weel_state != :stopping && self.__weel_state != :stopped && self.__weel_state != :finishing
608
+ while __weel_eval_condition(condition[0]) && self.__weel_state != :stopping && self.__weel_state != :stopped && self.__weel_state != :finishing && !Thread.current[:nolongernecessary]
605
609
  loop_guard += 1
606
610
  __weel_protect_yield(&block)
607
- sleep 1 if @__weel_handlerwrapper::loop_guard(@__weel_handlerwrapper_args,loop_id,loop_guard)
611
+ sleep 1 if @__weel_connectionwrapper::loop_guard(@__weel_connectionwrapper_args,loop_id,loop_guard)
608
612
  end
609
613
  when :post_test
610
614
  begin
611
615
  loop_guard += 1
612
616
  __weel_protect_yield(&block)
613
- sleep 1 if @__weel_handlerwrapper::loop_guard(@__weel_handlerwrapper_args,loop_id,loop_guard)
614
- end while __weel_eval_condition(condition[0]) && self.__weel_state != :stopping && self.__weel_state != :stopped && self.__weel_state != :finishing
617
+ sleep 1 if @__weel_connectionwrapper::loop_guard(@__weel_connectionwrapper_args,loop_id,loop_guard)
618
+ end while __weel_eval_condition(condition[0]) && self.__weel_state != :stopping && self.__weel_state != :stopped && self.__weel_state != :finishing && !Thread.current[:nolongernecessary]
615
619
  end
616
620
  end
617
621
  end # }}}
@@ -660,27 +664,27 @@ class WEEL
660
664
  yield(*local) if block_given?
661
665
  rescue NameError => err # don't look into it, or it will explode
662
666
  self.__weel_state = :stopping
663
- @__weel_handlerwrapper::inform_syntax_error(@__weel_handlerwrapper_args,Exception.new("protect_yield: `#{err.name}` is not a thing that can be used. Maybe it is meant to be a string and you forgot quotes?"),nil)
667
+ @__weel_connectionwrapper::inform_syntax_error(@__weel_connectionwrapper_args,Exception.new("protect_yield: `#{err.name}` is not a thing that can be used. Maybe it is meant to be a string and you forgot quotes?"),nil)
664
668
  nil
665
669
  rescue => err
666
670
  self.__weel_state = :stopping
667
- @__weel_handlerwrapper::inform_syntax_error(@__weel_handlerwrapper_args,Exception.new(err.message),nil)
671
+ @__weel_connectionwrapper::inform_syntax_error(@__weel_connectionwrapper_args,Exception.new(err.message),nil)
668
672
  nil
669
673
  end
670
674
  end #}}}
671
675
 
672
676
  def __weel_eval_condition(condition) #{{{
673
677
  begin
674
- handlerwrapper = @__weel_handlerwrapper.new @__weel_handlerwrapper_args unless condition.is_a?(Proc)
675
- condition.is_a?(Proc) ? condition.call : handlerwrapper.test_condition(ReadStructure.new(@__weel_data,@__weel_endpoints,handlerwrapper.additional),condition)
678
+ connectionwrapper = @__weel_connectionwrapper.new @__weel_connectionwrapper_args unless condition.is_a?(Proc)
679
+ condition.is_a?(Proc) ? condition.call : connectionwrapper.test_condition(ReadStructure.new(@__weel_data,@__weel_endpoints,connectionwrapper.additional),condition)
676
680
  rescue NameError => err # don't look into it, or it will explode
677
681
  # if you access $! here, BOOOM
678
682
  self.__weel_state = :stopping
679
- @__weel_handlerwrapper::inform_syntax_error(@__weel_handlerwrapper_args,Exception.new("eval_condition: `#{err.name}` is not a thing that can be used. Maybe it is meant to be a string and you forgot quotes?"),nil)
683
+ @__weel_connectionwrapper::inform_syntax_error(@__weel_connectionwrapper_args,Exception.new("eval_condition: `#{err.name}` is not a thing that can be used. Maybe it is meant to be a string and you forgot quotes?"),nil)
680
684
  nil
681
685
  rescue => err
682
686
  self.__weel_state = :stopping
683
- @__weel_handlerwrapper::inform_syntax_error(@__weel_handlerwrapper_args,Exception.new(err.message),nil)
687
+ @__weel_connectionwrapper::inform_syntax_error(@__weel_connectionwrapper_args,Exception.new(err.message),nil)
684
688
  nil
685
689
  end
686
690
  end #}}}
@@ -718,7 +722,7 @@ class WEEL
718
722
  @__weel_positions << wp
719
723
  Thread.current[:branch_position] = wp
720
724
 
721
- @__weel_handlerwrapper::inform_position_change @__weel_handlerwrapper_args, ipc
725
+ @__weel_connectionwrapper::inform_position_change @__weel_connectionwrapper_args, ipc
722
726
  wp
723
727
  end #}}}
724
728
 
@@ -730,10 +734,10 @@ class WEEL
730
734
  return if self.__weel_state == :stopping || self.__weel_state == :finishing || self.__weel_state == :stopped || Thread.current[:nolongernecessary]
731
735
 
732
736
  Thread.current[:continue] = Continue.new
733
- handlerwrapper = @__weel_handlerwrapper.new @__weel_handlerwrapper_args, position, Thread.current[:continue]
737
+ connectionwrapper = @__weel_connectionwrapper.new @__weel_connectionwrapper_args, position, Thread.current[:continue]
734
738
 
735
739
  if __weel_sim
736
- handlerwrapper.simulate(:activity,:none,@__weel_sim += 1,Thread.current[:branch_sim_pos],:position => position,:parameters => parameters,:endpoint => endpoint,:type => type,:finalize => finalize.is_a?(String) ? finalize : nil)
740
+ connectionwrapper.simulate(:activity,:none,@__weel_sim += 1,Thread.current[:branch_sim_pos],:position => position,:parameters => parameters,:endpoint => endpoint,:type => type,:finalize => finalize.is_a?(String) ? finalize : nil)
737
741
  return
738
742
  end
739
743
 
@@ -744,35 +748,35 @@ class WEEL
744
748
 
745
749
  case type
746
750
  when :manipulate
747
- raise Signal::Stop unless handlerwrapper.vote_sync_before
751
+ raise Signal::Stop unless connectionwrapper.vote_sync_before
748
752
  raise Signal::Skip if self.__weel_state == :stopping || self.__weel_state == :finishing
749
753
 
750
754
  if finalize.is_a?(Proc) || finalize.is_a?(String)
751
- handlerwrapper.activity_manipulate_handle(parameters)
752
- handlerwrapper.inform_activity_manipulate
755
+ connectionwrapper.activity_manipulate_handle(parameters)
756
+ connectionwrapper.inform_activity_manipulate
753
757
  if finalize.is_a?(Proc)
754
- mr = ManipulateStructure.new(@__weel_data,@__weel_endpoints,@__weel_status,handlerwrapper.additional)
758
+ mr = ManipulateStructure.new(@__weel_data,@__weel_endpoints,@__weel_status,connectionwrapper.additional)
755
759
  mr.instance_eval(&finalize)
756
760
  elsif finalize.is_a?(String)
757
- mr = ManipulateStructure.new(@__weel_data,@__weel_endpoints,@__weel_status,handlerwrapper.additional)
758
- handlerwrapper.manipulate(mr,finalize)
761
+ mr = ManipulateStructure.new(@__weel_data,@__weel_endpoints,@__weel_status,connectionwrapper.additional)
762
+ connectionwrapper.manipulate(mr,finalize)
759
763
  end
760
- handlerwrapper.inform_manipulate_change(
764
+ connectionwrapper.inform_manipulate_change(
761
765
  ((mr && mr.changed_status) ? @__weel_status : nil),
762
766
  ((mr && mr.changed_data.any?) ? mr.changed_data.uniq : nil),
763
767
  ((mr && mr.changed_endpoints.any?) ? mr.changed_endpoints.uniq : nil),
764
768
  @__weel_data,
765
769
  @__weel_endpoints
766
770
  )
767
- handlerwrapper.inform_activity_done
771
+ connectionwrapper.inform_activity_done
768
772
  wp.detail = :after
769
- @__weel_handlerwrapper::inform_position_change @__weel_handlerwrapper_args, :after => [wp]
773
+ @__weel_connectionwrapper::inform_position_change @__weel_connectionwrapper_args, :after => [wp]
770
774
  end
771
775
  when :call
772
776
  begin
773
777
  again = catch Signal::Again do
774
- handlerwrapper.mem_guard
775
- rs = ReadStructure.new(@__weel_data,@__weel_endpoints,handlerwrapper.additional)
778
+ connectionwrapper.mem_guard
779
+ rs = ReadStructure.new(@__weel_data,@__weel_endpoints,connectionwrapper.additional)
776
780
  if prepare
777
781
  if prepare.is_a?(Proc)
778
782
  rs.instance_exec(&prepare)
@@ -780,14 +784,14 @@ class WEEL
780
784
  rs.instance_eval prepare
781
785
  end
782
786
  end
783
- params = handlerwrapper.prepare(rs,endpoint,parameters,@__weel_replay)
784
- raise Signal::Stop unless handlerwrapper.vote_sync_before(params)
787
+ params = connectionwrapper.prepare(rs,endpoint,parameters,@__weel_replay)
788
+ raise Signal::Stop unless connectionwrapper.vote_sync_before(params)
785
789
  raise Signal::Skip if self.__weel_state == :stopping || self.__weel_state == :finishing
786
790
 
787
- handlerwrapper.activity_handle wp.passthrough, params
788
- wp.passthrough = handlerwrapper.activity_passthrough_value
791
+ connectionwrapper.activity_handle wp.passthrough, params
792
+ wp.passthrough = connectionwrapper.activity_passthrough_value
789
793
  unless wp.passthrough.nil?
790
- @__weel_handlerwrapper::inform_position_change @__weel_handlerwrapper_args, :wait => [wp]
794
+ @__weel_connectionwrapper::inform_position_change @__weel_connectionwrapper_args, :wait => [wp]
791
795
  end
792
796
  begin
793
797
  # with loop if catching Signal::Again
@@ -797,12 +801,12 @@ class WEEL
797
801
  raise waitingresult[1] if !waitingresult.nil? && waitingresult.is_a?(Array) && waitingresult.length == 2 && waitingresult[0] == WEEL::Signal::Error
798
802
 
799
803
  if Thread.current[:nolongernecessary]
800
- handlerwrapper.activity_no_longer_necessary
804
+ connectionwrapper.activity_no_longer_necessary
801
805
  raise Signal::NoLongerNecessary
802
806
  end
803
807
  if self.__weel_state == :stopping || self.__weel_state == :finishing
804
- handlerwrapper.activity_stop
805
- wp.passthrough = handlerwrapper.activity_passthrough_value
808
+ connectionwrapper.activity_stop
809
+ wp.passthrough = connectionwrapper.activity_passthrough_value
806
810
  raise Signal::Proceed if wp.passthrough # if stop, but no passthrough, let manipulate happen and then stop
807
811
  end
808
812
 
@@ -814,26 +818,26 @@ class WEEL
814
818
  finalize
815
819
  end
816
820
  if code.is_a?(Proc) || code.is_a?(String)
817
- handlerwrapper.inform_activity_manipulate
821
+ connectionwrapper.inform_activity_manipulate
818
822
  if code.is_a?(Proc)
819
- mr = ManipulateStructure.new(@__weel_data,@__weel_endpoints,@__weel_status,handlerwrapper.additional)
823
+ mr = ManipulateStructure.new(@__weel_data,@__weel_endpoints,@__weel_status,connectionwrapper.additional)
820
824
  ma = catch Signal::Again do
821
825
  case code.arity
822
- when 1; mr.instance_exec(handlerwrapper.activity_result_value,&code)
823
- when 2; mr.instance_exec(handlerwrapper.activity_result_value,&code)
826
+ when 1; mr.instance_exec(connectionwrapper.activity_result_value,&code)
827
+ when 2; mr.instance_exec(connectionwrapper.activity_result_value,&code)
824
828
  else
825
829
  mr.instance_exec(&code)
826
830
  end
827
831
  'yes' # ma sadly will have nil when i just throw
828
832
  end
829
833
  elsif code.is_a?(String)
830
- mr = ManipulateStructure.new(@__weel_data,@__weel_endpoints,@__weel_status,handlerwrapper.additional)
834
+ mr = ManipulateStructure.new(@__weel_data,@__weel_endpoints,@__weel_status,connectionwrapper.additional)
831
835
  ma = catch Signal::Again do
832
- handlerwrapper.manipulate(mr,code,handlerwrapper.activity_result_value,handlerwrapper.activity_result_options)
836
+ connectionwrapper.manipulate(mr,code,connectionwrapper.activity_result_value,connectionwrapper.activity_result_options)
833
837
  'yes' # ma sadly will have nil when i just throw
834
838
  end
835
839
  end
836
- handlerwrapper.inform_manipulate_change(
840
+ connectionwrapper.inform_manipulate_change(
837
841
  (mr.changed_status ? @__weel_status : nil),
838
842
  (mr.changed_data.any? ? mr.changed_data.uniq : nil),
839
843
  (mr.changed_endpoints.any? ? mr.changed_endpoints.uniq : nil),
@@ -843,18 +847,18 @@ class WEEL
843
847
  throw(Signal::Again, Signal::Again) if ma.nil?
844
848
  end
845
849
  end while waitingresult == Signal::Again
846
- if handlerwrapper.activity_passthrough_value.nil?
847
- handlerwrapper.inform_activity_done
850
+ if connectionwrapper.activity_passthrough_value.nil?
851
+ connectionwrapper.inform_activity_done
848
852
  wp.passthrough = nil
849
853
  wp.detail = :after
850
- @__weel_handlerwrapper::inform_position_change @__weel_handlerwrapper_args, :after => [wp]
854
+ @__weel_connectionwrapper::inform_position_change @__weel_connectionwrapper_args, :after => [wp]
851
855
  end
852
856
  end
853
857
  end while again == Signal::Again
854
858
  end
855
859
  raise Signal::Proceed
856
860
  rescue Signal::SkipManipulate, Signal::Proceed
857
- if self.__weel_state != :stopping && self.__weel_state != :finishing && !handlerwrapper.vote_sync_after
861
+ if self.__weel_state != :stopping && self.__weel_state != :finishing && !connectionwrapper.vote_sync_after
858
862
  self.__weel_state = :stopping
859
863
  wp.detail = :unmark
860
864
  end
@@ -862,19 +866,19 @@ class WEEL
862
866
  @__weel_positions.delete wp
863
867
  Thread.current[:branch_position] = nil
864
868
  wp.detail = :unmark
865
- @__weel_handlerwrapper::inform_position_change @__weel_handlerwrapper_args, :unmark => [wp]
869
+ @__weel_connectionwrapper::inform_position_change @__weel_connectionwrapper_args, :unmark => [wp]
866
870
  rescue Signal::StopSkipManipulate, Signal::Stop
867
871
  self.__weel_state = :stopping
868
872
  rescue Signal::Skip
869
873
  nil
870
874
  rescue SyntaxError => se
871
- handlerwrapper.inform_activity_failed se
875
+ connectionwrapper.inform_activity_failed se
872
876
  self.__weel_state = :stopping
873
877
  rescue => err
874
- @__weel_handlerwrapper::inform_handlerwrapper_error @__weel_handlerwrapper_args, err
878
+ @__weel_connectionwrapper::inform_connectionwrapper_error @__weel_connectionwrapper_args, err
875
879
  self.__weel_state = :stopping
876
880
  ensure
877
- handlerwrapper.mem_guard unless handlerwrapper.nil?
881
+ connectionwrapper.mem_guard unless connectionwrapper.nil?
878
882
  if Thread.current[:branch_parent]
879
883
  Thread.current[:branch_parent][:mutex].synchronize do
880
884
  if Thread.current[:branch_parent][:branch_wait_count_cancel_condition] == :first
@@ -938,7 +942,7 @@ class WEEL
938
942
  position
939
943
  else
940
944
  self.__weel_state = :stopping
941
- @__weel_handlerwrapper::inform_syntax_error(@__weel_handlerwrapper_args,Exception.new("position (#{position}) not valid"),nil)
945
+ @__weel_connectionwrapper::inform_syntax_error(@__weel_connectionwrapper_args,Exception.new("position (#{position}) not valid"),nil)
942
946
  end
943
947
  end # }}}
944
948
 
@@ -967,13 +971,13 @@ class WEEL
967
971
  def __weel_sim_start(what,options={}) #{{{
968
972
  current_branch_sim_pos = Thread.current[:branch_sim_pos]
969
973
  Thread.current[:branch_sim_pos] = @__weel_sim += 1
970
- handlerwrapper = @__weel_handlerwrapper.new @__weel_handlerwrapper_args
971
- handlerwrapper.simulate(what,:start,Thread.current[:branch_sim_pos],current_branch_sim_pos,options)
972
- [handlerwrapper, current_branch_sim_pos]
974
+ connectionwrapper = @__weel_connectionwrapper.new @__weel_connectionwrapper_args
975
+ connectionwrapper.simulate(what,:start,Thread.current[:branch_sim_pos],current_branch_sim_pos,options)
976
+ [connectionwrapper, current_branch_sim_pos]
973
977
  end #}}}
974
978
 
975
- def __weel_sim_stop(what,handlerwrapper,current_branch_sim_pos,options={}) #{{{
976
- handlerwrapper.simulate(what,:end,Thread.current[:branch_sim_pos],current_branch_sim_pos,options)
979
+ def __weel_sim_stop(what,connectionwrapper,current_branch_sim_pos,options={}) #{{{
980
+ connectionwrapper.simulate(what,:end,Thread.current[:branch_sim_pos],current_branch_sim_pos,options)
977
981
  Thread.current[:branch_sim_pos] = current_branch_sim_pos
978
982
  end #}}}
979
983
 
@@ -981,7 +985,7 @@ class WEEL
981
985
  def __weel_finalize #{{{
982
986
  __weel_recursive_join(@__weel_main)
983
987
  @__weel_state = :stopped
984
- @__weel_handlerwrapper::inform_state_change @__weel_handlerwrapper_args, @__weel_state
988
+ @__weel_connectionwrapper::inform_state_change @__weel_connectionwrapper_args, @__weel_state
985
989
  end #}}}
986
990
 
987
991
  def __weel_state=(newState)# {{{
@@ -996,7 +1000,7 @@ class WEEL
996
1000
  __weel_replay = false
997
1001
  end
998
1002
 
999
- @__weel_handlerwrapper::inform_state_change @__weel_handlerwrapper_args, @__weel_state
1003
+ @__weel_connectionwrapper::inform_state_change @__weel_connectionwrapper_args, @__weel_state
1000
1004
  end # }}}
1001
1005
 
1002
1006
  end # }}}
@@ -1006,27 +1010,27 @@ public
1006
1010
  @dslr.__weel_positions
1007
1011
  end # }}}
1008
1012
 
1009
- # set the handlerwrapper
1010
- def handlerwrapper # {{{
1011
- @dslr.__weel_handlerwrapper
1013
+ # set the connectionwrapper
1014
+ def connectionwrapper # {{{
1015
+ @dslr.__weel_connectionwrapper
1012
1016
  end # }}}
1013
- def handlerwrapper=(new_weel_handlerwrapper) # {{{
1014
- superclass = new_weel_handlerwrapper
1017
+ def connectionwrapper=(new_weel_connectionwrapper) # {{{
1018
+ superclass = new_weel_connectionwrapper
1015
1019
  while superclass
1016
- check_ok = true if superclass == WEEL::HandlerWrapperBase
1020
+ check_ok = true if superclass == WEEL::ConnectionWrapperBase
1017
1021
  superclass = superclass.superclass
1018
1022
  end
1019
- raise "Handlerwrapper is not inherited from HandlerWrapperBase" unless check_ok
1020
- @dslr.__weel_handlerwrapper = new_weel_handlerwrapper
1023
+ raise "ConnectionWrapper is not inherited from ConnectionWrapperBase" unless check_ok
1024
+ @dslr.__weel_connectionwrapper = new_weel_connectionwrapper
1021
1025
  end # }}}
1022
1026
 
1023
- # Get/Set the handlerwrapper arguments
1024
- def handlerwrapper_args # {{{
1025
- @dslr.__weel_handlerwrapper_args
1027
+ # Get/Set the connectionwrapper arguments
1028
+ def connectionwrapper_args # {{{
1029
+ @dslr.__weel_connectionwrapper_args
1026
1030
  end # }}}
1027
- def handlerwrapper_args=(args) # {{{
1031
+ def connectionwrapper_args=(args) # {{{
1028
1032
  if args.class == Array
1029
- @dslr.__weel_handlerwrapper_args = args
1033
+ @dslr.__weel_connectionwrapper_args = args
1030
1034
  end
1031
1035
  nil
1032
1036
  end # }}}
@@ -1036,7 +1040,7 @@ public
1036
1040
  @dslr.__weel_state
1037
1041
  end # }}}
1038
1042
  def state_signal # {{{
1039
- handlerwrapper::inform_state_change handlerwrapper_args, state
1043
+ connectionwrapper::inform_state_change connectionwrapper_args, state
1040
1044
  state
1041
1045
  end # }}}
1042
1046
  def abandon # {{{
@@ -1100,19 +1104,19 @@ public
1100
1104
  end
1101
1105
  rescue SyntaxError => se
1102
1106
  @dslr.__weel_state = :stopping
1103
- @dslr.__weel_handlerwrapper::inform_syntax_error(@dslr.__weel_handlerwrapper_args,Exception.new(se.message),code)
1107
+ @dslr.__weel_connectionwrapper::inform_syntax_error(@dslr.__weel_connectionwrapper_args,Exception.new(se.message),code)
1104
1108
  rescue NameError => err # don't look into it, or it will explode
1105
1109
  @dslr.__weel_state = :stopping
1106
- @dslr.__weel_handlerwrapper::inform_syntax_error(@dslr.__weel_handlerwrapper_args,Exception.new("main: `#{err.name}` is not a thing that can be used. Maybe it is meant to be a string and you forgot quotes?"),code)
1110
+ @dslr.__weel_connectionwrapper::inform_syntax_error(@dslr.__weel_connectionwrapper_args,Exception.new("main: `#{err.name}` is not a thing that can be used. Maybe it is meant to be a string and you forgot quotes?"),code)
1107
1111
  rescue => err
1108
1112
  @dslr.__weel_state = :stopping
1109
- @dslr.__weel_handlerwrapper::inform_syntax_error(@dslr.__weel_handlerwrapper_args,Exception.new(err.message),code)
1113
+ @dslr.__weel_connectionwrapper::inform_syntax_error(@dslr.__weel_connectionwrapper_args,Exception.new(err.message),code)
1110
1114
  end
1111
1115
  if @dslr.__weel_state == :running || @dslr.__weel_state == :finishing
1112
1116
  ipc = { :unmark => [] }
1113
1117
  @dslr.__weel_positions.each{ |wp| ipc[:unmark] << wp }
1114
1118
  @dslr.__weel_positions.clear
1115
- @dslr.__weel_handlerwrapper::inform_position_change(@dslr.__weel_handlerwrapper_args,ipc)
1119
+ @dslr.__weel_connectionwrapper::inform_position_change(@dslr.__weel_connectionwrapper_args,ipc)
1116
1120
  @dslr.__weel_state = :finished
1117
1121
  end
1118
1122
  if @dslr.__weel_state == :simulating
@@ -1145,7 +1149,7 @@ public
1145
1149
  rescue => e
1146
1150
  puts e.message
1147
1151
  puts e.backtrace
1148
- handlerwrapper::inform_handlerwrapper_error handlerwrapper_args, e
1152
+ connectionwrapper::inform_connectionwrapper_error connectionwrapper_args, e
1149
1153
  end
1150
1154
  end
1151
1155
  end # }}}
@@ -1,13 +1,13 @@
1
1
  # Apache License, Version 2.0
2
- #
2
+ #
3
3
  # Copyright (c) 2013 Juergen Mangler
4
- #
4
+ #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
7
7
  # You may obtain a copy of the License at
8
- #
8
+ #
9
9
  # http://www.apache.org/licenses/LICENSE-2.0
10
- #
10
+ #
11
11
  # Unless required by applicable law or agreed to in writing, software
12
12
  # distributed under the License is distributed on an "AS IS" BASIS,
13
13
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -15,18 +15,18 @@
15
15
  # limitations under the License.
16
16
 
17
17
  ######
18
- # ADVENTURE Simulation Trace Generator Handler Wrapper
18
+ # ADVENTURE Simulation Trace Generator Connection Wrapper
19
19
  ######
20
20
 
21
21
  module TraceBasics #{{{
22
22
  def <<(item)
23
23
  @elements << item
24
- item.parent = self
24
+ item.parent = self
25
25
  end
26
26
  def each
27
27
  @elements.each do |ele|
28
28
  yield ele
29
- end
29
+ end
30
30
  end
31
31
  end #}}}
32
32
 
@@ -42,11 +42,11 @@ class Trace #{{{
42
42
  end
43
43
  def recursive_get_container(container,tid)
44
44
  return container if container.respond_to?(:tid) and container.tid == tid
45
- container.each do |ele|
45
+ container.each do |ele|
46
46
  if ele.kind_of?(TraceContainer)
47
- ret = recursive_get_container(ele,tid)
47
+ ret = recursive_get_container(ele,tid)
48
48
  return ret unless ret.nil?
49
- end
49
+ end
50
50
  end
51
51
  nil
52
52
  end
@@ -79,7 +79,7 @@ class Trace #{{{
79
79
  tmp = recursive_generate_list(ele,options)
80
80
  add_traces(traces,tmp)
81
81
  options[:otherwise] = true
82
- end
82
+ end
83
83
  end
84
84
  traces
85
85
  end
@@ -137,7 +137,7 @@ class TraceChoose < TraceContainer
137
137
  def initialize(tid,mode)
138
138
  super tid
139
139
  @mode = mode
140
- end
140
+ end
141
141
  end
142
142
  class TraceAlternative < TraceContainer; end
143
143
  class TraceOtherwise < TraceContainer; end
@@ -145,10 +145,10 @@ class TraceOtherwise < TraceContainer; end
145
145
  class PlainTrace
146
146
  def initialize
147
147
  @container
148
- end
148
+ end
149
149
  end
150
150
 
151
- class SimHandlerWrapper < WEEL::HandlerWrapperBase
151
+ class SimConnectionWrapper < WEEL::ConnectionWrapperBase
152
152
  def initialize(args,endpoint=nil,position=nil,continue=nil)
153
153
  @__myhandler_stopped = false
154
154
  @__myhandler_position = position
@@ -172,19 +172,19 @@ class SimHandlerWrapper < WEEL::HandlerWrapperBase
172
172
  clast = $trace.get_container(parent)
173
173
  until clast.kind_of?(TraceParallel)
174
174
  clast = clast.parent
175
- end
175
+ end
176
176
  clast << TraceParallelBranch.new(tid,parent)
177
177
  else
178
178
  clast = $trace.get_container(tid)
179
179
  clast.close! if clast.open?
180
- end
180
+ end
181
181
  when :choose
182
182
  simulate_add_to_container($trace,nesting,parent,tid) { TraceChoose.new(tid,parameters[:mode]) }
183
183
  when :alternative
184
184
  simulate_add_to_container($trace,nesting,parent,tid) { TraceAlternative.new(tid) }
185
185
  when :otherwise
186
186
  simulate_add_to_container($trace,nesting,parent,tid) { TraceOtherwise.new(tid) }
187
- end
187
+ end
188
188
  end
189
189
 
190
190
  private
@@ -196,7 +196,7 @@ class SimHandlerWrapper < WEEL::HandlerWrapperBase
196
196
  else
197
197
  clast = trace.get_container(tid)
198
198
  clast.close! if clast.open?
199
- end
199
+ end
200
200
  end #}}}
201
201
 
202
202
  end
@@ -1,4 +1,4 @@
1
- class TestHandlerWrapper < WEEL::HandlerWrapperBase
1
+ class TestConnectionWrapper < WEEL::ConnectionWrapperBase
2
2
  def self::inform_state_change(arguments,newstate)
3
3
  $long_track += "---> STATE #{newstate}\n"
4
4
  $short_track << "|#{newstate}|"
@@ -8,7 +8,7 @@ class TestHandlerWrapper < WEEL::HandlerWrapperBase
8
8
  $short_track << "E"
9
9
  raise(err)
10
10
  end
11
- def self::inform_handlerwrapper_error(arguments,err)
11
+ def self::inform_connectionwrapper_error(arguments,err)
12
12
  $long_track += "HW ERROR: #{err}\n"
13
13
  $short_track << "E"
14
14
  end
data/test/TestWorkflow.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  require File.expand_path(::File.dirname(__FILE__) + '/../lib/weel')
2
2
  require File.expand_path(::File.dirname(__FILE__) + '/TestMixin')
3
- require File.expand_path(::File.dirname(__FILE__) + '/TestHandlerWrapper')
3
+ require File.expand_path(::File.dirname(__FILE__) + '/TestConnectionWrapper')
4
4
 
5
5
  class TestWorkflow < WEEL
6
- handlerwrapper TestHandlerWrapper
6
+ connectionwrapper TestConnectionWrapper
7
7
 
8
8
  endpoint :endpoint1 => 'http://www.heise.de'
9
9
  endpoint :stop => 'stop it'
@@ -6,14 +6,14 @@ class TestCaseHandler < Test::Unit::TestCase
6
6
 
7
7
  def test_handler
8
8
  assert_raise RuntimeError do
9
- @wf.handlerwrapper = String
9
+ @wf.connectionwrapper = String
10
10
  end
11
11
  assert_nothing_raised do
12
- @wf.handlerwrapper = TestHandlerWrapper
12
+ @wf.connectionwrapper = TestConnectionWrapper
13
13
  end
14
14
  end
15
15
  def test_handlerargs
16
- @wf.handlerwrapper_args = ["1", "2"]
17
- assert(@wf.handlerwrapper_args.is_a?(Array), "Handler arguments is not an array, it is a #{@wf.handlerwrapper_args.inspect}")
16
+ @wf.connectionwrapper_args = ["1", "2"]
17
+ assert(@wf.connectionwrapper_args.is_a?(Array), "Handler arguments is not an array, it is a #{@wf.connectionwrapper_args.inspect}")
18
18
  end
19
19
  end
data/weel.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "weel"
3
- s.version = "1.99.98"
3
+ s.version = "1.99.101"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0"
6
6
  s.summary = "Workflow Execution Engine Library (WEEL)"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.99.98
4
+ version: 1.99.101
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-05-11 00:00:00.000000000 Z
12
+ date: 2022-03-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-unit
@@ -45,8 +45,8 @@ files:
45
45
  - lib/weel.rb
46
46
  - test/ContinueTest.rb
47
47
  - test/README
48
- - test/SimHandlerWrapper.rb
49
- - test/TestHandlerWrapper.rb
48
+ - test/SimConnectionWrapper.rb
49
+ - test/TestConnectionWrapper.rb
50
50
  - test/TestMixin.rb
51
51
  - test/TestWorkflow.rb
52
52
  - test/basic/tc_choose.rb
@@ -101,46 +101,46 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
103
  requirements: []
104
- rubygems_version: 3.1.4
104
+ rubygems_version: 3.2.22
105
105
  signing_key:
106
106
  specification_version: 4
107
107
  summary: Workflow Execution Engine Library (WEEL)
108
108
  test_files:
109
- - test/TestHandlerWrapper.rb
110
- - test/test
111
109
  - test/ContinueTest.rb
112
- - test/TestWorkflow.rb
113
- - test/TestMixin.rb
114
- - test/SimHandlerWrapper.rb
115
110
  - test/README
116
- - test/wfp_iteration/tc_structuredloop.rb
117
- - test/wfp_adv_branching/tc_structured_partial_join.rb
118
- - test/wfp_adv_branching/tc_threadmerge.rb
119
- - test/wfp_adv_branching/tc_threadsplit.rb
120
- - test/wfp_adv_branching/tc_multichoice_structuredsynchronizingmerge.rb
121
- - test/wfp_adv_branching/tc_localsynchronizingmerge.rb
111
+ - test/SimConnectionWrapper.rb
112
+ - test/TestConnectionWrapper.rb
113
+ - test/TestMixin.rb
114
+ - test/TestWorkflow.rb
115
+ - test/test
116
+ - test/basic/tc_choose.rb
117
+ - test/basic/tc_codereplace.rb
118
+ - test/basic/tc_data.rb
119
+ - test/basic/tc_endpoint.rb
120
+ - test/basic/tc_handler.rb
121
+ - test/basic/tc_parallel.rb
122
+ - test/basic/tc_search.rb
123
+ - test/basic/tc_state.rb
124
+ - test/basic/tc_wf_control.rb
125
+ - test/complex/tc_generalsynchonizingmerge_loopsearch.rb
126
+ - test/complex/tc_parallel_stop.rb
127
+ - test/complexsearch/tc_search.rb
128
+ - test/exec/tc_again.rb
129
+ - test/exec/tc_exec.rb
130
+ - test/speed/tc_speed1.rb
131
+ - test/speed/tc_speed2.rb
122
132
  - test/wfp_adv_branching/tc_generalizedjoin.rb
123
133
  - test/wfp_adv_branching/tc_generalsynchronizingmerge.rb
134
+ - test/wfp_adv_branching/tc_localsynchronizingmerge.rb
135
+ - test/wfp_adv_branching/tc_multichoice_structuredsynchronizingmerge.rb
124
136
  - test/wfp_adv_branching/tc_multimerge.rb
125
137
  - test/wfp_adv_branching/tc_structured_discriminator.rb
126
- - test/wfp_state_based/tc_deferredchoice.rb
127
- - test/wfp_state_based/tc_interleavedparallelrouting.rb
128
- - test/speed/tc_speed1.rb
129
- - test/speed/tc_speed2.rb
130
- - test/exec/tc_again.rb
131
- - test/exec/tc_exec.rb
132
- - test/wfp_basic/tc_parallelsplit_synchronization.rb
138
+ - test/wfp_adv_branching/tc_structured_partial_join.rb
139
+ - test/wfp_adv_branching/tc_threadmerge.rb
140
+ - test/wfp_adv_branching/tc_threadsplit.rb
133
141
  - test/wfp_basic/tc_exclusivechoice_simplemerge.rb
142
+ - test/wfp_basic/tc_parallelsplit_synchronization.rb
134
143
  - test/wfp_basic/tc_sequence.rb
135
- - test/complex/tc_generalsynchonizingmerge_loopsearch.rb
136
- - test/complex/tc_parallel_stop.rb
137
- - test/basic/tc_state.rb
138
- - test/basic/tc_endpoint.rb
139
- - test/basic/tc_data.rb
140
- - test/basic/tc_choose.rb
141
- - test/basic/tc_search.rb
142
- - test/basic/tc_handler.rb
143
- - test/basic/tc_codereplace.rb
144
- - test/basic/tc_wf_control.rb
145
- - test/basic/tc_parallel.rb
146
- - test/complexsearch/tc_search.rb
144
+ - test/wfp_iteration/tc_structuredloop.rb
145
+ - test/wfp_state_based/tc_deferredchoice.rb
146
+ - test/wfp_state_based/tc_interleavedparallelrouting.rb