コントローラの起動イベントを捕捉するハンドラ。引数 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