class

WinNotification::Repository

Inherits Notify::SourceRepository < Reference < Object

Windows 通知ソースの SourceRepository 実装。 id 集合の比較という Windows 通知に固有の差分検出をここに閉じる(仕様書 4.2 節)。

Constants

ACCESS_RECHECK_INTERVAL = 5.seconds

未許可のときに許可状態を問い合わせ直す間隔。 利用者が Windows の設定画面で許可した直後に中継が始まるようにするための再確認である。

Log = ::Log.for("win_notification")

Constructors

new(client : ShimClient, settings : Settings, access_recheck_interval : Time::Span = ACCESS_RECHECK_INTERVAL)
Source

Instance methods

access_status
Source
poll_interval

このソースを呼び出す間隔。

Source
poll_new

前回の id 集合に無い通知だけを新規とみなす。 初回の結果は既読として捨て、起動前に溜まっていた通知を一斉送信しない。

Source
ready?

許可が下りるまでポーリングを行わない。 常駐は続けたままなので、許可された時点で中継が始まる。

許可されている間も確かめ直す。 起動後に利用者が許可を取り消すこともあり、そのまま呼び続けると 失敗するポーリングを周期ごとに繰り返すことになるためである。

Source
settings
Source
settings=(settings : Settings)
Source
source_id

このソースの識別子。Incoming#source とルールのマッチングに使う。

Source
start

開始のたびに差分検出の状態を戻す。 無効にしている間に届いて通知センターに残っている通知を、 再開直後の 1 周期で一斉に中継しないためである。

Source
stop

ソースの後始末。

Source