names=add_response_handler
visibility=public
kind=defined

--- add_response_handler(handler) -> ()
--- add_response_handler(handler){|resp| ...} -> ()
レスポンスハンドラを追加します。

レスポンスハンドラはサーバから応答を受け取るごとに
呼びだされます。ハンドラには
[[c:Net::IMAP::TaggedResponse]] もしくは
[[c:Net::IMAP::UntaggedResponse]] オブジェクトが
渡されます。

主にサーバからの非同期的なイベントを受け取るため
に用います。例えば EXISTS 応答を受け取る
(メールボックスに新たなメールが追加されたタイミングで発生します)
ためなどに用いられます。

レスポンスハンドラはメインのスレッドとは別のスレッドで
呼びだされることに注意してください。

例:

  imap.add_response_handler do |resp|
    p resp
  end

@param handler 追加するハンドラ([[c:Proc]] や [[c:Method]] オブジェクト)
@see [[m:Net::IMAP#remove_response_handler]]

