com.kddi.io
インタフェース CMailConnection [Phase1〜]

すべてのスーパーインタフェース:
javax.microedition.io.Connection, javax.microedition.io.DatagramConnection

public interface CMailConnection
extends javax.microedition.io.DatagramConnection

Cメールによる通信を制御する
javax.microedition.io.Connector.openメソッドの"cmail"スキームに対応

"cmail://[tel-no]"
tel-noを指定した場合には、tel-noが表す端末に接続要求をだす。
tel-noを指定しなかった場合には、接続要求を待ち受ける状態になる。
起動時に起動要因が、”Cメール起動要求”になっていた場合には、tel-no無指定のopenは、 即時に成功する。

tel-noは数字、空白、'P'、'-'から成る。それ以外が指定されたら IllegalArgumentExceptionが発生する。

既にコネクションが開かれている場合には(起動属性Cメールを受けて起動した場合、起動後に接続要求を 受けた場合など)tel-noを指定してオープンすると、IOExceptionが発生する。

デフォルトの送信モードは、連続メールモード(※)とする。
各種設定メソッドは、送受信メソッドを行う前にのみ有効とし、一度でも送受信メソッドをコールした後に 設定を行った場合には、IllegalStateExceptionが発生する。

起動要求を受けて起動したアプリケーションは、必ずcmailスキームをopenしなければならない。
起動要因は、java.lang.System.getProperty()の、"kddi.system.wakeupMode"キーで取得する。
 0=通常起動、1=Cメール起動要求を受けて起動、2=アラーム起動
状態遷移は下記のようになる。○はブロックすることを表し、完了まで帰らない。特に●はVM全体がブロック することを表す。 "cmail"スキームに対するオープンは、受け付けと、要求で各1インスタンスしか生成できない。 二重にオープンしようとした場合には、あとからのオープンは、IllegalStateExceptonが発生する。
一時圏外などによって、セッション確立後に再度接続要求を受けた時には、既接続のセッションに対する receive, sendはIOExceptionとなる。その場合には、既接続のセッションをcloseし、再度、open -> accept というシーケンスが必要となる。

※「連続モード」はKDDIによって公式の認定を受けた場合にのみ利用することができます。

■起動要求受付側
┌───────────┐
│初期状態       │
└───────────┘
 │○open("cmail://")↑
 │         │
 ↓     ○close()│
○───────────┐
│相手先情報      │getTelNo()
│取得可能状態     │getNickName()
│           │getMessage()
│           │getMode()
│           │setNickName()
└───────────┘
 │○close()   │○accept()連続モードのみ
 │       ↓
 │   ●────────┐
 │   │入室完了待ち状態│
 │   └────────┘
 │       │入室完了
 │       ↓
 │   ┌───────┐
 │   │送受信可能状態│○send()
 │   │       │○receive()
 │   └───────┘
 │       │○close()
 │       │
 ↓       ↓
┌──────────┐
│初期状態      │
└──────────┘


■起動要求送信側
┌──────────────┐
│初期状態          │
└──────────────┘
 │○open("cmail://telno") ↑
 │            │
 ↓        ○close()│
┌──────────────┐
│メッセージ情報設定     │setSingleMode()
│可能状態          │setMultipleMode()
│              │setNickName()
│              │setMessage()
│              │
└──────────────┘
 │○connect()     │○sendTo()
 ↓連続モードのみ   ↓単発モードのみ
●───────┐  ●────────┐
│受諾待ち状態 │  │送信完了待ち状態│
└───────┘  └────────┘
 │受諾受信       送信完了受信│
 │                 ↓
 │         ┌────────┐
 │         │終了待ち状態  │
 │         └────────┘
 │            ○close()│
 ↓                │
┌───────┐         │
│送受信可能状態│○send()     │
│       │○receive()    │
└───────┘         │
 │○close()            │
 │                │
 ↓                ↓
┌──────────────────┐
│初期状態              │
└──────────────────┘

 


フィールドの概要
static int CONNECT_FAILURE
          網状態などによりaccept()、connect()が失敗したときの戻り値。
static int CONNECT_NO_SUPPORT
          Cメールチャット非対応のためにaccept()、connect()が失敗したときの戻り値。
static int CONNECT_SUCCESS
          accept()、connect()が成功したときの戻り値。
static int encDgramSize
           
static int MULTI_MODE
          連続モードであることを表す
static int rawDgramSize
           
static int SINGLE_MODE
          単発モードであることを表す
 
