|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
OBEX外部接続機能によって通信を行うときに、 OBEXクライアントとOBEXサーバで共通に使われるフィールドやメソッドを定義したインタフェースです。
なお、JSCLのOBEX外部接続機能は IrDA の規格に基づいて実装されますが、このドキュメントでは IrDA 規格そのものについての解説は行いません。 これらの規格に関する詳細は、Infrared Data Association の制定している各種規格書を参照してください。
JSCLが準拠するIrDA の各規格とバージョンを以下に示します。
OBEX(IrOBEX)は、赤外線ポートを介したデータ送受信の手順を「オブジェクトの交換」という形式で規格化したものです。 ここでいうオブジェクトとは、一塊となることで意味を持つ、たとえばファイルなどの一般的なデータの実体のことを指します。
OBEX自体はデータ送受信の手順(プロトコル)を規格化したものであり、APIを規格化したものではありません。 JSCLでは、Generic Connectionフレームワーク上にOBEXによるデータ送受信を扱うAPIを規定しています。
OBEXの仕様はHTTPを参考として策定されており、OBEXクライアントが送信するリクエストに対してOBEXサーバがレスポンスを返す クライアントサーバモデルに従っています。 OBEXクライアントがOBEXサーバにオペレーションの処理を要求し、OBEXサーバはその処理としてレスポンスステータスや 処理結果としてのオブジェクトをOBEXクライアントに返します。 JSCLはクライアントサーバの間でオブジェクトを送受するためのオペレーションとして以下の2つを提供します。
プロトコル自体がバイナリ形式で表現されることを除き、 リクエストおよびレスポンスがヘッダやオブジェクト本体(ボディ)から構成されること、 および規定されているレスポンスステータスの内容などはHTTPと類似しています。
OBEX規格では、赤外線通信のパケット長の制限などに起因するオブジェクトの分割や再構成といった処理を行うための詳細な手順が規定されています。 しかしJava実行環境が提供するAPIがこれらの複雑な規定を隠蔽するため、開発者はより容易にJavaアプリケーションを開発することができます。
以下にOBEXクライアントとOBEXサーバの利用イメージを示します。
図1. OBEXクライアントとOBEXサーバの利用イメージ
ObexConnectionインタフェースはOBEXクライアントとOBEXサーバで共通に使用される定数やメソッドを定義するインタフェースであり、
それを継承するサブインタフェースとして ClientObexConnection
および ServerObexConnection
が用意されています。
これら2つのサブインタフェースでは、OBEXクライアントまたはOBEXサーバ固有のメソッドが定義されています。
OBEX外部接続で使用するコネクションオブジェクトはHTTP通信の場合と同様Connector.open()メソッドを使用して取得しますが、
このコネクションオブジェクトは ClientObexConnection
または ServerObexConnection
を実装しています。
Connector.open()に指定するURLは、OBEXクライアントアプリケーションとOBEXサーバアプリケーションでは異なります。
フィールドの概要 | |
static int |
ACCEPTED
(=0x22) |
static int |
BAD_GATEWAY
(=0x52) |
static int |
BAD_REQUEST
(=0x40) |
static int |
CONFLICT
(=0x49) |
static int |
CONTINUE
(=0x10)。 |
static int |
CREATED
(=0x21) |
static int |
DATABASE_FULL
(=0x60) |
static int |
DATABASE_LOCKED
(=0x61) |
static int |
DISCONNECT
DISCONNECT オペレーションコードを示します (=0x81)。 |
static int |
FORBIDDEN
(=0x43) |
static int |
GATEWAY_TIMEOUT
(=0x54) |
static int |
GET
GET オペレーションコードを示します (=0x83)。 |
static int |
GONE
(=0x4A) |
static int |
HTTP_VERSION_NOT_SUPPORTED
(=0x55) |
static int |
INTERNAL_SERVER_ERROR
(=0x50) |
static int |
LENGTH_REQUIRED
(=0x4B) |
static int |
METHOD_NOT_ALLOWED
(=0x45) |
static int |
MOVED_PERMANENTLY
(=0x31) |
static int |
MOVED_TEMPORARILY
(=0x32) |
static int |
MULTIPLE_CHOICES
(=0x30) |
static int |
NO_CONTENT
(=0x24) |
static int |
NON_AUTHORITATIVE_INFORMATION
(=0x23) |
static int |
NOT_ACCEPTABLE
(=0x46) |
static int |
NOT_FOUND
(=0x44) |
static int |
NOT_IMPLEMENTED
(=0x51) |
static int |
NOT_MODIFIED
(=0x34) |
static int |
PARTIAL_CONTENT
(=0x26) |
static int |
PAYMENT_REQUIRED
(=0x42) |
static int |
PRECONDITION_FAILED
(=0x4C) |
static int |
PROXY_AUTHENTICATION_REQUIRED
(=0x47) |
static int |
PUT
PUT オペレーションコードを示します (=0x82)。 |
static int |
REQUEST_ENTITY_TOO_LARGE
(=0x4D) |
static int |
REQUEST_TIME_OUT
(=0x48) |
static int |
REQUEST_URL_TOO_LARGE
(=0x4E) |
static int |
RESET_CONTENT
(=0x25) |
static int |
SEE_OTHER
(=0x33) |
static int |
SERVICE_UNAVAILABLE
(=0x53) |
static int |
SUCCESS
(=0x20) |
static int |
UNAUTHORIZED
(=0x41) |
static int |
UNSUPPORTED_MEDIA_TYPE
(=0x4F) |
static int |
USE_PROXY
(=0x35) |
メソッドの概要 | |
int |
getContentLength()
コンテンツの長さを取得します。 |
java.lang.String |
getName()
NAMEヘッダを取得します。 |
long |
getTime()
TIMEヘッダを取得します。 |
java.lang.String |
getType()
TYPEヘッダを取得します。 |
void |
setName(java.lang.String name)
NAMEヘッダを設定します。 |
void |
setTime(long time)
TIMEヘッダを設定します。 |
void |
setType(java.lang.String type)
TYPEヘッダを設定します。 |
インタフェース javax.microedition.io.InputConnection から継承したメソッド |
openDataInputStream, openInputStream |
インタフェース javax.microedition.io.Connection から継承したメソッド |
close |
インタフェース javax.microedition.io.OutputConnection から継承したメソッド |
openDataOutputStream, openOutputStream |
フィールドの詳細 |
public static final int DISCONNECT
public static final int PUT
public static final int GET
public static final int CONTINUE
public static final int SUCCESS
public static final int CREATED
public static final int ACCEPTED
public static final int NON_AUTHORITATIVE_INFORMATION
public static final int NO_CONTENT
public static final int RESET_CONTENT
public static final int PARTIAL_CONTENT
public static final int MULTIPLE_CHOICES
public static final int MOVED_PERMANENTLY
public static final int MOVED_TEMPORARILY
public static final int SEE_OTHER
public static final int NOT_MODIFIED
public static final int USE_PROXY
public static final int BAD_REQUEST
public static final int UNAUTHORIZED
public static final int PAYMENT_REQUIRED
public static final int FORBIDDEN
public static final int NOT_FOUND
public static final int METHOD_NOT_ALLOWED
public static final int NOT_ACCEPTABLE
public static final int PROXY_AUTHENTICATION_REQUIRED
public static final int REQUEST_TIME_OUT
public static final int CONFLICT
public static final int GONE
public static final int LENGTH_REQUIRED
public static final int PRECONDITION_FAILED
public static final int REQUEST_ENTITY_TOO_LARGE
public static final int REQUEST_URL_TOO_LARGE
public static final int UNSUPPORTED_MEDIA_TYPE
public static final int INTERNAL_SERVER_ERROR
public static final int NOT_IMPLEMENTED
public static final int BAD_GATEWAY
public static final int SERVICE_UNAVAILABLE
public static final int GATEWAY_TIMEOUT
public static final int HTTP_VERSION_NOT_SUPPORTED
public static final int DATABASE_FULL
public static final int DATABASE_LOCKED
メソッドの詳細 |
public int getContentLength()
コンテンツの長さが取得可能になる前に呼び出された場合は RuntimeException またはそのサブクラスの例外が発生します。
public void setName(java.lang.String name)
name
- NAMEヘッダに設定する文字列public java.lang.String getName()
ヘッダが取得可能になる前に呼び出された場合は RuntimeException またはそのサブクラスの例外が発生します。
public void setType(java.lang.String type)
type
- TYPEヘッダに設定する文字列public java.lang.String getType()
ヘッダが取得可能になる前に呼び出された場合は RuntimeException またはそのサブクラスの例外が発生します。
public void setTime(long time)
time
- 日付を表す整数値public long getTime()
ヘッダが取得可能になる前に呼び出された場合は RuntimeException またはそのサブクラスの例外が発生します。
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |