jp.wda.gpss
クラス ColonCommandSocklet
java.lang.Object
|
+--jp.wda.gpss.GeneralSocklet
|
+--jp.wda.gpss.CommandSocklet
|
+--jp.wda.gpss.ColonCommandSocklet
- すべての実装インタフェース:
- AttributeContainer, InitParamContainer, java.io.Serializable, Socklet
- public abstract class ColonCommandSocklet
- extends CommandSocklet
[ OProject GPSS for FlashMX ] FlashMX用汎用ソケットサーバ
コロン区切りコマンド実行Socklet基底クラス
このSockletクラスはクライアントから送られてきたメッセージのうち、
最初のコロン:までをコマンドとして解釈します。
送られてきたメッセージが"XXXX:...."なら、
cmdXXXX(SocketProcessor, String, Object)
メソッドを実行します。
コマンド解析前に、preProcess(SocketProcessor client, String command)メソッドが実行されますので、
全てのメソッドに共通のルーチンはこのメソッドをオーバーライドすると便利です。
また、このメソッドの戻り値が、cmdXXXXメソッドの3番目の引数として渡されます。
オーバーライドしない場合は、常にnullが設定されます。
例えば、クライアントから"Notify:message=Test"と言うメッセージが送られてきた場合、
次のようなメソッドが実行されます。
cmdNotify(client, "message=Test", preprocessed)
指定されたコマンドのメソッドが定義されていない場合は、
cmdUndefined(SocketProcessor client, String command, Object[] params)
メソッドが呼ばれます。
paramsは、cmdXXXXメソッドへ渡す予定だった引数の配列です。
※上記例の場合なら、new Object[]{ client, "message=Test", preprocessed }になります。
未定義コマンドの処理を行なう場合は、このメソッドをオーバーライドしてください。
通常、コマンドの文字列は大文字小文字を区別せず、頭の1文字を大文字、それ以降を小文字として解釈しますが、
execIgnoreCase(SocketProcessor client)メソッドをオーバーライドし、
このメソッドの戻り値を偽にすると、大文字小文字を変更せずにメソッドを検索します。
コマンドリフレクションメソッドの戻り値は
"true" / "false"の文字列型でもかまいませんし、int型でも構いませんが、
できるだけbooleanを返してください。
int型を返した場合は、0なら偽、それ以外なら真と解釈します。
このクラスをオーバーライドする方法は、NavalBattle Sockletのソースを参考にしてください。
- 導入されたバージョン:
- 1.00β007 2003/06/08
- バージョン:
- 1.00α008 2003/06/14
- 作成者:
- amoi
- 関連項目:
GeneralSocklet
,
直列化された形式
フィールドの概要 |
static java.lang.Class[] |
clazz
コマンドリフレクションメソッドの引数タイプ |
クラス jp.wda.gpss.GeneralSocklet から継承したメソッド |
addClient, afterDeployedLinks, allowAccessFromOtherSocklet, checkConnection, containsAttributeKey, containsClient, copyInfo, countClients, deployedBy, deployedBy, destroy, disconnectAllClients, getAllClients, getAttribute, getAttributeBoolean, getAttributeDouble, getAttributeInt, getAttributeKeys, getAttributeLong, getAttributes, getClients, getClients, getInitParam, getInitParamKeys, getInitParams, getInitParams, getMain, getName, getOtherSocklet, getTimeout, hasInitParam, init, init, init, log, log, log, log, memo, memo, memo, memo, preCreateFinder, preRemoveClient, removeAttribute, removeClient, sendToAllClients, sendToClients, sendToClients, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setMain, setTimeout |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
clazz
public static final java.lang.Class[] clazz
- コマンドリフレクションメソッドの引数タイプ
ColonCommandSocklet
public ColonCommandSocklet()
parseCommand
protected final CommandSocklet.CommandInfo parseCommand(SocketProcessor client,
java.lang.String command,
java.lang.Object preprocessed)
- 送られてきたコマンドを解析し、メソッドをリフレクションするための情報を作成します。
接続中のクライアントから、コマンドが送信されてきたときに呼ばれます。
- 定義:
- クラス
CommandSocklet
内の parseCommand
- パラメータ:
client
- コマンドを送信してきたクライアントソケットcommand
- 受信したコマンドpreprocessed
- 前処理結果オブジェクト
- 戻り値:
- 実行するコマンドリフレクションメソッドの名称等情報