Engine.Live.Notification Version 0.10系に関して

Developer
Sep 30, 2009 at 12:10 PM
Edited Oct 1, 2009 at 2:44 PM

変更が多岐にわたり、また、I/Fも大幅に変更されるので、ここにまとめておきます。

 

独立して起動可能なLiveCommentServerの廃止

     廃止される理由

独立稼働していたために、Rss及び予約放送通知系との同期が困難だったことを是正する目的で行われます

     修正後の統合先

LiveCommentServerはLiveNotifictionに統合されます。

 


ThreadPoolThreadを利用したEvent通知の廃止

 

     廃止される理由

スレッドプールスレッドを利用することで、このイベントをListenしているクラスの実装が必要以上に煩雑になってしまっていたために、廃止されます。

     修正後の挙動に関して

この修正後、イベントは単一のスレッドによって全て通知される形に変更されます。
この修正及び、LiveCommentServerの統合で、Start、Close及びUpdateの各イベントはシリアライズされます。

 


同一コミュニティが短時間に放送を続けて開始した場合のイベント通知の変更

 

     変更前

変更を検知した時点で、順序を考慮せず、通知されていました。

     変更後

開始検知時点で、同一コミュニティの放送が放送中となっていた場合は、既存放送を終了通知した後、新放送を開始通知するよう、変更されます。

 


 

HeartBeatの利用に関する変更

     概要

アラート対象の放送に関して、上記APIを利用することで、中途終了に対応させ、またRssを積極的に稼働させなくとも、延長対応を可能とするための変更になります

     I/Fの変更点

全ての放送を表題APIを利用して終了検知することは、相手先サーバーに対して、過大な負荷をかけることになるので、必用な放送のみ、問い合わせるのが望ましいかたちとなります。

そこで、概要に有るとおり、アラート対象の放送のみを対象とすることにする。この場合、LiveNotificationは、通知済み放送が、アラート対象となっているのか、それとも通知対象ではないのかを判断することが不可能なので、放送開始通知か又は、別メソッドによってアラート対象放送の通知を上位アプリケーションから、通知して貰う必用が有る。通知メカニズムとしては、以下の二つが考えることができます。

A)     イベント通知時のEventArgの中にアラート対象の可否を示すBoolを新設して、戻して貰う(Windows.FormsのUnloadをキャンセルさせるときのイメージ)

B)     別メソッドで通知して貰う

 


 

CloseイベントのEventArgs内LiveProgramの内容に関する変更

     概要

現在内部管理リストが不必要な情報まで保持しており、番組枠の増大によって、肥大化が看過できなくなってきたので、LiveNotificationの役務となる、Start,Update,Closeの各イベントを過怠なく発生させるのに必用な情報のみを管理する形に変更します。

     この変更による影響

この変更によって、Closeイベントが影響を受ける。現状(~0.9系)までは、最終取得していた、LiveProgramの有効なデータをCloseイベントの戻り値として、使用していたが、変更後は、lv番号意外は全て初期化時の規定値でリセットされているLiveProgramとなります。

但し、Start及びUpdateの各イベントに関しては、これまで通り、その時点で取得された、最新の情報が入っているLiveProgramを戻します。

 

大きな変更点は、以上5項目になります。

 

Developer
Oct 1, 2009 at 2:42 PM
Edited Oct 1, 2009 at 2:46 PM

Rssのフィードモードに関して

Rssのフィード制御を行うEnumの再定義をするに当たり、以下のような感じにしました。

 

  • Normal

今まで通りのノーマルモード

  • CloseDetectSave

開始検知は通常通り、終了検知は、ノーマルモードの2倍の間隔で動作

  • CloseDetectStop

開始検知は通常通り、終了検知を完全停止。
(現在の、NormalWithoutClosedNotificationと同等)

  • RssFeederStop

Rssフィーダの完全停止。

 

尚、RssFeederStopの状態でも、HeartBeatを利用した、特定放送の終了検知は継続されます。

また、上記もーどは開始・終了検知のRssフィーダにのみ影響し、他のLiveCommentServer、並びに、予約放送検知系には、影響を与えません。
(予約放送の検知は別プロパティで開始・停止の制御が可能になっています)

LiveCommentServerは常に稼働状態となります。