Methods
Classes and Modules
Class Net::SSH::Service::Process::DriverClass Net::SSH::Service::Process::OpenManager
Class Net::SSH::Service::Process::POpen3Manager
Public Instance methods
Register all services pertaining to the management of remote processes.
[ show source ]
# File lib/net/ssh/service/process/services.rb, line 24
24: def register_services( container )
25:
26: # All process management services are registered in their own
27: # namespace.
28: container.namespace_define :process do |ns|
29:
30: # The :open_manager service returns a proc object that can be used
31: # to create new OpenManager instances for a given command.
32: ns.open_manager do |c,p|
33: require 'net/ssh/service/process/open'
34: connection = c[:connection][:driver]
35: log = c[:log_for, p]
36: lambda { |cmd| OpenManager.new( connection, log, cmd ) }
37: end
38:
39: # The :popen3_manager service returns a new POpen3Manager instance
40: # for managing the execution of commands with a popen3-type
41: # interface.
42: ns.popen3_manager do |c,p|
43: require 'net/ssh/service/process/popen3'
44: connection = c[:connection][:driver]
45: log = c[:log_for, p]
46: POpen3Manager.new( connection, log )
47: end
48:
49: # The :driver controls access to all remote process management
50: # services.
51: ns.driver do |c,p|
52: require 'net/ssh/service/process/driver'
53: Driver.new( c[:connection][:driver],
54: c[:log_for, p],
55: :open => c[:open_manager],
56: :popen3 => c[:popen3_manager] )
57: end
58:
59: end
60: end