personal.sakaki.io
クラス ObexServerConnection

java.lang.Object
  上位を拡張 personal.sakaki.io.ObexConnection
      上位を拡張 personal.sakaki.io.ObexServerConnection

public final class ObexServerConnection
extends ObexConnection

OBEXサーバーによる通信処理を行うクラスです。 このクラスは1回の接続で複数のオペレーションを繰り返し受信することが出来ます。 リクエストを受信および分析し、それに対するレスポンスを生成して送信するという処理がセットで1単位となります。

作成者:
さかきけい
関連項目:
ObexClientConnection, ObexManager

フィールドの概要
 
クラス personal.sakaki.io.ObexConnection から継承されたフィールド
ABORT, ACCEPTED, ASCII, BAD_GATEWAY, BAD_REQUEST, CONFLICT, CONNECT, CONTINUE, CREATED, DATABASE_FULL, DATABASE_LOCKED, DISCONNECT, FORBIDDEN, GATEWAY_TIMEOUT, GET, GONE, HTTP_VERSION_NOT_SUPPORTED, INTERNAL_SERVER_ERROR, ISO_8859_1, ISO_8859_2, ISO_8859_3, ISO_8859_4, ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8, ISO_8859_9, LENGTH_REQUIRED, METHOD_NOT_ALLOWED, MOVED_PERMANENTLY, MOVED_TEMPORARY, MULTIPLE_CHOICES, NO_CONTENT, NON_AUTHORITATIVE_INFO, NOT_ACCEPTABLE, NOT_FOUND, NOT_IMPLEMENTED, NOT_MODIFIED, PARTICAL_CONTENT, PAYMENT_REQUIRED, PRECONDITION_FAILED, PROXY_AUTHENTICATION_REQUIRED, PUT, REQUEST_TIME_OUT, REQUEST_URL_TOO_LARGE, REQUESTED_ENTITY_TOO_LARGE, RESET_CONTENT, SEE_OTHER, SERVICE_UNAVAILABLE, SETPATH, SUCCESS, UNAUTHORIZED, UNICODE, UNSUPPORTED_MEDIA_TYPE, USE_PROXY
 
メソッドの概要
 void accept()
          クライアントから接続が行われるのを待ち、接続に関するネゴシエーションを行います。
 void authenticate()
          設定されている認証情報に基づいてクライアントに認証を求めます。
 int getOperation()
          最後に受信したリクエストのオペレーションコードを返します。
 boolean isSetPath_BackupLevel()
          SETPATHオペレーションにおいて、実行前上位フォルダへ移動(bit0)フラグが設定されているか否かを返します。
 boolean isSetPath_NoFolderCreate()
          SETPATHオペレーションにおいて、非フォルダ作成&エラーレポート(bit1)フラグが設定されているか否かを返します。
 void receiveRequest()
          クライアントからリクエストを受信します。
 void receiveRequest(java.io.OutputStream os)
          クライアントからリクエストを受信します。
 void sendResponse(int code)
          クライアントから受け取ったリクエストに対するレスポンスを送信します。
 void sendResponse(int code, java.io.InputStream is)
          クライアントから受け取ったリクエストに対するレスポンスを送信します。
 void setReadOnly(boolean flag)
          クライアントにアクセスはリードオンリーであることを示すか否かを設定します。
 void setRealm(int nCode, java.lang.String strRealm)
          送信するRealmとそのコードセットを設定します。
 void setRequestUserId(boolean flag)
          ユーザーIDをクライアントに求めるか否かを設定します。
 
クラス personal.sakaki.io.ObexConnection から継承されたメソッド
addHttpHeader, close, finalize, getBody, getContentLength, getCount, getDescription, getHttpHeader, getHttpHeaderNames, getName, getReceiveMTU, getSendMTU, getTime, getType, openDataInputStream, openDataOutputStream, openInputStream, openOutputStream, removeHttpHeader, setAuthenticator, setBody, setCount, setDescription, setName, setPassword, setPrivateKey, setTime, setTimeFormat, setType, setUserId
 
クラス java.lang.Object から継承されたメソッド
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

accept

public void accept()
            throws ObexException

クライアントから接続が行われるのを待ち、接続に関するネゴシエーションを行います。 このメソッドを呼び出してから切断するまでの間、クライアントとOBEXプロトコルによる通信を行うことが出来ます。

