====== イベントドリブン ======
Alone Workerでは、基本的に何らかのイベントに対応したハンドラを記述することで全体の動作を記述します。
サポートするイベント
* タイマー
* ファイルデスクリプタ(シリアルI/O)
* IPC(プロセス間通信)
* TCP/IP通信
===== イベントハンドラの記述 =====
初期化時に、イベントの種類に応じた登録用メソッドに、ハンドラをブロックとして渡します。
例:一秒ごとに、時刻を表示する。
class Worker1 < AlWorker
def initialize2()
@timer = Timer.periodic( 1 ) # every 1 sec.
@timer.run() {
# timer event handler.
puts Time.now
}
end
end
例:シリアルから1行読み込むごとに処理を行う。
class FdServer < AlWorker
def initialize2()
@fd = Fd.open( "/dev/cuaU0" )
# read可能になった時の処理
@fd.ready_read() {
txt = @fd.file.gets
puts " READING: #{txt}"
}
end
end