class Taskinator::Task::SubProcess

a task which delegates to another process

Attributes

sub_process[R]

Public Class Methods

new(process, sub_process, options={}) click to toggle source

NOTE: also wraps sequential and concurrent processes

Calls superclass method Taskinator::Task::new
# File lib/taskinator/task.rb, line 271
def initialize(process, sub_process, options={})
  super(process, options)
  raise ArgumentError, 'sub_process' if sub_process.nil? || !sub_process.is_a?(Process)

  @sub_process = sub_process
  @sub_process.parent = self
end

Public Instance Methods

accept(visitor) click to toggle source
Calls superclass method Taskinator::Task#accept
# File lib/taskinator/task.rb, line 299
def accept(visitor)
  super
  visitor.visit_process(:sub_process)
end
enqueue() click to toggle source
# File lib/taskinator/task.rb, line 279
def enqueue
  sub_process.enqueue!
end
incr_count?() click to toggle source
# File lib/taskinator/task.rb, line 293
def incr_count?
  # subprocess tasks aren't included in the total count of tasks
  # since they simply delegate to the tasks of the respective subprocess definition
  false
end
inspect() click to toggle source
# File lib/taskinator/task.rb, line 304
def inspect
  %(#<#{self.class.name}:0x#{self.__id__.to_s(16)} uuid="#{uuid}", sub_process=#{sub_process.inspect}, current_state=:#{current_state}>)
end
start() click to toggle source
# File lib/taskinator/task.rb, line 283
def start
  sub_process.start!

rescue => e
  Taskinator.logger.error(e)
  Taskinator.logger.debug(e.backtrace)
  fail!(e)
  raise e
end