コントローラの起動イベントを捕捉するハンドラ。引数 args
は trema run で --
の後に渡した引数の配列。
def start(args)
# ...
end
たとえばコントローラを次のように起動した場合、args
の中身は ['graphviz', '/tmp/topology.png']
となる。
trema/topology の起動例より
$ ./bin/trema run ./lib/topology_controller.rb -c fullmesh.conf -- graphviz /tmp/topology.png
もしコマンドライン引数がない場合には、args
は空 ([]
)。
典型的な start
ハンドラでは、ユーザが trema run で指定したコントローラの起動オプションを次のようにパースする:
trema/topology の lib/topology_controller.rb より抜粋
def start(args)
@command_line = CommandLine.new(logger)
@command_line.parse(args)
@topology = Topology.new
@topology.add_observer @command_line.view
logger.info "#{name} started (#{@command_line.view})."
end
ここではコマンドライン引数を処理するために、コントローラ独自の CommandLine
クラスでコマンドライン引数 args
をパースし、その結果をトポロジの表示方法の決定に使っている。
もし args
引数を使わない場合には、次のように名前をアンダーバーで始める (_args
) ことで、使っていないことを明らかにする。
trema/hello_trema の lib/hello_trema.rb より抜粋
def start(_args)
logger.info "#{name} started."
end