ITRON メールボックスを操作するためのクラスである。
■クラス定義
package org.jtron.attach;
public class MailBox {
public MailBox(int mbxid);
public MailBox(int mbxid, T_CMBX pk_cmbx);
public MailBox(T_CMBX pk_cmbx);
public int getId();
public void delete();
public void send(ItronMemory pk_msg);
public ItronMemory receive(int length);
public ItronMemory pollReceive(int length);
public ItronMemory receive(int length, int tmout);
public T_RMBX refer(int length);
public static void seekNextToHeader(ItronMemory msg);
public static int readPriority(ItronMemory msg);
public static void writePriority(ItronMemory msg, int msgpri);
}
■コンストラクタ
public MailBox(int mbxid) throws JtronException;
【パラメータ】
int mbxid 既存の接続対象のメールボックスID 番号(★)
【例外】
JtronException JTRON 例外クラス(ITRON による例 外クラスまたはJTRONによる例外ク ラス)
【機能】
メールボックスIDを指定して、既存のメールボックスに接続するイン スタンスを生成する。
public MailBox(int mbxid, T_CMBX pk_cmbx)
throws ItronCauseException;
【パラメータ】
int mbxid 生成対象のメールボックスのID番号 (★)
T_CMBX pk_cmbx メールボックス生成情報クラス
【例外】
ItronCauseException ITRONによる例外クラス
【機能】
cre_mbxサービスコール呼び出しに相当する。
メールボックスを生成し、接続するインスタンスを生成する。
public MailBox(T_CMBX pk_cmbx)
throws ItronCauseException;
【パラメータ】
154
T_CMBX pk_cmbx メールボックス生成情報クラス
【例外】
ItronCauseException ITRONによる例外クラス
【機能】
acre_mbxサービスコール呼び出しに相当する。
メールボックスを生成し、接続するインスタンスを生成する。
■メソッド
public int getId();
【戻り値】
int メールボックスID(★)
【機能】
接続しているメールボックスのメールボックスIDを返す。
public void delete() throws ItronCauseException;
【例外】
ItronCauseException ITRONによる例外クラス
【機能】
del_mbxサービスコール呼び出しに相当する。
public void send(ItronMemory pk_msg)
throws ItronCauseException;
【パラメータ】
ItronMemory pk_msg メールボックスへ送信するメッセー ジデータ
【例外】
ItronCauseException ITRONによる例外クラス
【機能】
snd_mbxサービスコール呼び出しに相当する。
public ItronMemory receive(int length)
throws JtronException;
【パラメータ】
int length 受信メッセージの長さ(★)
【戻り値】
ItronMemory 受信メッセージの ItronMemoryク ラス
【例外】
JtronException JTRON 例外クラス(ITRON による例 外クラスまたはJTRONによる例外ク ラス)
【機能】
rcv_mbxサービスコール呼び出しに相当する。
指定したlengthは、返されるItronMemoryの長さになる。
public ItronMemory pollReceive(int length)
throws JtronException;
【パラメータ】
int length 受信メッセージの長さ(★)
【戻り値】
ItronMemory 受信メッセージの ItronMemoryク ラス
156
【例外】
JtronException JTRON 例外クラス(ITRON による例 外クラスまたはJTRONによる例外ク ラス)
【機能】
prcv_mbxサービスコール呼び出しに相当する。
指定したlengthは、返されるItronMemoryの長さになる。
public ItronMemory receive(int length, int tmout) throws JtronException;
【パラメータ】
int length 受信メッセージの長さ(★) int tmout タイムアウト指定(単位:ms)(★)
【戻り値】
ItronMemory 受信メッセージの ItronMemoryク ラス
【例外】
JtronException JTRON 例外クラス(ITRON による例 外クラスまたはJTRONによる例外ク ラス)
【機能】
trcv_mbxサービスコール呼び出しに相当する。
指定したlengthは、返されるItronMemoryの長さになる。
public T_RMBX refer(int length) throws JtronException;
【パラメータ】
int length 戻り値にて取得されるメッセージキ
ューの先頭のメッセージデータの長
さ(★)
【戻り値】
T_RMBX メールボックス状態クラス
【例外】
JtronException JTRON 例外クラス(ITRON による例 外クラスまたはJTRONによる例外ク ラス)
【機能】
ref_mbxサービスコール呼び出しに相当する。
指定した length は、返される T_RMBX のインスタンス内メンバ pk_msgの長さになる。
■
static
メソッドpublic static void seekNextToHeader(ItronMemory msg);
【パラメータ】
ItronMemory msg メッセージのItronMemoryクラス
【機能】
メッセージのアクセス位置をメッセージヘッダの直後に移動する。
この位置は優先度付きメッセージの場合優先度値、そうでない場合メ ッセージ本体の位置である。つまりこのメソッドは、優先度無しメッ セージのメッセージ本体をアクセスする前に呼び出すためのものであ る。
public static int readPriority(ItronMemory msg);
【パラメータ】
ItronMemory msg メッセージのItronMemoryクラス
【戻り値】
158
int メッセージ優先度(★)
【機能】
優先度付きメッセージの優先度値を返す。このメソッドが呼び出さ れると、アクセス位置を優先度値の直後に移動する。これはメッセー ジ本体の位置である。つまり、このメソッドは優先度付きメッセージ のメッセージ本体を読み込む前に呼び出すためのものである。
public static void writePriority(ItronMemory msg, int msgpri);
【パラメータ】
ItronMemory msg メッセージのItronMemoryクラス int msgpri メッセージ優先度(★)
【機能】
優先度付きメッセージの優先度値を設定する。このメソッドが呼び 出されると、アクセス位置を優先度値の直後に移動する。これはメッ セージ本体の位置である。つまり、このメソッドは優先度付きメッセ ージのメッセージ本体に書き込む前に呼び出すためのものである。
【JTRON1.0仕様との相違および仕様決定の理由】
・referStatus()は名称が冗長なのでrefer()に変更した。また返 される情報で必要なためメッセージ長を示す引数を追加した。詳しく はメールボックス状態クラスの項を参照。
・メッセージヘッダの多様性を考慮してユーティリティメソッドを3 つ追加した。これらを使うことによりメッセージヘッダの形式/サイ ズに依存しなくなり移植性が増す。seekNextToHeader( )の名称を seekToBody()にしなかったのは、メッセージが優先度付きかどうか が自動では判定できないためである。メールボックスをJavaから生成 した場合なら判定は可能だが、既存メールボックスにアタッチした場 合これは不可能である。
4.2.9.2 メールボックス生成情報クラス(T_CMBX)
java.lang.Object
org.jtron.attach.T_CMBX