Class: Loompa::Child

Inherits:
Object
  • Object
show all
Defined in:
lib/loompa.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pid, from, to) ⇒ Child

Returns a new instance of Child.



66
67
68
69
# File 'lib/loompa.rb', line 66

def initialize(pid, from, to)
  @pid, @from, @to = pid, from, to
  @status = :idle
end

Instance Attribute Details

#fromObject

status is one of :idle, :connect, :close, :exit



72
73
74
# File 'lib/loompa.rb', line 72

def from
  @from
end

#pidObject

status is one of :idle, :connect, :close, :exit



72
73
74
# File 'lib/loompa.rb', line 72

def pid
  @pid
end

#toObject

status is one of :idle, :connect, :close, :exit



72
73
74
# File 'lib/loompa.rb', line 72

def to
  @to
end

Instance Method Details

#active?Boolean

Returns:

  • (Boolean)


103
104
105
# File 'lib/loompa.rb', line 103

def active?()
  @status == :idle or @status == :connect
end

#closeObject



88
89
90
91
# File 'lib/loompa.rb', line 88

def close()
  @to.close unless @to.closed?
  @status = :close
end

#event(s) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/loompa.rb', line 74

def event(s)
  if s == nil then
    #Loompa.logger.debug "p: child #{pid} terminated"
    self.exit
  else
    case s.chomp
    when "connect" then @status = :connect
    when "disconnect" then @status = :idle
    else
      Loompa.logger.error "unknown status: #{s}"
    end
  end
end

#exitObject



93
94
95
96
97
# File 'lib/loompa.rb', line 93

def exit()
  @from.close unless @from.closed?
  @to.close unless @to.closed?
  @status = :exit
end

#idle?Boolean

Returns:

  • (Boolean)


99
100
101
# File 'lib/loompa.rb', line 99

def idle?()
  @status == :idle
end