jp.wda.gpss
クラス CommandSocklet

java.lang.Object
  拡張jp.wda.gpss.GeneralSocklet
      拡張jp.wda.gpss.CommandSocklet
すべての実装インタフェース:
AttributeContainer, InitParamContainer, java.io.Serializable, Socklet
直系の既知のサブクラス:
ColonCommandSocklet, XMLCommandSocklet

public abstract class CommandSocklet
extends GeneralSocklet

[ OProject GPSS for FlashMX ] FlashMX用汎用ソケットサーバ
指定されたコマンドのメソッドをリフレクションして実行するSocklet基底クラス。
コマンドの解釈方法は、parseCommandメソッドをオーバーライドし、記述します。
具体的な解釈方法は、各派生クラスをご覧ください。

導入されたバージョン:
1.00α008 2003/06/14
バージョン:
1.03 2003/09/20
作成者:
amoi
関連項目:
GeneralSocklet, 直列化された形式

入れ子クラスの概要
protected  class CommandSocklet.CommandInfo
          実行するコマンドリフレクションメソッドの名称等情報保持クラス
 
フィールドの概要
 
クラス jp.wda.gpss.GeneralSocklet から継承したフィールド
progress
 
コンストラクタの概要
CommandSocklet()
           
 
メソッドの概要
 boolean cmdUndefined(SocketProcessor client, java.lang.String command, java.lang.Object[] params)
          コマンド名処理リフレクションメソッド未定義字の処理を行ないます。
 boolean doCommand(SocketProcessor client, java.lang.String command)
          コマンドを処理するためのメソッド。
 boolean execIgnoreCase(SocketProcessor client)
          コマンド名の大文字小文字を区別するかどうかを決定します。
protected abstract  CommandSocklet.CommandInfo parseCommand(SocketProcessor client, java.lang.String command, java.lang.Object preprocessed)
          送られてきたコマンドを解析し、メソッドをリフレクションするための情報を作成します。
 java.lang.Object preProcess(SocketProcessor client, java.lang.String command)
          コマンド実行前処理を行ないます。
 
クラス 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
 

コンストラクタの詳細

CommandSocklet

public CommandSocklet()
メソッドの詳細

doCommand

public final boolean doCommand(SocketProcessor client,
                               java.lang.String command)
インタフェース Socklet の記述:
コマンドを処理するためのメソッド。
接続中のクライアントから、コマンドが送信されてきたときに呼ばれます。 サブクラスはこのメッソド中で、クライアントから送られてきたコマンドを処理してください。
クライアントの接続中に何度でも呼ばれます。

コマンドを送ってきたソケットに対して、メッセージを送信したい場合は、以下のメソッドを使用してください。

client.send(送信するメッセージ);

接続中の全クライアントへメッセージを送信したい場合は、以下のメソッドを使用してください。

sendToAllClients(送信するメッセージ);

また、特定のクライアントへのみメッセージを送りたい場合は、 SocketProcessorFinder派生クラスを用いて以下のメソッドを使用してください。

sendToClients(送信するメッセージ, SocketProcessorFinder);
または、
sendToClients(送信するメッセージ, 送信したいクライアントの検索条件文);

SocketProcessorFinderには、ユーザー名での検索用クラスやパラメタ値での検索用クラスなどが用意されています。

パラメータ:
client - コマンドを送信してきたクライアントソケット
command - 受信したコマンド
戻り値:
コマンド実行に成功した場合は真、失敗した場合は偽 偽を返すと直ちにクライアントソケットを終了します。

parseCommand

protected abstract CommandSocklet.CommandInfo parseCommand(SocketProcessor client,
                                                           java.lang.String command,
                                                           java.lang.Object preprocessed)
送られてきたコマンドを解析し、メソッドをリフレクションするための情報を作成します。
接続中のクライアントから、コマンドが送信されてきたときに呼ばれます。
派生クラスではこのメソッドをオーバーライドし、コマンドの解釈方法を記述してください。

パラメータ:
client - コマンドを送信してきたクライアントソケット
command - 受信したコマンド
preprocessed - 前処理結果オブジェクト
戻り値:
実行するコマンドリフレクションメソッドの名称等情報を返してください。

cmdUndefined

public boolean cmdUndefined(SocketProcessor client,
                            java.lang.String command,
                            java.lang.Object[] params)
コマンド名処理リフレクションメソッド未定義字の処理を行ないます。

パラメータ:
client - コマンドを送信してきたクライアントソケット
command - 未定義の実行コマンド名
params - コマンド値
戻り値:
コマンド実行に成功した場合は真、失敗した場合は偽 偽を返すと直ちにクライアントソケットを終了します。

preProcess

public java.lang.Object preProcess(SocketProcessor client,
                                   java.lang.String command)
                            throws SockletException
コマンド実行前処理を行ないます。
このメソッドの戻り値は、コマンド処理リフレクションメソッドに引き渡されます。
全てのコマンドに共通する処理を記述したい場合は、このメソッドをオーバーライドしてください。
SockletException例外を投げると、コマンドの解釈を中止し、doCommand内で直ちに偽を返します。

パラメータ:
client - コマンドを送信してきたクライアントソケット
command - 受信したコマンド
戻り値:
前処理結果オブジェクト
例外:
SockletException - コマンド解釈処理を中止したい場合。

execIgnoreCase

public boolean execIgnoreCase(SocketProcessor client)
コマンド名の大文字小文字を区別するかどうかを決定します。 真を返す場合は、大文字小文字を区別しません。

パラメータ:
client - コマンドを送信してきたクライアントソケット
戻り値:
大文字小文字を区別しないなら真