既にaccpetを行った状態で再度このメソッドを呼び出すとIllegalStateException例外クラスがthrowされます。

処理中に何らかの障害が発生した場合、適切なステータスをセットしてObexException例外クラスがthrowされます。

例外:
ObexException - 処理中に何らかの障害が発生した際に、適切なステータスが設定されてthrowされます。
java.lang.IllegalStateException - 既にaccpet済みのオブジェクトあるいはクローズ済みのオブジェクトにおいて、再度このメソッドを呼び出すとthrowされます。

receiveRequest

public void receiveRequest(java.io.OutputStream os)
                    throws java.io.IOException

クライアントからリクエストを受信します。受信したリクエストを分析し、ObexConnectionクラスの各種メソッドで取得できるようにします。 なお、受信したリクエストにBODYおよびEND-OF-BODYヘッダによるデータが含まれていた場合、そのデータはパラメータで渡した出力ストリームに書き込みます。

処理中に何らかの障害が発生した場合、適切なステータスをセットしてObexException例外クラスがthrowされます。

パラメータ:
os - BODYおよびEND-OF-BODYパケットに含まれるデータを受け取る出力ストリームオブジェクトを渡します。
例外:
java.io.IOException - 出力ストリームの操作中に発生した例外クラスがスルーされます。
ObexException - 通信操作中に何らかの問題が発生した場合に対応するステータスが設定されてthrowされます。
java.lang.IllegalStateException - accept()メソッドを呼び出す前あるいはリクエストに対するレスポンスを返す前またクローズ済みのオブジェクトに対してこのメソッドを呼び出した場合にthrowされます。

receiveRequest

public void receiveRequest()
                    throws ObexException

クライアントからリクエストを受信します。受信したリクエストを分析し、ObexConnectionクラスの各種メソッドで取得できるようにします。 なお、受信したリクエストにBODYおよびEND-OF-BODYヘッダによるデータが含まれていた場合、そのデータもObexConnectionクラスのgetBody()およびopenInputStream()openDataInputStream()メソッドで取得できます。

処理中に何らかの障害が発生した場合、適切なステータスをセットしてObexException例外クラスがthrowされます。

例外:
ObexException - 通信操作中に何らかの問題が発生した場合に対応するステータスが設定されてthrowされます。
java.lang.IllegalStateException - accept()メソッドを呼び出す前あるいはリクエストに対するレスポンスを返す前またはクローズ済みのオブジェクトに対してこのメソッドを呼び出した場合にthrowされます。

getOperation

public int getOperation()

最後に受信したリクエストのオペレーションコードを返します。 リクエストを受信する前にこのメソッドを呼び出すとIllegalStateException例外クラスをthrowします。

例外:
java.lang.IllegalStateException - リクエストを受信する前にこのメソッドを呼び出すとthrowします。

sendResponse

public void sendResponse(int code,
                         java.io.InputStream is)
                  throws java.io.IOException

クライアントから受け取ったリクエストに対するレスポンスを送信します。 リクエストを受け取る前にこのメソッドを呼び出した場合、IllegalStateException例外クラスをthrowします。

このメソッドはsendResponse(int)メソッドと同様にクライアントへレスポンスを送信するために使用しますが、BODYおよびEND-OF-BODYヘッダにて送信するデータを入力ストリームを用いて渡す点が異なります。 このため、このメソッドは大量あるいは不明なデータ量のデータを送信するのに適しています。

パラメータ:
code - クライアントへ送信するレスポンスコードを渡します。
is - クライアントへBODYおよびEND-OF-BODYヘッダで送信するデータへ接続した入力ストリームを渡します。
例外:
java.lang.IllegalStateException - リクエストを受け取る前あるいはクローズ済みのオブジェクトに対してこのメソッドを呼び出した場合にthrowされます。
java.lang.IllegalArgumentException - GETオペレーション以外でBODYおよびEND-OF-BODYヘッダで送信するデータを指定した際にthrowされます。
ObexException - レスポンス送信処理中に何らかの問題が発生した場合に該当するステータスを設定してthrowします。
java.io.IOException - 入力ストリームの操作中にthrowされた例外をスルーします。

sendResponse

public void sendResponse(int code)
                  throws ObexException

クライアントから受け取ったリクエストに対するレスポンスを送信します。 リクエストを受け取る前にこのメソッドを呼び出した場合、IllegalStateException例外クラスをthrowします。

