jp.wda.gpss.system
クラス ExecutableBase

java.lang.Object
  拡張jp.wda.gpss.system.ExecutableBase
すべての実装インタフェース:
java.lang.Runnable
直系の既知のサブクラス:
Main, MainNio, MainNioPooledThread, MainReactor

public abstract class ExecutableBase
extends java.lang.Object
implements java.lang.Runnable

ソケット待ちうけメインサーバ基底クラス

導入されたバージョン:
1.00β004 2003/05/25
バージョン:
1.04 2003/11/27
作成者:
amoi

フィールドの概要
static java.lang.String DEFAULT_APPLICATION_NAME
          デフォルトのSocklet名
static int DEFAULT_BUFFER_SIZE
          デフォルトのメッセージバッファサイズ
static java.lang.String DEPLOY_BY_SYSTEM
          待受けサーバによって配備されたことを示す文字列
gpss.Socklet#deployedBy()で得られたSocklet名が、この文字列と等しい場合は、 待受けサーバによって配備されたことを意味します。
protected  jp.wda.gpss.system.SockletLoader scriptLoader
          ScriptSockletロード用のクラスローダ
static java.lang.String SYSTEM_APPLICATION_NAME
          システムコマンド処理のSocklet名
 
メソッドの概要
abstract  void accept()
          サーバを開始し、クライアントからの接続を受け付ける処理を記述してください。
 void doInitialCommand(jp.wda.gpss.system.SocketProcessorBase client, java.lang.String command)
          クライアントソケット処理オブジェクトから、接続用初期コマンドを受信し、 クライアントソケット処理オブジェクトを初期化します。
 java.lang.String getEncoding()
          初期設定ファイルに設定された、ソケットのエンコーディング名を取得します。
 int getInitialTimeout()
          初期設定ファイルに設定された、接続用初期コマンドのタイムアウト時間(ミリ秒)を取得します。
 int getMessagesBufferSize()
          初期設定ファイルに設定された、メッセージ送信用バッファサイズを取得します。
protected static java.lang.String getNextCommand(java.lang.String[] command, java.lang.String separator)
          指定されたコマンド列から区切り文字までのコマンドを取得します。
 int getPort()
          初期設定ファイルに設定された、サーバの待受けポート番号を取得します。
 Progress getProgress()
          ソケット処理状況進捗管理オブジェクトを取得します。
 Socklet getSocklet(java.lang.String appname)
          指定された配備名のSockletを取得します。
 java.lang.String getSockletsList()
          現在起動中のSocklet一覧を、カンマ区切りで表現した文字列を取得します。
 void run()
          待受けサーバスレッドの処理内容です。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

DEFAULT_APPLICATION_NAME

public static final java.lang.String DEFAULT_APPLICATION_NAME
デフォルトのSocklet名

関連項目:
定数フィールド値

SYSTEM_APPLICATION_NAME

public static final java.lang.String SYSTEM_APPLICATION_NAME
システムコマンド処理のSocklet名

関連項目:
定数フィールド値

DEPLOY_BY_SYSTEM

public static final java.lang.String DEPLOY_BY_SYSTEM
待受けサーバによって配備されたことを示す文字列
gpss.Socklet#deployedBy()で得られたSocklet名が、この文字列と等しい場合は、 待受けサーバによって配備されたことを意味します。

関連項目:
Socklet.deployedBy(), 定数フィールド値

DEFAULT_BUFFER_SIZE

public static final int DEFAULT_BUFFER_SIZE
デフォルトのメッセージバッファサイズ

関連項目:
定数フィールド値

scriptLoader

protected jp.wda.gpss.system.SockletLoader scriptLoader
ScriptSockletロード用のクラスローダ

メソッドの詳細

getEncoding

public java.lang.String getEncoding()
初期設定ファイルに設定された、ソケットのエンコーディング名を取得します。

戻り値:
エンコーディング名

getPort

public int getPort()
初期設定ファイルに設定された、サーバの待受けポート番号を取得します。

戻り値:
サーバの待受けポート番号

getInitialTimeout

public int getInitialTimeout()
初期設定ファイルに設定された、接続用初期コマンドのタイムアウト時間(ミリ秒)を取得します。

戻り値:
接続用初期コマンドのタイムアウト時間(ミリ秒)

getMessagesBufferSize

public int getMessagesBufferSize()
初期設定ファイルに設定された、メッセージ送信用バッファサイズを取得します。

戻り値:
メッセージ送信用バッファサイズ

getSocklet

public Socklet getSocklet(java.lang.String appname)
指定された配備名のSockletを取得します。
指定された配備名のSockletがこのサーバに配備されていない場合は、nullを返します。

パラメータ:
appname - Socklet配備名
戻り値:
指定された配備名のSocklet

getSockletsList

public java.lang.String getSockletsList()
現在起動中のSocklet一覧を、カンマ区切りで表現した文字列を取得します。


getProgress

public Progress getProgress()
ソケット処理状況進捗管理オブジェクトを取得します。

戻り値:
ソケット処理状況進捗管理オブジェクト

doInitialCommand

public void doInitialCommand(jp.wda.gpss.system.SocketProcessorBase client,
                             java.lang.String command)
クライアントソケット処理オブジェクトから、接続用初期コマンドを受信し、 クライアントソケット処理オブジェクトを初期化します。

接続用初期コマンドは":"区切りで、書式は以下の通りです。

所属したいSockletの配備名:ユーザー名:パスワード:初期化パラメータ
ユーザー名、パスワード及び初期化パラメータは省略できます。
登録されていないSocklet名が指定された場合は、既定のSockletが使用されます。

初期化パラメータは"&"区切りで、書式は以下の通りです。
パラメータ名=値&パラメータ名=値&...

接続コマンドの例を示します。
YChat:amoi:****:chatroom=ROOM1&charactor=smily

パラメータ:
client - クライアントソケット処理オブジェクト
command - 接続用初期コマンド

run

public void run()
待受けサーバスレッドの処理内容です。
このメソッドからaccept()メソッドが呼ばれますので、 スレッドの具体的な処理はそちらのメソッドをオーバーライドして記述してください。
また、setRestartAfterShutdown()メソッドを呼び出した後にaccept()メソッドの処理を停止させると、 その後直ちに待受けサーバスレッドを再起動します。

定義:
インタフェース java.lang.Runnable 内の run
関連項目:
accept(), Runnable.run()

getNextCommand

protected static java.lang.String getNextCommand(java.lang.String[] command,
                                                 java.lang.String separator)
指定されたコマンド列から区切り文字までのコマンドを取得します。
これでコマンド列が終了する場合は、command[0]をnullに設定します。
(StringTokenizerを使えば良いのはわかっちゃいるんですが…)

パラメータ:
command - コマンド列
separator - 区切り文字
戻り値:
次のコマンド

accept

public abstract void accept()
サーバを開始し、クライアントからの接続を受け付ける処理を記述してください。 このメソッドは、Runnable#run()メソッドから呼ばれます。