public class RciServer.Invoker
extends java.lang.Object
implements java.lang.Runnable
修飾子とタイプ | フィールドと説明 |
---|---|
protected RciServer.Accepter |
accepter |
protected CryptFilter |
cryptFilter
暗号化フィルター
|
protected java.io.DataInputStream |
dis |
protected java.io.DataOutputStream |
dos |
protected boolean |
encryptPacket
回線を暗号化する場合はtrue
|
protected java.util.HashMap<java.lang.Integer,java.lang.Object> |
instanceMap |
protected int |
iNumber |
protected java.util.HashMap<java.lang.Integer,java.lang.Integer> |
listenerMap |
protected java.lang.String |
loginUsername
接続されたユーザ名
|
protected java.lang.String |
remoteAddress
クライアントのIPアドレス
|
protected int |
singleNumber |
protected java.net.Socket |
socket |
protected boolean |
userCertification
回線でユーザ認証を行う場合はtrue
|
protected UserConfig |
userConfig
ユーザ設定情報
|
コンストラクタと説明 |
---|
Invoker(java.net.Socket socket)
1つのコネクションの送受信スレッドの生成
|
Invoker(java.net.Socket socket,
RciServer.Accepter accepter)
1つのコネクションの送受信スレッドの生成
|
修飾子とタイプ | メソッドと説明 |
---|---|
protected void |
avoidXMLEncode(Packet req)
serializeできていれば、それを使ってインスタンスを作るので、XMLEncoderの対象外にする。
|
protected void |
checkState()
実行可能か判定し不可の場合は例外を投げる
|
void |
close()
クライアントとの回線断
|
protected void |
delListener()
RciListenerInvokerのイベント転送情報を削除する。
|
protected UserConfig |
getUserConfig(java.lang.String username)
ユーザの設定情報を取得する。
|
protected void |
init()
ソケット入出力の初期化
|
protected void |
invokeCertificateUser(Packet req)
ユーザ認証を行う
|
protected void |
invokeClientListener(int listenerKey,
java.lang.Object... objects)
RciListenerInvokerから非同期通知をクライアントに転送するためにこのメソッドを使う。
|
protected void |
invokeExchangeKey(Packet req)
鍵交換を行う
|
protected void |
invokeInstance(Packet req)
インスタンスクラスのメソッドを実行する。
|
protected void |
invokeSingle(Packet req)
シングルトンのインスタンスを取得する
|
protected void |
invokeStatic(Packet req)
スタティックメソッドを実行する。
|
protected void |
invokeUpdatePassword(Packet req)
パスワード情報を更新する。
|
protected boolean |
isAccessibleClass(java.lang.String className)
クラスのアクセスが許容されているか判定する。
|
protected boolean |
isAccessibleClass(java.lang.String className,
java.lang.String methodName)
メソッドのアクセスが許容されているか判定する。
|
protected boolean |
isAccessiblePackage(java.lang.String packageName)
パッケージのアクセスが許容されているか判定する。
|
protected void |
recieved(java.lang.String text)
パケット受信後の処理振り分けを行う
|
protected java.lang.String |
recv()
ソケットから復号化して受信
|
protected void |
removeListener(Packet req)
サーバ側でイベントをクライアントに転送するリスナーを削除する。
|
void |
run()
ソケット受信用のスレッド
|
protected void |
send(java.lang.String text)
ソケットへ暗号化して送信
|
protected void |
setListener(Packet req,
java.lang.Object[] args)
サーバ側でイベントをクライアントに転送するリスナーを登録する。
|
protected RciServer.Accepter accepter
protected java.net.Socket socket
protected java.io.DataInputStream dis
protected java.io.DataOutputStream dos
protected java.util.HashMap<java.lang.Integer,java.lang.Object> instanceMap
protected java.util.HashMap<java.lang.Integer,java.lang.Integer> listenerMap
protected int iNumber
protected int singleNumber
protected CryptFilter cryptFilter
protected java.lang.String loginUsername
protected java.lang.String remoteAddress
protected UserConfig userConfig
protected boolean encryptPacket
protected boolean userCertification
public Invoker(java.net.Socket socket)
socket
- 1つのクライアントとの回線のソケットpublic Invoker(java.net.Socket socket, RciServer.Accepter accepter)
socket
- 1つのクライアントとの回線のソケットaccepter
- クライアントの接続を待ち受けるpublic void close()
protected void init()
public void run()
run
インタフェース内 java.lang.Runnable
protected void recieved(java.lang.String text) throws java.lang.Exception
text
- 電文データjava.lang.Exception
- 何らかの例外protected void checkState()
protected java.lang.String recv() throws java.io.IOException
java.io.IOException
- IO例外protected void send(java.lang.String text) throws java.io.IOException
text
- 平文java.io.IOException
- IO例外protected void invokeInstance(Packet req) throws java.lang.Exception
req
- パケットjava.lang.Exception
- 何らかの例外protected void invokeClientListener(int listenerKey, java.lang.Object... objects) throws java.lang.Exception
listenerKey
- クライアントでイベントリスナーを起動するための識別番号objects
- メソッド名とパラメータjava.lang.Exception
- 何らかの例外protected void avoidXMLEncode(Packet req)
req
- パケットprotected void setListener(Packet req, java.lang.Object[] args)
req
- パケットargs
- リスナー登録情報protected void removeListener(Packet req)
req
- パケットprotected void delListener()
protected void invokeExchangeKey(Packet req) throws java.lang.Exception
req
- パケットjava.lang.Exception
- 何らかの例外protected void invokeCertificateUser(Packet req) throws java.lang.Exception
req
- パケットjava.lang.Exception
- 何らかの例外protected void invokeUpdatePassword(Packet req) throws java.lang.Exception
req
- パケットjava.lang.Exception
- 何らかの例外protected void invokeStatic(Packet req) throws java.lang.Exception
req
- パケットjava.lang.Exception
- 何らかの例外protected void invokeSingle(Packet req) throws java.lang.Exception
req
- パケットjava.lang.Exception
- 何らかの例外protected boolean isAccessibleClass(java.lang.String className)
className
- クラスの完全修飾名protected boolean isAccessiblePackage(java.lang.String packageName)
packageName
- パッケージ名protected boolean isAccessibleClass(java.lang.String className, java.lang.String methodName)
className
- クラスの完全修飾名methodName
- メソッド名protected UserConfig getUserConfig(java.lang.String username)
username
- ユーザ名