|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjp.co.fujitsu.reffi.client.nexaweb.model.BaseModel
jp.co.fujitsu.reffi.client.nexaweb.model.XalReturnPossibilityModel
jp.co.fujitsu.reffi.client.nexaweb.model.SubscribeCore
public class SubscribeCore
[概 要]
トピックをクライアントで購読する為の機能モデルクラスです。[詳 細]
[備 考]
トピックの購読開始と中止は別々のSubscribeCoreで制御することが可能です。同一のSubscribeCoreで購読の開始と中止を行う場合(下記使用例)、SubscriberManager に対してunsubscribeを行うこととなりますが、unsubscribeを実行すると再度successForward が呼び出されます。
別々のSubscribeCoreで購読の開始と中止を行う場合、購読中止のSubscribeCoreを
予約したActionと購読開始のSubscribeCoreを予約したActionに対してsuccessForward
が呼び出されます。
これはActionの多重起動抑制が有効な場合、購読開始を行ったActionが購読中止を認識
できないと、購読を開始したActionが終了することがなく、再度同一のActionを実行することが
不可能となるためです。
両者に共通することで、購読中止の際はsuccessForwardの引数「result」はnullに設定され、
SubscribeCoreから取得できるsuccessCountはインクリメントされた状態となっています。
使用例)
・指定回数subscribeしたらunsubscribeする
public class ServerPushDemoAction extends BaseAction {
@Override
protected void reserveModels(List> models) {
models.add(SubscribeCore.class);
}
@Override
public boolean nextModel(int index, ModelProcessEvent prev, Model next) throws Exception {
switch(index){
case 0:
((SubscribeCore)next).setTopic("serverPushDemo");
((SubscribeCore)next).setSubscribe(true);
break;
}
return true;
}
@Override
public void successForward(int index, Model model, Object result) throws Exception {
switch(index) {
case 0:
// 3回subscribeしたらunsubscribeする
SubscribeCore subscribeCore = ((SubscribeCore)model);
if(subscribeCore.getSuccessCount() > 3) {
SubscriberManager.getInstance().unsubscribe(subscribeCore.getTopic());
}
ObjectDataSource odc = getObjectDataSourceById("hostDataSource");
odc.setSource(result);
break;
}
}
}
[環 境] JDK 6.0 Update 11
Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.
SubscribeManager| コンストラクタの概要 | |
|---|---|
SubscribeCore()
|
|
| メソッドの概要 | |
|---|---|
java.lang.String |
getIdentifier()
[概 要] トピックを受信中のSubscribeCoreを識別する為の識別子を返却します。 |
java.lang.String |
getTopic()
[概 要] 購読開始、中止対象トピック名を取得します。 |
boolean |
isSubscribe()
[概 要] 開始、中止を判断するフラグを取得します。 |
protected void |
mainproc()
[概 要] subscribeの開始、中止処理を行います。 |
protected void |
postSubscribe(java.lang.Object result)
[概 要] subscribe結果受信用オーバーライドメソッドです。 |
protected void |
postUnsubscribe()
[概 要] unsubscribe用オーバーライドメソッドです。 |
void |
setIdentifier(java.lang.String identifier)
[概 要] トピックを受信中のSubscribeCoreを識別する為の識別子を設定します。 |
void |
setSubscribe(boolean subscribe)
[概 要] 開始、中止を判断するフラグを設定します。 |
void |
setTopic(java.lang.String topic)
[概 要] 購読開始、中止対象トピック名を設定します。 |
void |
subscribeCompleted(java.lang.Object result)
[概 要] subscribe受信時にコールバックされるメソッドです。 |
void |
unsubscribeCompleted()
[概 要] unsubscribe時にコールバックされるメソッドです。 |
| クラス jp.co.fujitsu.reffi.client.nexaweb.model.XalReturnPossibilityModel から継承されたメソッド |
|---|
addIdentifierToWindows, getCommunicateId, getEventSourceWindow, setCommunicateId, setEventSourceWindow |
| クラス jp.co.fujitsu.reffi.client.nexaweb.model.BaseModel から継承されたメソッド |
|---|
addModelProcessListener, finalproc, fireModelFailure, fireModelFinished, fireModelSuccess, getController, getExecuteIndex, getListenerList, getParameterMapping, getResult, getSuccessCount, incrementSuccessCount, isSkip, postproc, preproc, removeModelProcessListener, run, setController, setExecuteIndex, setListenerList, setParameterMapping, setResult, setSkip, trap |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public SubscribeCore()
| メソッドの詳細 |
|---|
public java.lang.String getTopic()
[概 要]
購読開始、中止対象トピック名を取得します。[詳 細]
topicフィールド値を返却します。[備 考]
public void setTopic(java.lang.String topic)
[概 要]
購読開始、中止対象トピック名を設定します。[詳 細]
topicフィールド値を引数topicで設定します。[備 考]
topic - 購読開始、中止対象トピック名public boolean isSubscribe()
[概 要]
開始、中止を判断するフラグを取得します。[詳 細]
subscribeフィールド値を返却します。[備 考]
public void setSubscribe(boolean subscribe)
[概 要]
開始、中止を判断するフラグを設定します。[詳 細]
subscribeフィールド値を引数subscribeで設定します。[備 考]
subscribe - 開始、中止フラグpublic java.lang.String getIdentifier()
[概 要]
トピックを受信中のSubscribeCoreを識別する為の識別子を返却します。[詳 細]
identifierフィールド値を返却します。[備 考]
public void setIdentifier(java.lang.String identifier)
[概 要]
トピックを受信中のSubscribeCoreを識別する為の識別子を設定します。[詳 細]
identifierフィールド値を引数identifierで設定します。[備 考]
identifire - トピックを受信中のSubscribeCoreを識別する為の識別子
protected void mainproc()
throws java.lang.Exception
[概 要]
subscribeの開始、中止処理を行います。[詳 細]
subscribe管理オブジェクト(SubscribeManager)を取得し、購読の開始、中止を委譲します。
購読中止(isSubscribe() == false)時、unsubscribeメソッド処理が例外をスローしなかった
場合は、その時点でModel処理成功イベントを発火します。
[備 考]
購読中止時のModel処理成功イベント内結果オブジェクトはnullです。 利用することは出来ません。
XalReturnPossibilityModel 内の mainprocjava.lang.Exception - オーバーライド先で発生する可能性が有る例外public final void subscribeCompleted(java.lang.Object result)
[概 要]
subscribe受信時にコールバックされるメソッドです。[詳 細]
SubscribeManagerに管理されているMessageListnerのonMessageイベントハンドラ からコールバックされます。[備 考]
このメソッドはオーバーライド出来ません。
result - subscribeの結果受信したオブジェクトpublic final void unsubscribeCompleted()
[概 要]
unsubscribe時にコールバックされるメソッドです。[詳 細]
SubscribeManagerにて指定したトピックの購読を中止した際、 SubscribeManagerが管理するSubscribeCoreの本メソッドをコールして 購読を中止した旨を通知します。[備 考]
このメソッドはオーバーライド出来ません。
protected void postSubscribe(java.lang.Object result)
[概 要]
subscribe結果受信用オーバーライドメソッドです。[詳 細]
デフォルト処理は有りません。[備 考]
result - subscribeの結果受信したオブジェクトprotected void postUnsubscribe()
[概 要]
unsubscribe用オーバーライドメソッドです。[詳 細]
デフォルト処理は有りません。[備 考]
購読中止の際はデータはないため、引数はありません。
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||