Sha256: 639013ac8244f2c19473ed995f129effe035b5c9e035318d7dfde487eafe09b2
Contents?: true
Size: 1.02 KB
Versions: 2
Compression:
Stored size: 1.02 KB
Contents
module Pione module Agent class ProcessManager < TupleSpaceClient set_agent_type :process_manager define_state :running define_state_transition :initialized => :sleeping define_state_transition :sleeping => :running define_state_transition :running => :sleeping attr_reader :package def initialize(tuple_space_server, package, params, stream) raise ArgumentError unless package.find_rule("Main") super(tuple_space_server) @package = package @params = params @stream = stream end def transit_to_sleeping take(Tuple[:command].new("start-root-rule", nil)) end def transit_to_running root = @package.create_root_rule(@package.find_rule("Main"), @params) if handler = root.make_handler(tuple_space_server) handler.handle else user_message "error: no inputs" terminate end terminate unless @stream end end set_agent ProcessManager end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pione-0.2.2 | lib/pione/agent/process-manager.rb |
pione-0.2.1 | lib/pione/agent/process-manager.rb |