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
          コマンドリフレクションメソッドの引数タイプ
 
コンストラクタの概要
ColonCommandSocklet()
           
 
クラス jp.wda.gpss.CommandSocklet から継承したメソッド
cmdUndefined, doCommand, execIgnoreCase, preProcess
 
クラス 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, 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 から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

clazz

public static final java.lang.Class[] clazz
コマンドリフレクションメソッドの引数タイプ

コンストラクタの詳細

ColonCommandSocklet

public ColonCommandSocklet()