Class: Fairy::CInject::CLocalInject

Inherits:
Fairy::CIOFilter show all
Defined in:
lib/fairy/master/c-inject.rb

Instance Attribute Summary

Attributes inherited from Fairy::CIOFilter

#input

Attributes included from Fairy::CInputtable

#input

Instance Method Summary collapse

Methods inherited from Fairy::CIOFilter

#node_class, #output=

Methods included from Fairy::CInputtable

#break_running, #inputtable?

Methods inherited from Fairy::CFilter

#abort_create_node, #add_node, #assgin_number_of_nodes?, #break_create_node, #break_running, #create_and_add_node, #create_import, #create_node, #create_nodes, #def_job_pool_variable, #each_node, #each_node_exist_only, #handle_exception, #input, #job_pool_dict, #job_pool_variable, #nodes, #number_of_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, block_source) ⇒ CLocalInject

Returns a new instance of CLocalInject.



41
42
43
44
45
46
47
48
# File 'lib/fairy/master/c-inject.rb', line 41

def initialize(controller, opts, block_source)
	super
	@block_source = block_source

	@no = 0
	@first_node = nil
	@first_node_mutex = Mutex.new
end

Instance Method Details

#bind_export(exp, imp) ⇒ Object



77
78
79
# File 'lib/fairy/master/c-inject.rb', line 77

def bind_export(exp, imp)
	# do nothing.
end

#each_assigned_filter(&block) ⇒ Object



58
59
60
61
62
# File 'lib/fairy/master/c-inject.rb', line 58

def each_assigned_filter(&block)
	super

	@first_node.export.output_no_import = @no
end

#each_export_by(njob, mapper, &block) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/fairy/master/c-inject.rb', line 64

def each_export_by(njob, mapper, &block)
	@first_node_mutex.synchronize do
	  @no += 1
	  if @first_node
	    njob.export.output = @first_node.export.output
	    njob.export.no = @no - 1
	  else
	    super
	    @first_node = njob
	  end
	end
end

#njob_creation_paramsObject



54
55
56
# File 'lib/fairy/master/c-inject.rb', line 54

def njob_creation_params
	[@block_source]
end

#node_class_nameObject



50
51
52
# File 'lib/fairy/master/c-inject.rb', line 50

def node_class_name
	"PLocalInject"
end