このメソッドはsendResponse(int, InputStream)メソッドと同様にクライアントへレスポンスを送信するために使用しますが、BODYおよびEND-OF-BODYヘッダにて送信するデータを以下に示すメソッドを用いて用いて渡す点が異なります。

このため、このメソッドは少量あるいは明確に量が想定できるデータを送信するのに適しています。

パラメータ:
code - クライアントへ送信するレスポンスコードを渡します。
例外:
java.lang.IllegalStateException - リクエストを受け取る前あるいはクローズ済みのオブジェクトに対してこのメソッドを呼び出した場合にthrowされます。
java.lang.IllegalArgumentException - GETオペレーション以外でBODYおよびEND-OF-BODYヘッダで送信するデータを指定した際にthrowされます。
ObexException - レスポンス送信処理中に何らかの問題が発生した場合に該当するステータスを設定してthrowします。

setRealm

public void setRealm(int nCode,
                     java.lang.String strRealm)

送信するRealmとそのコードセットを設定します。 文字列にnullを指定すると設定されているRealmを削除します。

パラメータ:
nCode - 送信する際に使用するコードセットを渡します。
strRealm - 送信するRealmを渡します。
例外:
java.lang.IllegalArgumentException - nCodeが不正な値の場合にthrowされます。
関連項目:
ObexConnection.ASCII, ObexConnection.ISO_8859_1, ObexConnection.ISO_8859_2, ObexConnection.ISO_8859_3, ObexConnection.ISO_8859_4, ObexConnection.ISO_8859_5, ObexConnection.ISO_8859_6, ObexConnection.ISO_8859_7, ObexConnection.ISO_8859_8, ObexConnection.ISO_8859_9, ObexConnection.UNICODE

setRequestUserId

public void setRequestUserId(boolean flag)

ユーザーIDをクライアントに求めるか否かを設定します。

パラメータ:
flag - 求める場合はtrueを、求めない場合はfalseを渡します。

setReadOnly

public void setReadOnly(boolean flag)

クライアントにアクセスはリードオンリーであることを示すか否かを設定します。 なお、実際にリードオンリーの振る舞いを提供するのはアプリケーション側のコーディングが必要です。

パラメータ:
flag - 示す場合はtrueを、示さない場合はfalseを渡します。

authenticate

public void authenticate()
                  throws ObexException

設定されている認証情報に基づいてクライアントに認証を求めます。 認証に失敗したり、認証に対する応答を行わなかった場合にはObexException例外クラスをAUTHENTICATION_FAILUREステータスでthrowします。

認証に成功すると呼び出し元に処理を戻します。 続いて通常のリクエストの処理と同様に各種設定を行ってからsendResponse(int, java.io.InputStream)メソッドを呼び出します。

例外:
java.lang.IllegalStateException - リクエストを受け取る前あるいはクローズ済みのオブジェクトに対してこのメソッドを呼び出した場合にthrowされます。
ObexException - 認証処理中に何らかの問題が発生した場合に該当するステータスを設定してthrowします。

isSetPath_BackupLevel

public boolean isSetPath_BackupLevel()

SETPATHオペレーションにおいて、実行前上位フォルダへ移動(bit0)フラグが設定されているか否かを返します。 このメソッドは暫定的に作成したもので、今後名称を変更したり廃止したりする可能性があります。

戻り値:
フラグが設定されているならtrueを、そうでなければfalseを返します。
例外:
java.lang.IllegalStateException - SETPATHオペレーションを受信する前にこのメソッドを呼び出した場合にthrowします。

isSetPath_NoFolderCreate

public boolean isSetPath_NoFolderCreate()

SETPATHオペレーションにおいて、非フォルダ作成&エラーレポート(bit1)フラグが設定されているか否かを返します。 このメソッドは暫定的に作成したもので、今後名称を変更したり廃止したりする可能性があります。

戻り値:
フラグが設定されているならtrueを、そうでなければfalseを返します。
例外:
java.lang.IllegalStateException - SETPATHオペレーションを受信する前にこのメソッドを呼び出した場合にthrowします。


本ライブラリは"さかきけい"が作成した無保証の評価目的専用のOBEXライブラリです。他の用途への転用は一切行えません。
記載された内容および本ライブラリには既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本APIリファレンスおよび本ライブラリを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開およびInternet/Intranet/LANを問わず他サイトに転載すること、複写および複製することを禁じます。

Copyright© 2002-2008 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。