Package | jp.co.fujitsu.reffi.client.flex.model.messaging |
Class | public class ConsumerCore |
Inheritance | ConsumerCore ![]() ![]() |
[概 要]
発行されているサーバメッセージデスティネーションをクライアントで購読する為の機能モデルクラスです.[詳 細]
サーバ側(LCDS及びBlazeDS)のmessaging-config.xmlで定義されているdestinationを購読開始、停止します。 subscribeプロパティがtrueの場合は購読開始、falseの場合は停止します。 この機能モデルを拡張したモデルを作成する場合、onSuccessメソッドとonFailureメソッドをオーバーライド することで、メッセージ受信成功処理、失敗処理を実装することが出来ます。[備 考]
See also
Property | Defined By | ||
---|---|---|---|
channelSet : ChannelSet
[概 要]
任意設定可能な通信チャンネルセットです. | ConsumerCore | ||
![]() | controller : BaseController
[概 要]
このモデルを起動したコントローラインスタンスです. | BaseModel | |
destination : String
[概 要]
メッセージ受信を行う対象のdestinationです. | ConsumerCore | ||
![]() | executeIndex : int
[概 要]
実行インデックス設定. | BaseModel | |
identifier : String
[概 要]
購読中のConsumerCoreを特定する為の識別子です. | ConsumerCore | ||
![]() | parameterMapping : ParameterMapping
[概 要]
MVC各レイヤを伝播するパラメータオブジェクトです. | BaseModel | |
![]() | skip : Boolean
[概 要]
このモデルを実行するか、コントローラが判断する為のフラグです. | BaseModel | |
subscribe : Boolean
[概 要]
購読開始/購読停止を示すフラグです. | ConsumerCore | ||
![]() | successCount : int
[概 要]
モデルインスタンス生存中に、何回モデル処理が成功したかを保持します. | BaseModel |
Method | Defined By | ||
---|---|---|---|
![]() | dispatchModelFailure(event:ModelProcessEvent):void
[概 要]
モデル処理失敗イベントを発行するメソッドです. | BaseModel | |
![]() | dispatchModelFinished(event:ModelProcessEvent):void
[概 要]
モデル処理完了イベントを発行するメソッドです. | BaseModel | |
![]() | dispatchModelSuccess(event:ModelProcessEvent):void
[概 要]
モデル処理成功イベントを発行するメソッドです. | BaseModel | |
faultHandler(event:MessageFaultEvent):void
[概 要]
subscribe受信失敗時にコールバックされるメソッドです. | ConsumerCore | ||
![]() | incrementSuccessCount():int
[概 要]
ModelProcessEvent.SUCCESS発行回数を1増加させます. | BaseModel | |
resultHandler(event:MessageEvent):void
[概 要]
subscribe受信時にコールバックされるメソッドです. | ConsumerCore | ||
![]() | run():void
[概 要]
コントローラにコールされるモデルの主幹メソッドです. | BaseModel |
Method | Defined By | ||
---|---|---|---|
![]() | finallyProc():void
[概 要]
run()が終了したタイミングでテンプレートコールされるメソッドです. | BaseModel | |
mainProc():void [override]
[概 要]
サーバに対して購読の開始、停止処理を行います. | ConsumerCore | ||
onFailure(event:MessageFaultEvent):void
[概 要]
subscribe受信失敗オーバーライド用メソッドです. | ConsumerCore | ||
onSuccess(event:MessageEvent):void
[概 要]
subscribe結果受信オーバーライド用メソッドです. | ConsumerCore | ||
![]() | postProc():void
[概 要]
後処理テンプレートメソッドです. | BaseModel | |
![]() | preProc():Boolean
[概 要]
前処理テンプレートメソッドです. | BaseModel | |
![]() | trap(e:Error):Error
[概 要]
run()内で発生した全例外をハンドリングするメソッドです. | BaseModel |
channelSet | property |
channelSet:ChannelSet
[概 要]
任意設定可能な通信チャンネルセットです.[詳 細]
[備 考]
public function get channelSet():ChannelSet
public function set channelSet(value:ChannelSet):void
destination | property |
destination:String
[概 要]
メッセージ受信を行う対象のdestinationです.[詳 細]
LCDS及びBlazeDSのmessaging-config.xmlで定義されているdestinationを設定します。[備 考]
public function get destination():String
public function set destination(value:String):void
identifier | property |
identifier:String
[概 要]
購読中のConsumerCoreを特定する為の識別子です.[詳 細]
同一destinationを購読するConsumerCoreが複数有る場合、 任意のConsumerCoreを特定する為に使用するプロパティです。 subscribe開始時に指定することが出来ます。[備 考]
public function get identifier():String
public function set identifier(value:String):void
override public function nextModel(index:int, prev:ModelProcessEvent, next:BaseModel):Boolean { switch (index) { case 0: ConsumerCore(next).destination = "chatRoom"; ConsumerCore(next).identifier = "yamada"; break; } return true; }
override public function nextModel(index:int, prev:ModelProcessEvent, next:BaseModel):Boolean { switch (index) { case 0: ConsumerCore(next).destination = "chatRoom"; ConsumerCore(next).subscribe = false; ConsumerCore(next).identifier = "yamada"; break; } return true; }
subscribe | property |
subscribe:Boolean
[概 要]
購読開始/購読停止を示すフラグです.[詳 細]
true:購読開始 false:購読停止[備 考]
The default value is true
.
public function get subscribe():Boolean
public function set subscribe(value:Boolean):void
faultHandler | () | method |
public function faultHandler(event:MessageFaultEvent):void
[概 要]
subscribe受信失敗時にコールバックされるメソッドです.[詳 細]
ConsumerCoreManagerに管理されているConsumerのMessageFaultEvent.FAULTイベントハンドラ からコールバックされます。 subscribe受信失敗処理用オーバーライドメソッドであるonFailureを テンプレートコールします。 onFailureメソッドが正常終了した後、Model処理失敗イベントを発火します。[備 考]
このメソッドはオーバーライド出来ません。 メッセージ受信失敗処理を記述する場合はonFailureメソッドをオーバーライドして下さい。Parameters
event:MessageFaultEvent — メッセージ受信失敗イベント
|
mainProc | () | method |
override protected function mainProc():void
[概 要]
サーバに対して購読の開始、停止処理を行います.[詳 細]
subscribe管理オブジェクト(ConsumerCoreManager)を取得し、購読の開始、中止を委譲します。 対象となるdestination名は「destination」プロパティから、購読開始、中止の判断を行うフラグは 「subscribe」プロパティから取得します。 購読中止(subscribeプロパティ == false)時、ConsumerCoreManager#unsubscribeメソッド処理が 例外をスローしなかった場合は、その時点でModel処理成功イベントを発火します。[備 考]
購読中止時のModel処理成功イベント内結果オブジェクトはnullです。 利用することは出来ません。onFailure | () | method |
protected function onFailure(event:MessageFaultEvent):void
[概 要]
subscribe受信失敗オーバーライド用メソッドです.[詳 細]
[備 考]
Parameters
event:MessageFaultEvent — メッセージ受信失敗イベント
|
onSuccess | () | method |
protected function onSuccess(event:MessageEvent):void
[概 要]
subscribe結果受信オーバーライド用メソッドです.[詳 細]
[備 考]
Parameters
event:MessageEvent — メッセージ受信イベント
|
resultHandler | () | method |
public final function resultHandler(event:MessageEvent):void
[概 要]
subscribe受信時にコールバックされるメソッドです.[詳 細]
ConsumerCoreManagerに管理されているConsumerのMessageEvent.MESSAGEイベントハンドラ からコールバックされます。 subscribe受信データ取得用オーバーライドメソッドであるonSuccessを テンプレートコールします。 onSuccessメソッドが正常終了した後、Model処理成功イベントを発火します。[備 考]
このメソッドはオーバーライド出来ません。 subscribe受信データをモデルレイヤで取得したい場合は、 onSuccessメソッドをオーバーライドして下さい。Parameters
event:MessageEvent — メッセージ受信イベント
|
public class SubscribeStartAction extends BaseAction { // ① subscribeを行うConsumerCore機能モデルを登録します override protected function reserveModels(models:Array):void { models.push(Class(ConsumerCore)); } // ② ConsumerCoreインスタンスの設定を行います。このケースではpublishDemoデスティネーションを購読します override public function nextModel(index:int, prev:ModelProcessEvent, next:BaseModel):Boolean { switch (index) { case 0: ConsumerCore(next).destination = "publishDemo"; break; } return true; } // ③ メッセージ購読成功時の処理を実装します // ConsumerCoreは継続的にSUCCESSイベントを返却する為、subscribe停止するまで // このメソッドへのコールバックが継続します // ConsumerCoreManagerを使用することで任意のタイミングでsubscribe停止可能です override public function successForward(index:int, model:BaseModel, resultEvent:Event):void { var list:ArrayCollection = getObjectById("serverPushArrayCollection") as ArrayCollection; list.list = MessageEvent(resultEvent).message.body as ArrayCollection; if(model.successCount == 3) { ConsumerCoreManager.getInstance().unsubscribe("publishDemo"); } } // ④ 登録モデルが完全に完了した時に呼ばれるメソッドを実装します // 継続的に値を返却するモデルの完了タイミングをハンドルします override public function complete():void { trace("subscribe is done."); } }
public class SubscribeStopAction extends BaseAction { // ① subscribe停止を行うConsumerCore機能モデルを登録します override protected function reserveModels(models:Array):void { models.push(Class(ConsumerCore)); } // ② subscribeモードをfalseに設定したConsumerCoreが実行されることでsubscribe停止します // 同一destinationをsubscribeしているConsumerCoreが複数存在するケースで、任意のConsumerCore // だけsubscribeを停止する場合、開始時に設定しておいたidentifierを指定することが出来ます // identifierが指定されなかった場合は同一destinationをsubscribe中の全ConsumerCoreがsubscribe停止します override public function nextModel(index:int, prev:ModelProcessEvent, next:BaseModel):Boolean { switch (index) { case 0: ConsumerCore(next).destination = "publishDemo"; ConsumerCore(next).subscribe = false; ConsumerCore(next).identifier = "client1"; break; } return true; } }
Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.