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