メソッドの概要
 int accept()
          連続モードでの接続要求を受けている状態で、受諾要求を発行する。
 int connect()
          連続モードで接続要求を発行する。
 java.lang.String getMessage()
          通信相手からのメッセージを取得する。
 int getMode()
          通信モードを取得する
 java.lang.String getNickName()
          通信相手のNickNameを取得する。
 java.lang.String getTelNo()
          通信相手のtel-noを取得する。
 void sendTo()
          単発メールを送信する。
 void setMessage(java.lang.String message)
          送信メッセージを設定する。
 void setMultipleMode()
          送信モードを連続メールモードに設定する。
 void setNickName(java.lang.String nickname)
          ニックネームを設定する。
 void setSingleMode()
          送信モードを単発メールモードに設定する。
 
インタフェース javax.microedition.io.DatagramConnection から継承したメソッド
getMaximumLength, getNominalLength, newDatagram, newDatagram, newDatagram, newDatagram, receive, send
 
インタフェース javax.microedition.io.Connection から継承したメソッド
close
 

フィールドの詳細

rawDgramSize

public static final int rawDgramSize

encDgramSize

public static final int encDgramSize

SINGLE_MODE

public static final int SINGLE_MODE
単発モードであることを表す
関連項目:
getMode()

MULTI_MODE

public static final int MULTI_MODE
連続モードであることを表す
関連項目:
getMode()

CONNECT_SUCCESS

public static final int CONNECT_SUCCESS
accept()、connect()が成功したときの戻り値。

CONNECT_FAILURE

public static final int CONNECT_FAILURE
網状態などによりaccept()、connect()が失敗したときの戻り値。

CONNECT_NO_SUPPORT

public static final int CONNECT_NO_SUPPORT
Cメールチャット非対応のためにaccept()、connect()が失敗したときの戻り値。
メソッドの詳細

setSingleMode

public void setSingleMode()
送信モードを単発メールモードに設定する。
メッセージ情報設定可能状態にのみ呼び出し可能。それ以外の状態で呼び出した場合には、 IllegalStateExceptionが発生する。

setMultipleMode

public void setMultipleMode()
送信モードを連続メールモードに設定する。
メッセージ情報設定可能状態にのみ呼び出し可能。それ以外の状態で呼び出した場合には、 IllegalStateExceptionが発生する。

setNickName

public void setNickName(java.lang.String nickname)
ニックネームを設定する。未設定の場合には空文字が設定される。
メッセージ情報設定可能状態、相手先情報取得可能状態でのみ呼び出し可能。それ以外の状態で呼び出した場合には、 IllegalStateExceptionが発生する。ニックネームが最大長を超えた場合には、 IllegalArgumentExceptionが発生する。

setMessage

public void setMessage(java.lang.String message)
送信メッセージを設定する。
メッセージ情報設定可能状態にのみ呼び出し可能。それ以外の状態で呼び出した場合には、 IllegalStateExceptionが発生する。メッセージが最大長を超えた場合には、 IllegalArgumentExceptionが発生する。

getTelNo

public java.lang.String getTelNo()
                          throws java.io.IOException
通信相手のtel-noを取得する。
戻り値:
相手アドレス

getNickName

public java.lang.String getNickName()
                             throws java.io.IOException
通信相手のNickNameを取得する。
戻り値:
相手ニックネーム

getMessage

public java.lang.String getMessage()
                            throws java.io.IOException
通信相手からのメッセージを取得する。
戻り値:
メッセージ

getMode

public int getMode()
            throws java.io.IOException
通信モードを取得する
戻り値:
通信モード
関連項目:
SINGLE_MODE, MULTI_MODE

accept

public int accept()
           throws java.io.IOException
連続モードでの接続要求を受けている状態で、受諾要求を発行する。 それ以外の状態の時に発行した場合、その他規定されていないシーケンスで呼び出された場合、には、 IllegalStateExceptionが発生する。
戻り値:
CONNECT_SUCCESS:接続成功、CONNECT_FAILURE:網状態により失敗、CONNECT_NO_SUPPORT:非対応
関連項目:
CONNECT_SUCCESS, CONNECT_FAILURE, CONNECT_NO_SUPPORT

connect

public int connect()
            throws java.io.IOException
連続モードで接続要求を発行する。 単発モード、既に接続要求を受けている場合、その他規定されていないシーケンスで呼び出された場合、には、 IllegalStateExceptionが発生する。
戻り値:
CONNECT_SUCCESS:接続成功、CONNECT_FAILURE:網状態により失敗、CONNECT_NO_SUPPORT:非対応
関連項目:
CONNECT_SUCCESS, CONNECT_FAILURE, CONNECT_NO_SUPPORT

sendTo

public void sendTo()
            throws java.io.IOException
単発メールを送信する。送信モードが単発メールモードで無い場合には、 IllegalStateExceptionが発生する。


Copyright 2001-2002 Aplix Corporation. All rights reserved. Aplix Confidential and Restricted.