Class: Fairy::COutputVArray

Inherits:
COutput show all
Defined in:
lib/fairy/master/c-output-varray.rb

Instance Attribute Summary collapse

Attributes included from CInputtable

#input

Instance Method Summary collapse

Methods inherited from COutput

#input=

Methods included from CInputtable

#break_running, #inputtable?

Methods inherited from CFilter

#abort_create_node, #add_node, #assgin_number_of_nodes?, #bind_export, #break_create_node, #break_running, #create_and_add_node, #create_import, #create_node, #create_nodes, #def_job_pool_variable, #each_assigned_filter, #each_export_by, #each_node, #each_node_exist_only, #handle_exception, #input, #job_pool_dict, #job_pool_variable, #nodes, #number_of_nodes, #pool_dict, #postmapping_policy, #start_create_nodes, #start_export, #start_watch_node_status, #update_status, watch_status, watch_status=, #watch_status?

Constructor Details

#initialize(controller, opts) ⇒ COutputVArray

Returns a new instance of COutputVArray.



14
15
16
17
18
19
# File 'lib/fairy/master/c-output-varray.rb', line 14

def initialize(controller, opts)
  super
  @varray = VArray.new(nil)

  @node_id = 0
end

Instance Attribute Details

#varrayObject (readonly)

Returns the value of attribute varray.



21
22
23
# File 'lib/fairy/master/c-output-varray.rb', line 21

def varray
  @varray
end

Instance Method Details

#all_node_outputted?Boolean

Returns:

  • (Boolean)


46
47
48
49
50
51
52
53
54
# File 'lib/fairy/master/c-output-varray.rb', line 46

def all_node_outputted?
  return false unless @nodes_mutex.synchronize{@number_of_nodes}

  each_node(:exist_only) do |node|
	st = @nodes_status[node]
	return false unless [:ST_FINISH, :ST_OUTPUT_FINISH].include?(st)
  end
  true
end

#njob_creation_paramsObject



27
28
29
30
31
# File 'lib/fairy/master/c-output-varray.rb', line 27

def njob_creation_params
  @node_id += 1
  [@node_id-1]
#      []
end

#node_class_nameObject



23
24
25
# File 'lib/fairy/master/c-output-varray.rb', line 23

def node_class_name
  "POutputVArray"
end

#number_of_nodes=(no_nodes) ⇒ Object



33
34
35
36
# File 'lib/fairy/master/c-output-varray.rb', line 33

def number_of_nodes=(no_nodes)
  super
  @varray.arrays_size = no_nodes
end

#wait_all_output_finishedObject



38
39
40
41
42
43
44
# File 'lib/fairy/master/c-output-varray.rb', line 38

def wait_all_output_finished
  @nodes_status_mutex.synchronize do
	while !all_node_outputted?
	  @nodes_status_cv.wait(@nodes_status_mutex)
	end
  end
end