BSRTREC構造体は、PowerSORTとユーザアプリケーション間でレコードを受け渡すための構造体です。
BSRTREC構造体には、bsrtopen関数発行前にユーザアプリケーションが指定するメンバーはありません。
typedef struct { BSPTR_VOID sort_table; unsigned long errdetail; unsigned long in_count; unsigned long out_count; BSPTR_VOID rec_addr; unsigned long rec_len; unsigned char rec_status; unsigned char mgrec_status; unsigned short mgrec_string; BSPTR_VOID mgrec_addr; unsigned long mgrec_len; unsigned long hProcFile; unsigned long sub_error_code; } BSRTREC;
BSRTREC構造体メンバー
以下では、BSRTREC構造体のメンバーについて説明します。
sort_table
bsrtopen関数により、PowerSORTが使用する作業域のアドレスが設定されます。
このメンバーはPowerSORTが使用する専用の領域であり、ユーザアプリケーションは、bsrtopen関数の発行からbsrtclse関数の発行が完了するまでの間、内容を保証しなければなりません。ユーザアプリケーションは、このメンバーに対して何もする必要はありません。
errdetail
PowerSORTが処理中にエラーを検出した場合、BSORT関数のエラー詳細コードが設定されます。
ユーザアプリケーションは、エラーの発生を各BSORT関数の戻り値から知ることができます。ユーザアプリケーションは、エラー発生時以外にこのメンバーを参照する必要はありません。
in_count
サポートしていないメンバーです。何も参照・設定する必要はありません。
out_count
サポートしていないメンバーです。何も参照・設定する必要はありません。
rec_addr
bsrtput関数の場合
PowerSORTに渡すレコードのアドレスを指定します。
bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_IMを指定した場合は、レコード群のアドレスを指定します。
bsrtget関数の場合
ユーザアプリケーションに返却するレコードのアドレスが設定されます。
bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_OMを指定した場合は、レコード群のアドレスが設定されます。返却するレコード、またはレコード群がない場合は、NULLが設定されます。
bsrtmrge関数の場合
PowerSORTに渡すレコードのアドレスを指定します。
rec_len
bsrtput関数の場合
PowerSORTに渡すレコードの長さを指定します。
bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_IMを指定した場合は、レコード群の長さを指定します。テキストファイルのレコードを渡す場合は、改行文字を含めたレコードの長さを指定します。
bsrtget関数の場合
ユーザアプリケーションに返却するレコードの長さが設定されます。
bsrtopen関数で指定したBSRTPRIM構造体のrecopratにBS_OMを指定した場合は、レコード群の長さが設定されます。返却するレコードがない場合は、0が設定されます。
bsrtmrge関数の場合
PowerSORTに渡すレコードの長さを指定します。
テキストファイルのレコードを渡す場合は、改行文字を含めたレコードの長さを指定します。
rec_status
bsrtput関数の場合
レコードを渡し終えたかどうかをPowerSORTへ通知します。
以下のいずれかを指定します。
定義値 | 意味 |
---|---|
BS_CONT | PowerSORTへ渡すレコードはまだあります。 |
BS_ENDDATA | PowerSORTへ渡すレコードは終わりました。 |
bsrtget関数の場合
使用しません。
bsrtmrge関数の場合
最終レコードかどうかをPowerSORTへ通知します。
以下のいずれかを指定します。
定義値 | 意味 |
---|---|
BS_CONT | mgrec_stringが示すストリングにはレコードがまだあります。 |
BS_ENDDATA | mgrec_stringが示すストリングのレコードは終わりました。 |
mgrec_status
PowerSORTからレコードの入力要求が通知されます。
このメンバーは、bsrtmrge関数を使用する場合に設定されます。以下のいずれかが設定されます。
定義値 | 意味 |
---|---|
BS_REQ | レコードの入力要求を示します。 |
BS_NOREQ | レコードの入力要求はありません。 |
mgrec_string
PowerSORTへ渡すレコードのストリング番号を指定、または参照します。
bsrtmrge関数で最初のレコードを渡す場合は、0を指定します。それ以降は、PowerSORTがストリング番号を設定します。ユーザアプリケーションは、ここに設定されたストリング番号のレコードを、次のbsrtmrge関数でPowerSORTへ渡してください。このメンバーは、bsrtmrge関数を使用する場合に設定されます。
mgrec_addr
ユーザアプリケーションに返却するレコードのアドレスが設定されます。
返却するレコードがない場合は、NULLが設定されます。このメンバーは、bsrtmrge関数を使用する場合に設定されます。
mgrec_len
ユーザアプリケーションに返却するレコードの長さが設定されます。
返却するレコードがない場合は、0が設定されます。このメンバーは、bsrtmrge関数を使用する場合に設定されます。
hProcFile
サポートしていないメンバーです。何も参照・設定する必要はありません。
sub_error_code
サポートしていないメンバーです。何も参照・設定する必要はありません。